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

phy: Centralize setting driver module owner

Rather than have each driver set the driver owner field, do it once in
the core code. This will also help with later changes, when the device
structure will move.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Andrew Lunn and committed by
David S. Miller
be01da72 bc87922f

+12 -121
-1
drivers/net/phy/amd.c
··· 72 72 .read_status = genphy_read_status, 73 73 .ack_interrupt = am79c_ack_interrupt, 74 74 .config_intr = am79c_config_intr, 75 - .driver = { .owner = THIS_MODULE,}, 76 75 } }; 77 76 78 77 module_phy_driver(am79c_driver);
-4
drivers/net/phy/aquantia.c
··· 128 128 .config_intr = aquantia_config_intr, 129 129 .ack_interrupt = aquantia_ack_interrupt, 130 130 .read_status = aquantia_read_status, 131 - .driver = { .owner = THIS_MODULE,}, 132 131 }, 133 132 { 134 133 .phy_id = PHY_ID_AQ2104, ··· 140 141 .config_intr = aquantia_config_intr, 141 142 .ack_interrupt = aquantia_ack_interrupt, 142 143 .read_status = aquantia_read_status, 143 - .driver = { .owner = THIS_MODULE,}, 144 144 }, 145 145 { 146 146 .phy_id = PHY_ID_AQR105, ··· 152 154 .config_intr = aquantia_config_intr, 153 155 .ack_interrupt = aquantia_ack_interrupt, 154 156 .read_status = aquantia_read_status, 155 - .driver = { .owner = THIS_MODULE,}, 156 157 }, 157 158 { 158 159 .phy_id = PHY_ID_AQR405, ··· 164 167 .config_intr = aquantia_config_intr, 165 168 .ack_interrupt = aquantia_ack_interrupt, 166 169 .read_status = aquantia_read_status, 167 - .driver = { .owner = THIS_MODULE,}, 168 170 }, 169 171 }; 170 172
-9
drivers/net/phy/at803x.c
··· 310 310 .read_status = genphy_read_status, 311 311 .ack_interrupt = at803x_ack_interrupt, 312 312 .config_intr = at803x_config_intr, 313 - .driver = { 314 - .owner = THIS_MODULE, 315 - }, 316 313 }, { 317 314 /* ATHEROS 8030 */ 318 315 .phy_id = ATH8030_PHY_ID, ··· 328 331 .read_status = genphy_read_status, 329 332 .ack_interrupt = at803x_ack_interrupt, 330 333 .config_intr = at803x_config_intr, 331 - .driver = { 332 - .owner = THIS_MODULE, 333 - }, 334 334 }, { 335 335 /* ATHEROS 8031 */ 336 336 .phy_id = ATH8031_PHY_ID, ··· 346 352 .read_status = genphy_read_status, 347 353 .ack_interrupt = &at803x_ack_interrupt, 348 354 .config_intr = &at803x_config_intr, 349 - .driver = { 350 - .owner = THIS_MODULE, 351 - }, 352 355 } }; 353 356 354 357 module_phy_driver(at803x_driver);
-2
drivers/net/phy/bcm63xx.c
··· 56 56 .read_status = genphy_read_status, 57 57 .ack_interrupt = bcm_phy_ack_intr, 58 58 .config_intr = bcm_phy_config_intr, 59 - .driver = { .owner = THIS_MODULE }, 60 59 }, { 61 60 /* same phy as above, with just a different OUI */ 62 61 .phy_id = 0x002bdc00, ··· 68 69 .read_status = genphy_read_status, 69 70 .ack_interrupt = bcm_phy_ack_intr, 70 71 .config_intr = bcm_phy_config_intr, 71 - .driver = { .owner = THIS_MODULE }, 72 72 } }; 73 73 74 74 module_phy_driver(bcm63xx_driver);
-6
drivers/net/phy/bcm7xxx.c
··· 324 324 .config_aneg = genphy_config_aneg, \ 325 325 .read_status = genphy_read_status, \ 326 326 .resume = bcm7xxx_28nm_resume, \ 327 - .driver = { .owner = THIS_MODULE }, \ 328 327 } 329 328 330 329 static struct phy_driver bcm7xxx_driver[] = { ··· 345 346 .read_status = genphy_read_status, 346 347 .suspend = bcm7xxx_suspend, 347 348 .resume = bcm7xxx_config_init, 348 - .driver = { .owner = THIS_MODULE }, 349 349 }, { 350 350 .phy_id = PHY_ID_BCM7429, 351 351 .phy_id_mask = 0xfffffff0, ··· 357 359 .read_status = genphy_read_status, 358 360 .suspend = bcm7xxx_suspend, 359 361 .resume = bcm7xxx_config_init, 360 - .driver = { .owner = THIS_MODULE }, 361 362 }, { 362 363 .phy_id = PHY_ID_BCM7435, 363 364 .phy_id_mask = 0xfffffff0, ··· 369 372 .read_status = genphy_read_status, 370 373 .suspend = bcm7xxx_suspend, 371 374 .resume = bcm7xxx_config_init, 372 - .driver = { .owner = THIS_MODULE }, 373 375 }, { 374 376 .phy_id = PHY_BCM_OUI_4, 375 377 .phy_id_mask = 0xffff0000, ··· 381 385 .read_status = genphy_read_status, 382 386 .suspend = bcm7xxx_suspend, 383 387 .resume = bcm7xxx_config_init, 384 - .driver = { .owner = THIS_MODULE }, 385 388 }, { 386 389 .phy_id = PHY_BCM_OUI_5, 387 390 .phy_id_mask = 0xffffff00, ··· 393 398 .read_status = genphy_read_status, 394 399 .suspend = bcm7xxx_suspend, 395 400 .resume = bcm7xxx_config_init, 396 - .driver = { .owner = THIS_MODULE }, 397 401 } }; 398 402 399 403 static struct mdio_device_id __maybe_unused bcm7xxx_tbl[] = {
-2
drivers/net/phy/bcm87xx.c
··· 201 201 .config_intr = bcm87xx_config_intr, 202 202 .did_interrupt = bcm87xx_did_interrupt, 203 203 .match_phy_device = bcm8706_match_phy_device, 204 - .driver = { .owner = THIS_MODULE }, 205 204 }, { 206 205 .phy_id = PHY_ID_BCM8727, 207 206 .phy_id_mask = 0xffffffff, ··· 213 214 .config_intr = bcm87xx_config_intr, 214 215 .did_interrupt = bcm87xx_did_interrupt, 215 216 .match_phy_device = bcm8727_match_phy_device, 216 - .driver = { .owner = THIS_MODULE }, 217 217 } }; 218 218 219 219 module_phy_driver(bcm87xx_driver);
-12
drivers/net/phy/broadcom.c
··· 460 460 .read_status = genphy_read_status, 461 461 .ack_interrupt = bcm_phy_ack_intr, 462 462 .config_intr = bcm_phy_config_intr, 463 - .driver = { .owner = THIS_MODULE }, 464 463 }, { 465 464 .phy_id = PHY_ID_BCM5421, 466 465 .phy_id_mask = 0xfffffff0, ··· 472 473 .read_status = genphy_read_status, 473 474 .ack_interrupt = bcm_phy_ack_intr, 474 475 .config_intr = bcm_phy_config_intr, 475 - .driver = { .owner = THIS_MODULE }, 476 476 }, { 477 477 .phy_id = PHY_ID_BCM5461, 478 478 .phy_id_mask = 0xfffffff0, ··· 484 486 .read_status = genphy_read_status, 485 487 .ack_interrupt = bcm_phy_ack_intr, 486 488 .config_intr = bcm_phy_config_intr, 487 - .driver = { .owner = THIS_MODULE }, 488 489 }, { 489 490 .phy_id = PHY_ID_BCM54616S, 490 491 .phy_id_mask = 0xfffffff0, ··· 496 499 .read_status = genphy_read_status, 497 500 .ack_interrupt = bcm_phy_ack_intr, 498 501 .config_intr = bcm_phy_config_intr, 499 - .driver = { .owner = THIS_MODULE }, 500 502 }, { 501 503 .phy_id = PHY_ID_BCM5464, 502 504 .phy_id_mask = 0xfffffff0, ··· 508 512 .read_status = genphy_read_status, 509 513 .ack_interrupt = bcm_phy_ack_intr, 510 514 .config_intr = bcm_phy_config_intr, 511 - .driver = { .owner = THIS_MODULE }, 512 515 }, { 513 516 .phy_id = PHY_ID_BCM5481, 514 517 .phy_id_mask = 0xfffffff0, ··· 520 525 .read_status = genphy_read_status, 521 526 .ack_interrupt = bcm_phy_ack_intr, 522 527 .config_intr = bcm_phy_config_intr, 523 - .driver = { .owner = THIS_MODULE }, 524 528 }, { 525 529 .phy_id = PHY_ID_BCM5482, 526 530 .phy_id_mask = 0xfffffff0, ··· 532 538 .read_status = bcm5482_read_status, 533 539 .ack_interrupt = bcm_phy_ack_intr, 534 540 .config_intr = bcm_phy_config_intr, 535 - .driver = { .owner = THIS_MODULE }, 536 541 }, { 537 542 .phy_id = PHY_ID_BCM50610, 538 543 .phy_id_mask = 0xfffffff0, ··· 544 551 .read_status = genphy_read_status, 545 552 .ack_interrupt = bcm_phy_ack_intr, 546 553 .config_intr = bcm_phy_config_intr, 547 - .driver = { .owner = THIS_MODULE }, 548 554 }, { 549 555 .phy_id = PHY_ID_BCM50610M, 550 556 .phy_id_mask = 0xfffffff0, ··· 556 564 .read_status = genphy_read_status, 557 565 .ack_interrupt = bcm_phy_ack_intr, 558 566 .config_intr = bcm_phy_config_intr, 559 - .driver = { .owner = THIS_MODULE }, 560 567 }, { 561 568 .phy_id = PHY_ID_BCM57780, 562 569 .phy_id_mask = 0xfffffff0, ··· 568 577 .read_status = genphy_read_status, 569 578 .ack_interrupt = bcm_phy_ack_intr, 570 579 .config_intr = bcm_phy_config_intr, 571 - .driver = { .owner = THIS_MODULE }, 572 580 }, { 573 581 .phy_id = PHY_ID_BCMAC131, 574 582 .phy_id_mask = 0xfffffff0, ··· 580 590 .read_status = genphy_read_status, 581 591 .ack_interrupt = brcm_fet_ack_interrupt, 582 592 .config_intr = brcm_fet_config_intr, 583 - .driver = { .owner = THIS_MODULE }, 584 593 }, { 585 594 .phy_id = PHY_ID_BCM5241, 586 595 .phy_id_mask = 0xfffffff0, ··· 592 603 .read_status = genphy_read_status, 593 604 .ack_interrupt = brcm_fet_ack_interrupt, 594 605 .config_intr = brcm_fet_config_intr, 595 - .driver = { .owner = THIS_MODULE }, 596 606 } }; 597 607 598 608 module_phy_driver(broadcom_drivers);
-2
drivers/net/phy/cicada.c
··· 114 114 .read_status = &genphy_read_status, 115 115 .ack_interrupt = &cis820x_ack_interrupt, 116 116 .config_intr = &cis820x_config_intr, 117 - .driver = { .owner = THIS_MODULE,}, 118 117 }, { 119 118 .phy_id = 0x000fc440, 120 119 .name = "Cicada Cis8204", ··· 125 126 .read_status = &genphy_read_status, 126 127 .ack_interrupt = &cis820x_ack_interrupt, 127 128 .config_intr = &cis820x_config_intr, 128 - .driver = { .owner = THIS_MODULE,}, 129 129 } }; 130 130 131 131 module_phy_driver(cis820x_driver);
-4
drivers/net/phy/davicom.c
··· 156 156 .read_status = genphy_read_status, 157 157 .ack_interrupt = dm9161_ack_interrupt, 158 158 .config_intr = dm9161_config_intr, 159 - .driver = { .owner = THIS_MODULE,}, 160 159 }, { 161 160 .phy_id = 0x0181b8b0, 162 161 .name = "Davicom DM9161B/C", ··· 167 168 .read_status = genphy_read_status, 168 169 .ack_interrupt = dm9161_ack_interrupt, 169 170 .config_intr = dm9161_config_intr, 170 - .driver = { .owner = THIS_MODULE,}, 171 171 }, { 172 172 .phy_id = 0x0181b8a0, 173 173 .name = "Davicom DM9161A", ··· 178 180 .read_status = genphy_read_status, 179 181 .ack_interrupt = dm9161_ack_interrupt, 180 182 .config_intr = dm9161_config_intr, 181 - .driver = { .owner = THIS_MODULE,}, 182 183 }, { 183 184 .phy_id = 0x00181b80, 184 185 .name = "Davicom DM9131", ··· 188 191 .read_status = genphy_read_status, 189 192 .ack_interrupt = dm9161_ack_interrupt, 190 193 .config_intr = dm9161_config_intr, 191 - .driver = { .owner = THIS_MODULE,}, 192 194 } }; 193 195 194 196 module_phy_driver(dm91xx_driver);
+1 -2
drivers/net/phy/dp83640.c
··· 1492 1492 .hwtstamp = dp83640_hwtstamp, 1493 1493 .rxtstamp = dp83640_rxtstamp, 1494 1494 .txtstamp = dp83640_txtstamp, 1495 - .driver = {.owner = THIS_MODULE,} 1496 1495 }; 1497 1496 1498 1497 static int __init dp83640_init(void) 1499 1498 { 1500 - return phy_driver_register(&dp83640_driver); 1499 + return phy_driver_register(&dp83640_driver, THIS_MODULE); 1501 1500 } 1502 1501 1503 1502 static void __exit dp83640_exit(void)
-2
drivers/net/phy/dp83848.c
··· 88 88 /* IRQ related */ 89 89 .ack_interrupt = dp83848_ack_interrupt, 90 90 .config_intr = dp83848_config_intr, 91 - 92 - .driver = { .owner = THIS_MODULE, }, 93 91 }, 94 92 }; 95 93 module_phy_driver(dp83848_driver);
-2
drivers/net/phy/dp83867.c
··· 214 214 .read_status = genphy_read_status, 215 215 .suspend = genphy_suspend, 216 216 .resume = genphy_resume, 217 - 218 - .driver = {.owner = THIS_MODULE,} 219 217 }, 220 218 }; 221 219 module_phy_driver(dp83867_driver);
-1
drivers/net/phy/et1011c.c
··· 95 95 .flags = PHY_POLL, 96 96 .config_aneg = et1011c_config_aneg, 97 97 .read_status = et1011c_read_status, 98 - .driver = { .owner = THIS_MODULE,}, 99 98 } }; 100 99 101 100 module_phy_driver(et1011c_driver);
-3
drivers/net/phy/icplus.c
··· 221 221 .read_status = &ip175c_read_status, 222 222 .suspend = genphy_suspend, 223 223 .resume = genphy_resume, 224 - .driver = { .owner = THIS_MODULE,}, 225 224 }, { 226 225 .phy_id = 0x02430d90, 227 226 .name = "ICPlus IP1001", ··· 232 233 .read_status = &genphy_read_status, 233 234 .suspend = genphy_suspend, 234 235 .resume = genphy_resume, 235 - .driver = { .owner = THIS_MODULE,}, 236 236 }, { 237 237 .phy_id = 0x02430c54, 238 238 .name = "ICPlus IP101A/G", ··· 245 247 .read_status = &genphy_read_status, 246 248 .suspend = genphy_suspend, 247 249 .resume = genphy_resume, 248 - .driver = { .owner = THIS_MODULE,}, 249 250 } }; 250 251 251 252 module_phy_driver(icplus_driver);
-4
drivers/net/phy/lxt.c
··· 278 278 .read_status = genphy_read_status, 279 279 .ack_interrupt = lxt970_ack_interrupt, 280 280 .config_intr = lxt970_config_intr, 281 - .driver = { .owner = THIS_MODULE,}, 282 281 }, { 283 282 .phy_id = 0x001378e0, 284 283 .name = "LXT971", ··· 288 289 .read_status = genphy_read_status, 289 290 .ack_interrupt = lxt971_ack_interrupt, 290 291 .config_intr = lxt971_config_intr, 291 - .driver = { .owner = THIS_MODULE,}, 292 292 }, { 293 293 .phy_id = 0x00137a10, 294 294 .name = "LXT973-A2", ··· 297 299 .probe = lxt973_probe, 298 300 .config_aneg = lxt973_config_aneg, 299 301 .read_status = lxt973a2_read_status, 300 - .driver = { .owner = THIS_MODULE,}, 301 302 }, { 302 303 .phy_id = 0x00137a10, 303 304 .name = "LXT973", ··· 306 309 .probe = lxt973_probe, 307 310 .config_aneg = lxt973_config_aneg, 308 311 .read_status = genphy_read_status, 309 - .driver = { .owner = THIS_MODULE,}, 310 312 } }; 311 313 312 314 module_phy_driver(lxt97x_driver);
-13
drivers/net/phy/marvell.c
··· 1087 1087 .get_sset_count = marvell_get_sset_count, 1088 1088 .get_strings = marvell_get_strings, 1089 1089 .get_stats = marvell_get_stats, 1090 - .driver = { .owner = THIS_MODULE }, 1091 1090 }, 1092 1091 { 1093 1092 .phy_id = MARVELL_PHY_ID_88E1112, ··· 1105 1106 .get_sset_count = marvell_get_sset_count, 1106 1107 .get_strings = marvell_get_strings, 1107 1108 .get_stats = marvell_get_stats, 1108 - .driver = { .owner = THIS_MODULE }, 1109 1109 }, 1110 1110 { 1111 1111 .phy_id = MARVELL_PHY_ID_88E1111, ··· 1123 1125 .get_sset_count = marvell_get_sset_count, 1124 1126 .get_strings = marvell_get_strings, 1125 1127 .get_stats = marvell_get_stats, 1126 - .driver = { .owner = THIS_MODULE }, 1127 1128 }, 1128 1129 { 1129 1130 .phy_id = MARVELL_PHY_ID_88E1118, ··· 1141 1144 .get_sset_count = marvell_get_sset_count, 1142 1145 .get_strings = marvell_get_strings, 1143 1146 .get_stats = marvell_get_stats, 1144 - .driver = {.owner = THIS_MODULE,}, 1145 1147 }, 1146 1148 { 1147 1149 .phy_id = MARVELL_PHY_ID_88E1121R, ··· 1159 1163 .get_sset_count = marvell_get_sset_count, 1160 1164 .get_strings = marvell_get_strings, 1161 1165 .get_stats = marvell_get_stats, 1162 - .driver = { .owner = THIS_MODULE }, 1163 1166 }, 1164 1167 { 1165 1168 .phy_id = MARVELL_PHY_ID_88E1318S, ··· 1179 1184 .get_sset_count = marvell_get_sset_count, 1180 1185 .get_strings = marvell_get_strings, 1181 1186 .get_stats = marvell_get_stats, 1182 - .driver = { .owner = THIS_MODULE }, 1183 1187 }, 1184 1188 { 1185 1189 .phy_id = MARVELL_PHY_ID_88E1145, ··· 1197 1203 .get_sset_count = marvell_get_sset_count, 1198 1204 .get_strings = marvell_get_strings, 1199 1205 .get_stats = marvell_get_stats, 1200 - .driver = { .owner = THIS_MODULE }, 1201 1206 }, 1202 1207 { 1203 1208 .phy_id = MARVELL_PHY_ID_88E1149R, ··· 1215 1222 .get_sset_count = marvell_get_sset_count, 1216 1223 .get_strings = marvell_get_strings, 1217 1224 .get_stats = marvell_get_stats, 1218 - .driver = { .owner = THIS_MODULE }, 1219 1225 }, 1220 1226 { 1221 1227 .phy_id = MARVELL_PHY_ID_88E1240, ··· 1233 1241 .get_sset_count = marvell_get_sset_count, 1234 1242 .get_strings = marvell_get_strings, 1235 1243 .get_stats = marvell_get_stats, 1236 - .driver = { .owner = THIS_MODULE }, 1237 1244 }, 1238 1245 { 1239 1246 .phy_id = MARVELL_PHY_ID_88E1116R, ··· 1251 1260 .get_sset_count = marvell_get_sset_count, 1252 1261 .get_strings = marvell_get_strings, 1253 1262 .get_stats = marvell_get_stats, 1254 - .driver = { .owner = THIS_MODULE }, 1255 1263 }, 1256 1264 { 1257 1265 .phy_id = MARVELL_PHY_ID_88E1510, ··· 1269 1279 .get_sset_count = marvell_get_sset_count, 1270 1280 .get_strings = marvell_get_strings, 1271 1281 .get_stats = marvell_get_stats, 1272 - .driver = { .owner = THIS_MODULE }, 1273 1282 }, 1274 1283 { 1275 1284 .phy_id = MARVELL_PHY_ID_88E1540, ··· 1287 1298 .get_sset_count = marvell_get_sset_count, 1288 1299 .get_strings = marvell_get_strings, 1289 1300 .get_stats = marvell_get_stats, 1290 - .driver = { .owner = THIS_MODULE }, 1291 1301 }, 1292 1302 { 1293 1303 .phy_id = MARVELL_PHY_ID_88E3016, ··· 1307 1319 .get_sset_count = marvell_get_sset_count, 1308 1320 .get_strings = marvell_get_strings, 1309 1321 .get_stats = marvell_get_stats, 1310 - .driver = { .owner = THIS_MODULE }, 1311 1322 }, 1312 1323 }; 1313 1324
-13
drivers/net/phy/micrel.c
··· 706 706 .get_stats = kszphy_get_stats, 707 707 .suspend = genphy_suspend, 708 708 .resume = genphy_resume, 709 - .driver = { .owner = THIS_MODULE,}, 710 709 }, { 711 710 .phy_id = PHY_ID_KSZ8021, 712 711 .phy_id_mask = 0x00ffffff, ··· 725 726 .get_stats = kszphy_get_stats, 726 727 .suspend = genphy_suspend, 727 728 .resume = genphy_resume, 728 - .driver = { .owner = THIS_MODULE,}, 729 729 }, { 730 730 .phy_id = PHY_ID_KSZ8031, 731 731 .phy_id_mask = 0x00ffffff, ··· 744 746 .get_stats = kszphy_get_stats, 745 747 .suspend = genphy_suspend, 746 748 .resume = genphy_resume, 747 - .driver = { .owner = THIS_MODULE,}, 748 749 }, { 749 750 .phy_id = PHY_ID_KSZ8041, 750 751 .phy_id_mask = 0x00fffff0, ··· 763 766 .get_stats = kszphy_get_stats, 764 767 .suspend = genphy_suspend, 765 768 .resume = genphy_resume, 766 - .driver = { .owner = THIS_MODULE,}, 767 769 }, { 768 770 .phy_id = PHY_ID_KSZ8041RNLI, 769 771 .phy_id_mask = 0x00fffff0, ··· 782 786 .get_stats = kszphy_get_stats, 783 787 .suspend = genphy_suspend, 784 788 .resume = genphy_resume, 785 - .driver = { .owner = THIS_MODULE,}, 786 789 }, { 787 790 .phy_id = PHY_ID_KSZ8051, 788 791 .phy_id_mask = 0x00fffff0, ··· 801 806 .get_stats = kszphy_get_stats, 802 807 .suspend = genphy_suspend, 803 808 .resume = genphy_resume, 804 - .driver = { .owner = THIS_MODULE,}, 805 809 }, { 806 810 .phy_id = PHY_ID_KSZ8001, 807 811 .name = "Micrel KSZ8001 or KS8721", ··· 819 825 .get_stats = kszphy_get_stats, 820 826 .suspend = genphy_suspend, 821 827 .resume = genphy_resume, 822 - .driver = { .owner = THIS_MODULE,}, 823 828 }, { 824 829 .phy_id = PHY_ID_KSZ8081, 825 830 .name = "Micrel KSZ8081 or KSZ8091", ··· 837 844 .get_stats = kszphy_get_stats, 838 845 .suspend = genphy_suspend, 839 846 .resume = genphy_resume, 840 - .driver = { .owner = THIS_MODULE,}, 841 847 }, { 842 848 .phy_id = PHY_ID_KSZ8061, 843 849 .name = "Micrel KSZ8061", ··· 853 861 .get_stats = kszphy_get_stats, 854 862 .suspend = genphy_suspend, 855 863 .resume = genphy_resume, 856 - .driver = { .owner = THIS_MODULE,}, 857 864 }, { 858 865 .phy_id = PHY_ID_KSZ9021, 859 866 .phy_id_mask = 0x000ffffe, ··· 872 881 .resume = genphy_resume, 873 882 .read_mmd_indirect = ksz9021_rd_mmd_phyreg, 874 883 .write_mmd_indirect = ksz9021_wr_mmd_phyreg, 875 - .driver = { .owner = THIS_MODULE, }, 876 884 }, { 877 885 .phy_id = PHY_ID_KSZ9031, 878 886 .phy_id_mask = 0x00fffff0, ··· 889 899 .get_stats = kszphy_get_stats, 890 900 .suspend = genphy_suspend, 891 901 .resume = genphy_resume, 892 - .driver = { .owner = THIS_MODULE, }, 893 902 }, { 894 903 .phy_id = PHY_ID_KSZ8873MLL, 895 904 .phy_id_mask = 0x00fffff0, ··· 903 914 .get_stats = kszphy_get_stats, 904 915 .suspend = genphy_suspend, 905 916 .resume = genphy_resume, 906 - .driver = { .owner = THIS_MODULE, }, 907 917 }, { 908 918 .phy_id = PHY_ID_KSZ886X, 909 919 .phy_id_mask = 0x00fffff0, ··· 917 929 .get_stats = kszphy_get_stats, 918 930 .suspend = genphy_suspend, 919 931 .resume = genphy_resume, 920 - .driver = { .owner = THIS_MODULE, }, 921 932 } }; 922 933 923 934 module_phy_driver(ksphy_driver);
-2
drivers/net/phy/microchip.c
··· 129 129 .suspend = lan88xx_suspend, 130 130 .resume = genphy_resume, 131 131 .set_wol = lan88xx_set_wol, 132 - 133 - .driver = { .owner = THIS_MODULE, } 134 132 } }; 135 133 136 134 module_phy_driver(microchip_phy_driver);
-1
drivers/net/phy/national.c
··· 140 140 .read_status = genphy_read_status, 141 141 .ack_interrupt = ns_ack_interrupt, 142 142 .config_intr = ns_config_intr, 143 - .driver = {.owner = THIS_MODULE,} 144 143 } }; 145 144 146 145 module_phy_driver(dp83865_driver);
+7 -6
drivers/net/phy/phy_device.c
··· 1564 1564 /** 1565 1565 * phy_driver_register - register a phy_driver with the PHY layer 1566 1566 * @new_driver: new phy_driver to register 1567 + * @owner: module owning this PHY 1567 1568 */ 1568 - int phy_driver_register(struct phy_driver *new_driver) 1569 + int phy_driver_register(struct phy_driver *new_driver, struct module *owner) 1569 1570 { 1570 1571 int retval; 1571 1572 ··· 1574 1573 new_driver->driver.bus = &mdio_bus_type; 1575 1574 new_driver->driver.probe = phy_probe; 1576 1575 new_driver->driver.remove = phy_remove; 1576 + new_driver->driver.owner = owner; 1577 1577 1578 1578 retval = driver_register(&new_driver->driver); 1579 1579 if (retval) { ··· 1590 1588 } 1591 1589 EXPORT_SYMBOL(phy_driver_register); 1592 1590 1593 - int phy_drivers_register(struct phy_driver *new_driver, int n) 1591 + int phy_drivers_register(struct phy_driver *new_driver, int n, 1592 + struct module *owner) 1594 1593 { 1595 1594 int i, ret = 0; 1596 1595 1597 1596 for (i = 0; i < n; i++) { 1598 - ret = phy_driver_register(new_driver + i); 1597 + ret = phy_driver_register(new_driver + i, owner); 1599 1598 if (ret) { 1600 1599 while (i-- > 0) 1601 1600 phy_driver_unregister(new_driver + i); ··· 1637 1634 .read_status = genphy_read_status, 1638 1635 .suspend = genphy_suspend, 1639 1636 .resume = genphy_resume, 1640 - .driver = { .owner = THIS_MODULE, }, 1641 1637 }, { 1642 1638 .phy_id = 0xffffffff, 1643 1639 .phy_id_mask = 0xffffffff, ··· 1648 1646 .read_status = gen10g_read_status, 1649 1647 .suspend = gen10g_suspend, 1650 1648 .resume = gen10g_resume, 1651 - .driver = {.owner = THIS_MODULE, }, 1652 1649 } }; 1653 1650 1654 1651 static int __init phy_init(void) ··· 1659 1658 return rc; 1660 1659 1661 1660 rc = phy_drivers_register(genphy_driver, 1662 - ARRAY_SIZE(genphy_driver)); 1661 + ARRAY_SIZE(genphy_driver), THIS_MODULE); 1663 1662 if (rc) 1664 1663 mdio_bus_exit(); 1665 1664
-1
drivers/net/phy/qsemi.c
··· 122 122 .read_status = genphy_read_status, 123 123 .ack_interrupt = qs6612_ack_interrupt, 124 124 .config_intr = qs6612_config_intr, 125 - .driver = { .owner = THIS_MODULE,}, 126 125 } }; 127 126 128 127 module_phy_driver(qs6612_driver);
-5
drivers/net/phy/realtek.c
··· 124 124 .flags = PHY_HAS_INTERRUPT, 125 125 .config_aneg = &genphy_config_aneg, 126 126 .read_status = &genphy_read_status, 127 - .driver = { .owner = THIS_MODULE,}, 128 127 }, { 129 128 .phy_id = 0x001cc912, 130 129 .name = "RTL8211B Gigabit Ethernet", ··· 134 135 .read_status = &genphy_read_status, 135 136 .ack_interrupt = &rtl821x_ack_interrupt, 136 137 .config_intr = &rtl8211b_config_intr, 137 - .driver = { .owner = THIS_MODULE,}, 138 138 }, { 139 139 .phy_id = 0x001cc914, 140 140 .name = "RTL8211DN Gigabit Ethernet", ··· 146 148 .config_intr = rtl8211e_config_intr, 147 149 .suspend = genphy_suspend, 148 150 .resume = genphy_resume, 149 - .driver = { .owner = THIS_MODULE,}, 150 151 }, { 151 152 .phy_id = 0x001cc915, 152 153 .name = "RTL8211E Gigabit Ethernet", ··· 158 161 .config_intr = &rtl8211e_config_intr, 159 162 .suspend = genphy_suspend, 160 163 .resume = genphy_resume, 161 - .driver = { .owner = THIS_MODULE,}, 162 164 }, { 163 165 .phy_id = 0x001cc916, 164 166 .name = "RTL8211F Gigabit Ethernet", ··· 171 175 .config_intr = &rtl8211f_config_intr, 172 176 .suspend = genphy_suspend, 173 177 .resume = genphy_resume, 174 - .driver = { .owner = THIS_MODULE }, 175 178 }, 176 179 }; 177 180
-10
drivers/net/phy/smsc.c
··· 171 171 172 172 .suspend = genphy_suspend, 173 173 .resume = genphy_resume, 174 - 175 - .driver = { .owner = THIS_MODULE, } 176 174 }, { 177 175 .phy_id = 0x0007c0b0, /* OUI=0x00800f, Model#=0x0b */ 178 176 .phy_id_mask = 0xfffffff0, ··· 192 194 193 195 .suspend = genphy_suspend, 194 196 .resume = genphy_resume, 195 - 196 - .driver = { .owner = THIS_MODULE, } 197 197 }, { 198 198 .phy_id = 0x0007c0c0, /* OUI=0x00800f, Model#=0x0c */ 199 199 .phy_id_mask = 0xfffffff0, ··· 213 217 214 218 .suspend = genphy_suspend, 215 219 .resume = genphy_resume, 216 - 217 - .driver = { .owner = THIS_MODULE, } 218 220 }, { 219 221 .phy_id = 0x0007c0d0, /* OUI=0x00800f, Model#=0x0d */ 220 222 .phy_id_mask = 0xfffffff0, ··· 233 239 234 240 .suspend = genphy_suspend, 235 241 .resume = genphy_resume, 236 - 237 - .driver = { .owner = THIS_MODULE, } 238 242 }, { 239 243 .phy_id = 0x0007c0f0, /* OUI=0x00800f, Model#=0x0f */ 240 244 .phy_id_mask = 0xfffffff0, ··· 254 262 255 263 .suspend = genphy_suspend, 256 264 .resume = genphy_resume, 257 - 258 - .driver = { .owner = THIS_MODULE, } 259 265 } }; 260 266 261 267 module_phy_driver(smsc_phy_driver);
-2
drivers/net/phy/ste10Xp.c
··· 95 95 .config_intr = ste10Xp_config_intr, 96 96 .suspend = genphy_suspend, 97 97 .resume = genphy_resume, 98 - .driver = {.owner = THIS_MODULE,} 99 98 }, { 100 99 .phy_id = STE100P_PHY_ID, 101 100 .phy_id_mask = 0xffffffff, ··· 108 109 .config_intr = ste10Xp_config_intr, 109 110 .suspend = genphy_suspend, 110 111 .resume = genphy_resume, 111 - .driver = {.owner = THIS_MODULE,} 112 112 } }; 113 113 114 114 module_phy_driver(ste10xp_pdriver);
-1
drivers/net/phy/teranetics.c
··· 108 108 .config_aneg = teranetics_config_aneg, 109 109 .read_status = teranetics_read_status, 110 110 .match_phy_device = teranetics_match_phy_device, 111 - .driver = { .owner = THIS_MODULE,}, 112 111 }, 113 112 }; 114 113
-8
drivers/net/phy/vitesse.c
··· 236 236 .read_status = &genphy_read_status, 237 237 .ack_interrupt = &vsc824x_ack_interrupt, 238 238 .config_intr = &vsc82xx_config_intr, 239 - .driver = { .owner = THIS_MODULE,}, 240 239 }, { 241 240 .phy_id = PHY_ID_VSC8244, 242 241 .name = "Vitesse VSC8244", ··· 247 248 .read_status = &genphy_read_status, 248 249 .ack_interrupt = &vsc824x_ack_interrupt, 249 250 .config_intr = &vsc82xx_config_intr, 250 - .driver = { .owner = THIS_MODULE,}, 251 251 }, { 252 252 .phy_id = PHY_ID_VSC8514, 253 253 .name = "Vitesse VSC8514", ··· 258 260 .read_status = &genphy_read_status, 259 261 .ack_interrupt = &vsc824x_ack_interrupt, 260 262 .config_intr = &vsc82xx_config_intr, 261 - .driver = { .owner = THIS_MODULE,}, 262 263 }, { 263 264 .phy_id = PHY_ID_VSC8574, 264 265 .name = "Vitesse VSC8574", ··· 269 272 .read_status = &genphy_read_status, 270 273 .ack_interrupt = &vsc824x_ack_interrupt, 271 274 .config_intr = &vsc82xx_config_intr, 272 - .driver = { .owner = THIS_MODULE,}, 273 275 }, { 274 276 .phy_id = PHY_ID_VSC8601, 275 277 .name = "Vitesse VSC8601", ··· 280 284 .read_status = &genphy_read_status, 281 285 .ack_interrupt = &vsc824x_ack_interrupt, 282 286 .config_intr = &vsc82xx_config_intr, 283 - .driver = { .owner = THIS_MODULE,}, 284 287 }, { 285 288 .phy_id = PHY_ID_VSC8662, 286 289 .name = "Vitesse VSC8662", ··· 291 296 .read_status = &genphy_read_status, 292 297 .ack_interrupt = &vsc824x_ack_interrupt, 293 298 .config_intr = &vsc82xx_config_intr, 294 - .driver = { .owner = THIS_MODULE,}, 295 299 }, { 296 300 /* Vitesse 8221 */ 297 301 .phy_id = PHY_ID_VSC8221, ··· 303 309 .read_status = &genphy_read_status, 304 310 .ack_interrupt = &vsc824x_ack_interrupt, 305 311 .config_intr = &vsc82xx_config_intr, 306 - .driver = { .owner = THIS_MODULE,}, 307 312 }, { 308 313 /* Vitesse 8211 */ 309 314 .phy_id = PHY_ID_VSC8211, ··· 315 322 .read_status = &genphy_read_status, 316 323 .ack_interrupt = &vsc824x_ack_interrupt, 317 324 .config_intr = &vsc82xx_config_intr, 318 - .driver = { .owner = THIS_MODULE,}, 319 325 } }; 320 326 321 327 module_phy_driver(vsc82xx_driver);
+4 -3
include/linux/phy.h
··· 797 797 int genphy_soft_reset(struct phy_device *phydev); 798 798 void phy_driver_unregister(struct phy_driver *drv); 799 799 void phy_drivers_unregister(struct phy_driver *drv, int n); 800 - int phy_driver_register(struct phy_driver *new_driver); 801 - int phy_drivers_register(struct phy_driver *new_driver, int n); 800 + int phy_driver_register(struct phy_driver *new_driver, struct module *owner); 801 + int phy_drivers_register(struct phy_driver *new_driver, int n, 802 + struct module *owner); 802 803 void phy_state_machine(struct work_struct *work); 803 804 void phy_change(struct work_struct *work); 804 805 void phy_mac_interrupt(struct phy_device *phydev, int new_link); ··· 844 843 #define phy_module_driver(__phy_drivers, __count) \ 845 844 static int __init phy_module_init(void) \ 846 845 { \ 847 - return phy_drivers_register(__phy_drivers, __count); \ 846 + return phy_drivers_register(__phy_drivers, __count, THIS_MODULE); \ 848 847 } \ 849 848 module_init(phy_module_init); \ 850 849 static void __exit phy_module_exit(void) \