.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright 2008 ioogle, Inc. All rights reserved. |
---|
3 | | - * Released under GPL v2. |
---|
4 | 4 | * |
---|
5 | 5 | * Libata transport class. |
---|
6 | 6 | * |
---|
.. | .. |
---|
196 | 196 | { XFER_PIO_0, "XFER_PIO_0" }, |
---|
197 | 197 | { XFER_PIO_SLOW, "XFER_PIO_SLOW" } |
---|
198 | 198 | }; |
---|
199 | | -ata_bitfield_name_match(xfer,ata_xfer_names) |
---|
| 199 | +ata_bitfield_name_search(xfer, ata_xfer_names) |
---|
200 | 200 | |
---|
201 | 201 | /* |
---|
202 | 202 | * ATA Port attributes |
---|
.. | .. |
---|
208 | 208 | { \ |
---|
209 | 209 | struct ata_port *ap = transport_class_to_port(dev); \ |
---|
210 | 210 | \ |
---|
211 | | - return snprintf(buf, 20, format_string, cast ap->field); \ |
---|
| 211 | + return scnprintf(buf, 20, format_string, cast ap->field); \ |
---|
212 | 212 | } |
---|
213 | 213 | |
---|
214 | 214 | #define ata_port_simple_attr(field, name, format_string, type) \ |
---|
.. | .. |
---|
301 | 301 | pm_runtime_enable(dev); |
---|
302 | 302 | pm_runtime_forbid(dev); |
---|
303 | 303 | |
---|
304 | | - transport_add_device(dev); |
---|
| 304 | + error = transport_add_device(dev); |
---|
| 305 | + if (error) |
---|
| 306 | + goto tport_transport_add_err; |
---|
305 | 307 | transport_configure_device(dev); |
---|
306 | 308 | |
---|
307 | 309 | error = ata_tlink_add(&ap->link); |
---|
.. | .. |
---|
312 | 314 | |
---|
313 | 315 | tport_link_err: |
---|
314 | 316 | transport_remove_device(dev); |
---|
| 317 | + tport_transport_add_err: |
---|
315 | 318 | device_del(dev); |
---|
316 | 319 | |
---|
317 | 320 | tport_err: |
---|
318 | 321 | transport_destroy_device(dev); |
---|
319 | 322 | put_device(dev); |
---|
320 | | - ata_host_put(ap->host); |
---|
321 | 323 | return error; |
---|
322 | 324 | } |
---|
323 | 325 | |
---|
.. | .. |
---|
426 | 428 | goto tlink_err; |
---|
427 | 429 | } |
---|
428 | 430 | |
---|
429 | | - transport_add_device(dev); |
---|
| 431 | + error = transport_add_device(dev); |
---|
| 432 | + if (error) |
---|
| 433 | + goto tlink_transport_err; |
---|
430 | 434 | transport_configure_device(dev); |
---|
431 | 435 | |
---|
432 | 436 | ata_for_each_dev(ata_dev, link, ALL) { |
---|
.. | .. |
---|
441 | 445 | ata_tdev_delete(ata_dev); |
---|
442 | 446 | } |
---|
443 | 447 | transport_remove_device(dev); |
---|
| 448 | + tlink_transport_err: |
---|
444 | 449 | device_del(dev); |
---|
445 | 450 | tlink_err: |
---|
446 | 451 | transport_destroy_device(dev); |
---|
.. | .. |
---|
479 | 484 | { \ |
---|
480 | 485 | struct ata_device *ata_dev = transport_class_to_dev(dev); \ |
---|
481 | 486 | \ |
---|
482 | | - return snprintf(buf, 20, format_string, cast ata_dev->field); \ |
---|
| 487 | + return scnprintf(buf, 20, format_string, cast ata_dev->field); \ |
---|
483 | 488 | } |
---|
484 | 489 | |
---|
485 | 490 | #define ata_dev_simple_attr(field, format_string, type) \ |
---|
.. | .. |
---|
533 | 538 | if (ata_dev->class == ATA_DEV_PMP) |
---|
534 | 539 | return 0; |
---|
535 | 540 | for(i=0;i<ATA_ID_WORDS;i++) { |
---|
536 | | - written += snprintf(buf+written, 20, "%04x%c", |
---|
| 541 | + written += scnprintf(buf+written, 20, "%04x%c", |
---|
537 | 542 | ata_dev->id[i], |
---|
538 | 543 | ((i+1) & 7) ? ' ' : '\n'); |
---|
539 | 544 | } |
---|
.. | .. |
---|
552 | 557 | if (ata_dev->class != ATA_DEV_PMP) |
---|
553 | 558 | return 0; |
---|
554 | 559 | for(i=0;i<SATA_PMP_GSCR_DWORDS;i++) { |
---|
555 | | - written += snprintf(buf+written, 20, "%08x%c", |
---|
| 560 | + written += scnprintf(buf+written, 20, "%08x%c", |
---|
556 | 561 | ata_dev->gscr[i], |
---|
557 | 562 | ((i+1) & 3) ? ' ' : '\n'); |
---|
558 | 563 | } |
---|
.. | .. |
---|
581 | 586 | else |
---|
582 | 587 | mode = "unqueued"; |
---|
583 | 588 | |
---|
584 | | - return snprintf(buf, 20, "%s\n", mode); |
---|
| 589 | + return scnprintf(buf, 20, "%s\n", mode); |
---|
585 | 590 | } |
---|
586 | 591 | |
---|
587 | 592 | static DEVICE_ATTR(trim, S_IRUGO, show_ata_dev_trim, NULL); |
---|
.. | .. |
---|
678 | 683 | return error; |
---|
679 | 684 | } |
---|
680 | 685 | |
---|
681 | | - transport_add_device(dev); |
---|
| 686 | + error = transport_add_device(dev); |
---|
| 687 | + if (error) { |
---|
| 688 | + device_del(dev); |
---|
| 689 | + ata_tdev_free(ata_dev); |
---|
| 690 | + return error; |
---|
| 691 | + } |
---|
| 692 | + |
---|
682 | 693 | transport_configure_device(dev); |
---|
683 | 694 | return 0; |
---|
684 | 695 | } |
---|