diff options
-rw-r--r-- | drivers/pci/hotplug/pnv_php.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c index 306728cb5785..41304b313512 100644 --- a/drivers/pci/hotplug/pnv_php.c +++ b/drivers/pci/hotplug/pnv_php.c | |||
@@ -430,9 +430,21 @@ static int pnv_php_enable(struct pnv_php_slot *php_slot, bool rescan) | |||
430 | if (ret) | 430 | if (ret) |
431 | return ret; | 431 | return ret; |
432 | 432 | ||
433 | /* Proceed if there have nothing behind the slot */ | 433 | /* |
434 | if (presence == OPAL_PCI_SLOT_EMPTY) | 434 | * Proceed if there have nothing behind the slot. However, |
435 | * we should leave the slot in registered state at the | ||
436 | * beginning. Otherwise, the PCI devices inserted afterwards | ||
437 | * won't be probed and populated. | ||
438 | */ | ||
439 | if (presence == OPAL_PCI_SLOT_EMPTY) { | ||
440 | if (!php_slot->power_state_check) { | ||
441 | php_slot->power_state_check = true; | ||
442 | |||
443 | return 0; | ||
444 | } | ||
445 | |||
435 | goto scan; | 446 | goto scan; |
447 | } | ||
436 | 448 | ||
437 | /* | 449 | /* |
438 | * If the power supply to the slot is off, we can't detect | 450 | * If the power supply to the slot is off, we can't detect |