Hi Yinghai On Thu, Feb 23, 2017 at 10:54:35PM -0800, Yinghai Lu wrote: > +++ linux-2.6/drivers/pci/hotplug/pciehp_ctrl.c > @@ -71,9 +71,6 @@ static void set_slot_off(struct controll > */ > msleep(1000); > } > - > - pciehp_green_led_off(pslot); > - pciehp_set_attention_status(pslot, 1); Re using set_slot_off() in remove_board() make sense.. but i'm not sure why these are pulled out? It seems to be functionally complete when these are done in set_slot_off(). > } > > /** > @@ -126,6 +123,8 @@ static int board_added(struct slot *p_sl > > err_exit: > set_slot_off(ctrl, p_slot); > + pciehp_green_led_off(p_slot); > + pciehp_set_attention_status(p_slot, 1); > return retval; > } > > @@ -142,16 +141,7 @@ static int remove_board(struct slot *p_s > if (retval) > return retval; > > - if (POWER_CTRL(ctrl)) { > - pciehp_power_off_slot(p_slot); > - > - /* > - * After turning power off, we must wait for at least 1 second > - * before taking any action that relies on power having been > - * removed from the slot/adapter. > - */ > - msleep(1000); > - } > + set_slot_off(ctrl, p_slot); > > /* turn off Green LED */ > pciehp_green_led_off(p_slot); Don't we need the pciehp_set_attention_status() here? Cheers, Ashok