Commit e0217c5
committed
Revert "PCI: Use to_pci_driver() instead of pci_dev->driver"
This reverts commit 2a4d940.
Robert reported a NULL pointer dereference caused by the PCI core
(local_pci_probe()) calling the i2c_designware_pci driver's
.runtime_resume() method before the .probe() method. i2c_dw_pci_resume()
depends on initialization done by i2c_dw_pci_probe().
Prior to 2a4d940 ("PCI: Use to_pci_driver() instead of
pci_dev->driver"), pci_pm_runtime_resume() avoided calling the
.runtime_resume() method because pci_dev->driver had not been set yet.
2a4d940 and b5f9c64 ("PCI: Remove struct pci_dev->driver"),
removed pci_dev->driver, replacing it by device->driver, which *has* been
set by this time, so pci_pm_runtime_resume() called the .runtime_resume()
method when it previously had not.
Fixes: 2a4d940 ("PCI: Use to_pci_driver() instead of pci_dev->driver")
Link: https://lore.kernel.org/linux-i2c/CAP145pgdrdiMAT7=-iB1DMgA7t_bMqTcJL4N0=6u8kNY3EU0dw@mail.gmail.com/
Reported-by: Robert Święcki <robert@swiecki.net>
Tested-by: Robert Święcki <robert@swiecki.net>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>1 parent 68da4e0 commit e0217c5
4 files changed
Lines changed: 37 additions & 45 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
168 | 167 | | |
169 | 168 | | |
170 | 169 | | |
171 | | - | |
172 | | - | |
| 170 | + | |
173 | 171 | | |
174 | 172 | | |
175 | | - | |
| 173 | + | |
176 | 174 | | |
177 | 175 | | |
178 | 176 | | |
| |||
185 | 183 | | |
186 | 184 | | |
187 | 185 | | |
188 | | - | |
189 | 186 | | |
190 | 187 | | |
191 | 188 | | |
| |||
195 | 192 | | |
196 | 193 | | |
197 | 194 | | |
198 | | - | |
199 | | - | |
| 195 | + | |
200 | 196 | | |
201 | 197 | | |
202 | 198 | | |
203 | 199 | | |
204 | 200 | | |
205 | | - | |
| 201 | + | |
206 | 202 | | |
207 | 203 | | |
208 | 204 | | |
| |||
212 | 208 | | |
213 | 209 | | |
214 | 210 | | |
215 | | - | |
| 211 | + | |
216 | 212 | | |
217 | 213 | | |
218 | 214 | | |
| |||
379 | 375 | | |
380 | 376 | | |
381 | 377 | | |
382 | | - | |
383 | 378 | | |
384 | 379 | | |
385 | 380 | | |
| |||
395 | 390 | | |
396 | 391 | | |
397 | 392 | | |
398 | | - | |
399 | | - | |
| 393 | + | |
400 | 394 | | |
401 | 395 | | |
402 | 396 | | |
403 | 397 | | |
404 | 398 | | |
405 | 399 | | |
406 | | - | |
| 400 | + | |
407 | 401 | | |
408 | 402 | | |
409 | 403 | | |
410 | 404 | | |
411 | 405 | | |
412 | 406 | | |
413 | 407 | | |
414 | | - | |
| 408 | + | |
415 | 409 | | |
416 | 410 | | |
417 | 411 | | |
| |||
423 | 417 | | |
424 | 418 | | |
425 | 419 | | |
426 | | - | |
| 420 | + | |
427 | 421 | | |
428 | 422 | | |
429 | 423 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
457 | 457 | | |
458 | 458 | | |
459 | 459 | | |
460 | | - | |
| 460 | + | |
461 | 461 | | |
462 | 462 | | |
463 | 463 | | |
| |||
493 | 493 | | |
494 | 494 | | |
495 | 495 | | |
496 | | - | |
| 496 | + | |
497 | 497 | | |
498 | 498 | | |
499 | 499 | | |
| |||
589 | 589 | | |
590 | 590 | | |
591 | 591 | | |
592 | | - | |
| 592 | + | |
593 | 593 | | |
594 | 594 | | |
595 | 595 | | |
| |||
630 | 630 | | |
631 | 631 | | |
632 | 632 | | |
633 | | - | |
| 633 | + | |
634 | 634 | | |
635 | 635 | | |
636 | 636 | | |
| |||
649 | 649 | | |
650 | 650 | | |
651 | 651 | | |
652 | | - | |
| 652 | + | |
653 | 653 | | |
654 | 654 | | |
655 | 655 | | |
| |||
1242 | 1242 | | |
1243 | 1243 | | |
1244 | 1244 | | |
1245 | | - | |
1246 | | - | |
1247 | | - | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
1248 | 1248 | | |
1249 | | - | |
| 1249 | + | |
1250 | 1250 | | |
1251 | 1251 | | |
1252 | 1252 | | |
| |||
1303 | 1303 | | |
1304 | 1304 | | |
1305 | 1305 | | |
1306 | | - | |
| 1306 | + | |
1307 | 1307 | | |
1308 | 1308 | | |
1309 | 1309 | | |
| |||
1322 | 1322 | | |
1323 | 1323 | | |
1324 | 1324 | | |
| 1325 | + | |
1325 | 1326 | | |
1326 | 1327 | | |
1327 | 1328 | | |
1328 | | - | |
1329 | | - | |
| 1329 | + | |
| 1330 | + | |
1330 | 1331 | | |
1331 | | - | |
| 1332 | + | |
1332 | 1333 | | |
1333 | 1334 | | |
1334 | 1335 | | |
| |||
1435 | 1436 | | |
1436 | 1437 | | |
1437 | 1438 | | |
1438 | | - | |
1439 | | - | |
1440 | | - | |
1441 | | - | |
| 1439 | + | |
| 1440 | + | |
1442 | 1441 | | |
1443 | 1442 | | |
1444 | 1443 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5123 | 5123 | | |
5124 | 5124 | | |
5125 | 5125 | | |
5126 | | - | |
5127 | 5126 | | |
5128 | | - | |
| 5127 | + | |
5129 | 5128 | | |
5130 | 5129 | | |
5131 | | - | |
5132 | | - | |
5133 | | - | |
| 5130 | + | |
| 5131 | + | |
| 5132 | + | |
5134 | 5133 | | |
5135 | 5134 | | |
5136 | 5135 | | |
| |||
5155 | 5154 | | |
5156 | 5155 | | |
5157 | 5156 | | |
5158 | | - | |
5159 | 5157 | | |
5160 | | - | |
| 5158 | + | |
5161 | 5159 | | |
5162 | 5160 | | |
5163 | 5161 | | |
5164 | 5162 | | |
5165 | | - | |
5166 | | - | |
| 5163 | + | |
| 5164 | + | |
| 5165 | + | |
5167 | 5166 | | |
5168 | 5167 | | |
5169 | 5168 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
| 57 | + | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
| 101 | + | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
0 commit comments