Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] I2C: refactor message in i2c_detach_client

We could refactor the error message 34 different i2c drivers print if
i2c_detach_client() fails in this function itself. Saves quite a few
lines of code. Documentation is updated to reflect that change.

Note that this patch should be applied after Rudolf Marek's w83792d
patches.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Jean Delvare and committed by
Greg Kroah-Hartman
7bef5594 1ff4e306

+42 -137
+2 -1
Documentation/i2c/porting-clients
··· 94 94 limited to the strictly necessary steps. 95 95 96 96 * [Detach] Get rid of data, remove the call to 97 - i2c_deregister_entry. 97 + i2c_deregister_entry. Do not log an error message if 98 + i2c_detach_client fails, as i2c-core will now do it for you. 98 99 99 100 * [Update] Don't access client->data directly, use 100 101 i2c_get_clientdata(client) instead.
+1 -3
Documentation/i2c/writing-clients
··· 489 489 /* SENSORS ONLY END */ 490 490 491 491 /* Try to detach the client from i2c space */ 492 - if ((err = i2c_detach_client(client))) { 493 - printk("foo.o: Client deregistration failed, client not detached.\n"); 492 + if ((err = i2c_detach_client(client))) 494 493 return err; 495 - } 496 494 497 495 /* HYBRID SENSORS CHIP ONLY START */ 498 496 if i2c_is_isa_client(client)
+1 -3
drivers/hwmon/adm1021.c
··· 328 328 329 329 hwmon_device_unregister(data->class_dev); 330 330 331 - if ((err = i2c_detach_client(client))) { 332 - dev_err(&client->dev, "Client deregistration failed, client not detached.\n"); 331 + if ((err = i2c_detach_client(client))) 333 332 return err; 334 - } 335 333 336 334 kfree(data); 337 335 return 0;
+1 -4
drivers/hwmon/adm1025.c
··· 517 517 518 518 hwmon_device_unregister(data->class_dev); 519 519 520 - if ((err = i2c_detach_client(client))) { 521 - dev_err(&client->dev, "Client deregistration failed, " 522 - "client not detached.\n"); 520 + if ((err = i2c_detach_client(client))) 523 521 return err; 524 - } 525 522 526 523 kfree(data); 527 524 return 0;
+1 -4
drivers/hwmon/adm9240.c
··· 645 645 646 646 hwmon_device_unregister(data->class_dev); 647 647 648 - if ((err = i2c_detach_client(client))) { 649 - dev_err(&client->dev, "Client deregistration failed, " 650 - "client not detached.\n"); 648 + if ((err = i2c_detach_client(client))) 651 649 return err; 652 - } 653 650 654 651 kfree(data); 655 652 return 0;
+1 -4
drivers/hwmon/asb100.c
··· 867 867 if (data) 868 868 hwmon_device_unregister(data->class_dev); 869 869 870 - if ((err = i2c_detach_client(client))) { 871 - dev_err(&client->dev, "client deregistration failed; " 872 - "client not detached.\n"); 870 + if ((err = i2c_detach_client(client))) 873 871 return err; 874 - } 875 872 876 873 /* main client */ 877 874 if (data)
+1 -4
drivers/hwmon/ds1621.c
··· 282 282 283 283 hwmon_device_unregister(data->class_dev); 284 284 285 - if ((err = i2c_detach_client(client))) { 286 - dev_err(&client->dev, "Client deregistration failed, " 287 - "client not detached.\n"); 285 + if ((err = i2c_detach_client(client))) 288 286 return err; 289 - } 290 287 291 288 kfree(data); 292 289
+1 -4
drivers/hwmon/fscher.c
··· 383 383 384 384 hwmon_device_unregister(data->class_dev); 385 385 386 - if ((err = i2c_detach_client(client))) { 387 - dev_err(&client->dev, "Client deregistration failed, " 388 - "client not detached.\n"); 386 + if ((err = i2c_detach_client(client))) 389 387 return err; 390 - } 391 388 392 389 kfree(data); 393 390 return 0;
+1 -4
drivers/hwmon/fscpos.c
··· 549 549 550 550 hwmon_device_unregister(data->class_dev); 551 551 552 - if ((err = i2c_detach_client(client))) { 553 - dev_err(&client->dev, "Client deregistration failed, client" 554 - " not detached.\n"); 552 + if ((err = i2c_detach_client(client))) 555 553 return err; 556 - } 557 554 kfree(data); 558 555 return 0; 559 556 }
+1 -4
drivers/hwmon/gl518sm.c
··· 492 492 493 493 hwmon_device_unregister(data->class_dev); 494 494 495 - if ((err = i2c_detach_client(client))) { 496 - dev_err(&client->dev, "Client deregistration failed, " 497 - "client not detached.\n"); 495 + if ((err = i2c_detach_client(client))) 498 496 return err; 499 - } 500 497 501 498 kfree(data); 502 499 return 0;
+1 -4
drivers/hwmon/gl520sm.c
··· 654 654 655 655 hwmon_device_unregister(data->class_dev); 656 656 657 - if ((err = i2c_detach_client(client))) { 658 - dev_err(&client->dev, "Client deregistration failed, " 659 - "client not detached.\n"); 657 + if ((err = i2c_detach_client(client))) 660 658 return err; 661 - } 662 659 663 660 kfree(data); 664 661 return 0;
+1 -4
drivers/hwmon/it87.c
··· 945 945 946 946 hwmon_device_unregister(data->class_dev); 947 947 948 - if ((err = i2c_detach_client(client))) { 949 - dev_err(&client->dev, 950 - "Client deregistration failed, client not detached.\n"); 948 + if ((err = i2c_detach_client(client))) 951 949 return err; 952 - } 953 950 954 951 if(i2c_is_isa_client(client)) 955 952 release_region(client->addr, IT87_EXTENT);
+1 -4
drivers/hwmon/lm63.c
··· 520 520 521 521 hwmon_device_unregister(data->class_dev); 522 522 523 - if ((err = i2c_detach_client(client))) { 524 - dev_err(&client->dev, "Client deregistration failed, " 525 - "client not detached\n"); 523 + if ((err = i2c_detach_client(client))) 526 524 return err; 527 - } 528 525 529 526 kfree(data); 530 527 return 0;
+1 -4
drivers/hwmon/lm78.c
··· 683 683 684 684 hwmon_device_unregister(data->class_dev); 685 685 686 - if ((err = i2c_detach_client(client))) { 687 - dev_err(&client->dev, 688 - "Client deregistration failed, client not detached.\n"); 686 + if ((err = i2c_detach_client(client))) 689 687 return err; 690 - } 691 688 692 689 if(i2c_is_isa_client(client)) 693 690 release_region(client->addr, LM78_EXTENT);
+1 -4
drivers/hwmon/lm80.c
··· 510 510 511 511 hwmon_device_unregister(data->class_dev); 512 512 513 - if ((err = i2c_detach_client(client))) { 514 - dev_err(&client->dev, "Client deregistration failed, " 515 - "client not detached.\n"); 513 + if ((err = i2c_detach_client(client))) 516 514 return err; 517 - } 518 515 519 516 kfree(data); 520 517 return 0;
+1 -4
drivers/hwmon/lm83.c
··· 363 363 364 364 hwmon_device_unregister(data->class_dev); 365 365 366 - if ((err = i2c_detach_client(client))) { 367 - dev_err(&client->dev, 368 - "Client deregistration failed, client not detached.\n"); 366 + if ((err = i2c_detach_client(client))) 369 367 return err; 370 - } 371 368 372 369 kfree(data); 373 370 return 0;
+1 -4
drivers/hwmon/lm87.c
··· 734 734 735 735 hwmon_device_unregister(data->class_dev); 736 736 737 - if ((err = i2c_detach_client(client))) { 738 - dev_err(&client->dev, "Client deregistration failed, " 739 - "client not detached.\n"); 737 + if ((err = i2c_detach_client(client))) 740 738 return err; 741 - } 742 739 743 740 kfree(data); 744 741 return 0;
+1 -4
drivers/hwmon/lm90.c
··· 562 562 563 563 hwmon_device_unregister(data->class_dev); 564 564 565 - if ((err = i2c_detach_client(client))) { 566 - dev_err(&client->dev, "Client deregistration failed, " 567 - "client not detached.\n"); 565 + if ((err = i2c_detach_client(client))) 568 566 return err; 569 - } 570 567 571 568 kfree(data); 572 569 return 0;
+1 -4
drivers/hwmon/lm92.c
··· 399 399 400 400 hwmon_device_unregister(data->class_dev); 401 401 402 - if ((err = i2c_detach_client(client))) { 403 - dev_err(&client->dev, "Client deregistration failed, " 404 - "client not detached.\n"); 402 + if ((err = i2c_detach_client(client))) 405 403 return err; 406 - } 407 404 408 405 kfree(data); 409 406 return 0;
+1 -4
drivers/hwmon/max1619.c
··· 322 322 323 323 hwmon_device_unregister(data->class_dev); 324 324 325 - if ((err = i2c_detach_client(client))) { 326 - dev_err(&client->dev, "Client deregistration failed, " 327 - "client not detached.\n"); 325 + if ((err = i2c_detach_client(client))) 328 326 return err; 329 - } 330 327 331 328 kfree(data); 332 329 return 0;
+1 -4
drivers/hwmon/pc87360.c
··· 984 984 985 985 hwmon_device_unregister(data->class_dev); 986 986 987 - if ((i = i2c_detach_client(client))) { 988 - dev_err(&client->dev, "Client deregistration failed, " 989 - "client not detached.\n"); 987 + if ((i = i2c_detach_client(client))) 990 988 return i; 991 - } 992 989 993 990 for (i = 0; i < 3; i++) { 994 991 if (data->address[i]) {
+1 -4
drivers/hwmon/sis5595.c
··· 618 618 619 619 hwmon_device_unregister(data->class_dev); 620 620 621 - if ((err = i2c_detach_client(client))) { 622 - dev_err(&client->dev, 623 - "Client deregistration failed, client not detached.\n"); 621 + if ((err = i2c_detach_client(client))) 624 622 return err; 625 - } 626 623 627 624 release_region(client->addr, SIS5595_EXTENT); 628 625
+1 -4
drivers/hwmon/smsc47b397.c
··· 214 214 215 215 hwmon_device_unregister(data->class_dev); 216 216 217 - if ((err = i2c_detach_client(client))) { 218 - dev_err(&client->dev, "Client deregistration failed, " 219 - "client not detached.\n"); 217 + if ((err = i2c_detach_client(client))) 220 218 return err; 221 - } 222 219 223 220 release_region(client->addr, SMSC_EXTENT); 224 221 kfree(data);
+1 -4
drivers/hwmon/smsc47m1.c
··· 497 497 498 498 hwmon_device_unregister(data->class_dev); 499 499 500 - if ((err = i2c_detach_client(client))) { 501 - dev_err(&client->dev, "Client deregistration failed, " 502 - "client not detached.\n"); 500 + if ((err = i2c_detach_client(client))) 503 501 return err; 504 - } 505 502 506 503 release_region(client->addr, SMSC_EXTENT); 507 504 kfree(data);
+1 -4
drivers/hwmon/via686a.c
··· 700 700 701 701 hwmon_device_unregister(data->class_dev); 702 702 703 - if ((err = i2c_detach_client(client))) { 704 - dev_err(&client->dev, 705 - "Client deregistration failed, client not detached.\n"); 703 + if ((err = i2c_detach_client(client))) 706 704 return err; 707 - } 708 705 709 706 release_region(client->addr, VIA686A_EXTENT); 710 707 kfree(data);
+1 -4
drivers/hwmon/w83627ehf.c
··· 774 774 775 775 hwmon_device_unregister(data->class_dev); 776 776 777 - if ((err = i2c_detach_client(client))) { 778 - dev_err(&client->dev, "Client deregistration failed, " 779 - "client not detached.\n"); 777 + if ((err = i2c_detach_client(client))) 780 778 return err; 781 - } 782 779 release_region(client->addr, REGION_LENGTH); 783 780 kfree(data); 784 781
+1 -4
drivers/hwmon/w83627hf.c
··· 1157 1157 1158 1158 hwmon_device_unregister(data->class_dev); 1159 1159 1160 - if ((err = i2c_detach_client(client))) { 1161 - dev_err(&client->dev, 1162 - "Client deregistration failed, client not detached.\n"); 1160 + if ((err = i2c_detach_client(client))) 1163 1161 return err; 1164 - } 1165 1162 1166 1163 release_region(client->addr, WINB_EXTENT); 1167 1164 kfree(data);
+1 -4
drivers/hwmon/w83781d.c
··· 1299 1299 if (i2c_is_isa_client(client)) 1300 1300 release_region(client->addr, W83781D_EXTENT); 1301 1301 1302 - if ((err = i2c_detach_client(client))) { 1303 - dev_err(&client->dev, 1304 - "Client deregistration failed, client not detached.\n"); 1302 + if ((err = i2c_detach_client(client))) 1305 1303 return err; 1306 - } 1307 1304 1308 1305 /* main client */ 1309 1306 if (data)
+1 -4
drivers/hwmon/w83792d.c
··· 1396 1396 if (data) 1397 1397 hwmon_device_unregister(data->class_dev); 1398 1398 1399 - if ((err = i2c_detach_client(client))) { 1400 - dev_err(&client->dev, 1401 - "Client deregistration failed, client not detached.\n"); 1399 + if ((err = i2c_detach_client(client))) 1402 1400 return err; 1403 - } 1404 1401 1405 1402 /* main client */ 1406 1403 if (data)
+1 -4
drivers/hwmon/w83l785ts.c
··· 267 267 268 268 hwmon_device_unregister(data->class_dev); 269 269 270 - if ((err = i2c_detach_client(client))) { 271 - dev_err(&client->dev, "Client deregistration failed, " 272 - "client not detached.\n"); 270 + if ((err = i2c_detach_client(client))) 273 271 return err; 274 - } 275 272 276 273 kfree(data); 277 274 return 0;
+1 -4
drivers/i2c/chips/ds1337.c
··· 353 353 int err; 354 354 struct ds1337_data *data = i2c_get_clientdata(client); 355 355 356 - if ((err = i2c_detach_client(client))) { 357 - dev_err(&client->dev, "Client deregistration failed, " 358 - "client not detached.\n"); 356 + if ((err = i2c_detach_client(client))) 359 357 return err; 360 - } 361 358 362 359 list_del(&data->list); 363 360 kfree(data);
+1 -3
drivers/i2c/chips/eeprom.c
··· 230 230 int err; 231 231 232 232 err = i2c_detach_client(client); 233 - if (err) { 234 - dev_err(&client->dev, "Client deregistration failed, client not detached.\n"); 233 + if (err) 235 234 return err; 236 - } 237 235 238 236 kfree(i2c_get_clientdata(client)); 239 237
+1 -3
drivers/i2c/chips/max6875.c
··· 242 242 int err; 243 243 244 244 err = i2c_detach_client(client); 245 - if (err) { 246 - dev_err(&client->dev, "i2c_detach_client() failed\n"); 245 + if (err) 247 246 return err; 248 - } 249 247 kfree(i2c_get_clientdata(client)); 250 248 return 0; 251 249 }
+1 -3
drivers/i2c/chips/pca9539.c
··· 163 163 { 164 164 int err; 165 165 166 - if ((err = i2c_detach_client(client))) { 167 - dev_err(&client->dev, "Client deregistration failed.\n"); 166 + if ((err = i2c_detach_client(client))) 168 167 return err; 169 - } 170 168 171 169 kfree(i2c_get_clientdata(client)); 172 170 return 0;
+1 -4
drivers/i2c/chips/pcf8574.c
··· 185 185 { 186 186 int err; 187 187 188 - if ((err = i2c_detach_client(client))) { 189 - dev_err(&client->dev, 190 - "Client deregistration failed, client not detached.\n"); 188 + if ((err = i2c_detach_client(client))) 191 189 return err; 192 - } 193 190 194 191 kfree(i2c_get_clientdata(client)); 195 192 return 0;
+1 -4
drivers/i2c/chips/pcf8591.c
··· 240 240 { 241 241 int err; 242 242 243 - if ((err = i2c_detach_client(client))) { 244 - dev_err(&client->dev, 245 - "Client deregistration failed, client not detached.\n"); 243 + if ((err = i2c_detach_client(client))) 246 244 return err; 247 - } 248 245 249 246 kfree(i2c_get_clientdata(client)); 250 247 return 0;
+5 -1
drivers/i2c/i2c-core.c
··· 449 449 struct i2c_adapter *adapter = client->adapter; 450 450 int res = 0; 451 451 452 - if ((client->flags & I2C_CLIENT_ALLOW_USE) && (client->usage_count > 0)) 452 + if ((client->flags & I2C_CLIENT_ALLOW_USE) 453 + && (client->usage_count > 0)) { 454 + dev_warn(&client->dev, "Client [%s] still busy, " 455 + "can't detach\n", client->name); 453 456 return -EBUSY; 457 + } 454 458 455 459 if (adapter->client_unregister) { 456 460 res = adapter->client_unregister(client);