On Thursday 04 September 2008 09:04:29 pm Taku Izumi wrote: > This patch replaces printks within shpchp module with dev_printks. Thanks a lot for doing this! > Index: linux-next-jesse/drivers/pci/hotplug/shpchp.h > =================================================================== > --- linux-next-jesse.orig/drivers/pci/hotplug/shpchp.h > +++ linux-next-jesse/drivers/pci/hotplug/shpchp.h > @@ -59,6 +59,20 @@ extern struct workqueue_struct *shpchp_w > #define warn(format, arg...) \ > printk(KERN_WARNING "%s: " format, MY_NAME , ## arg) > > +#define ctrl_dbg(ctrl, format, arg...) \ > + do { \ > + if (shpchp_debug) \ > + dev_printk(, &ctrl->pci_dev->dev, \ > + format, ## arg); \ > + } while (0) Does the above compile? It looks like it's missing the KERN_DEBUG or similar argument to dev_printk(). > +#define ctrl_err(ctrl, format, arg...) \ > + dev_err(&ctrl->pci_dev->dev, format, ## arg) > +#define ctrl_info(ctrl, format, arg...) \ > + dev_info(&ctrl->pci_dev->dev, format, ## arg) > +#define ctrl_warn(ctrl, format, arg...) \ > + dev_warn(&ctrl->pci_dev->dev, format, ## arg) > + > + > #define SLOT_NAME_SIZE 10 > struct slot { > u8 bus; > @@ -236,7 +250,7 @@ static inline struct slot *shpchp_find_s > return slot; > } > > - err("%s: slot (device=0x%x) not found\n", __func__, device); > + ctrl_err(ctrl, "%s: slot (device=0x%x) not found\n", __func__, device); My personal opinion is that all the __func__ stuff is ugly and should be removed. But if you're only comfortable doing a minimal dev_printk conversion, I understand that. And maybe it'd be best to do it in incremental patches: - minimal dev_printk conversion (like this one) - remove __func__ - more structural stuff like figuring out PCI domains (see below) > return NULL; > } > > @@ -270,7 +284,9 @@ static inline void amd_pogo_errata_resto > pci_read_config_dword(p_slot->ctrl->pci_dev, PCIX_MISC_BRIDGE_ERRORS_OFFSET, > &pcix_bridge_errors_reg); > perr_set = pcix_bridge_errors_reg & PERR_OBSERVED_MASK; > if (perr_set) { > - dbg ("%s W1C: Bridge_Errors[ PERR_OBSERVED = %08X]\n",__func__ , perr_set); > + ctrl_dbg(p_slot->ctrl, > + "%s W1C: Bridge_Errors[ PERR_OBSERVED = %08X]\n", > + __func__ , perr_set); > > pci_write_config_dword(p_slot->ctrl->pci_dev, PCIX_MISC_BRIDGE_ERRORS_OFFSET, > perr_set); > } > @@ -279,7 +295,8 @@ static inline void amd_pogo_errata_resto > pci_read_config_dword(p_slot->ctrl->pci_dev, PCIX_MEM_BASE_LIMIT_OFFSET, > &pcix_mem_base_reg); > rse_set = pcix_mem_base_reg & RSE_MASK; > if (rse_set) { > - dbg ("%s W1C: Memory_Base_Limit[ RSE ]\n",__func__ ); > + ctrl_dbg(p_slot->ctrl, "%s W1C: Memory_Base_Limit[ RSE ]\n", > + __func__); > > pci_write_config_dword(p_slot->ctrl->pci_dev, PCIX_MEM_BASE_LIMIT_OFFSET, rse_set); > } > Index: linux-next-jesse/drivers/pci/hotplug/shpchp_core.c > =================================================================== > --- linux-next-jesse.orig/drivers/pci/hotplug/shpchp_core.c > +++ linux-next-jesse/drivers/pci/hotplug/shpchp_core.c > @@ -89,7 +89,8 @@ static void release_slot(struct hotplug_ > { > struct slot *slot = hotplug_slot->private; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > kfree(slot->hotplug_slot->info); > kfree(slot->hotplug_slot); > @@ -141,9 +142,9 @@ static int init_slots(struct controller > get_latch_status(hotplug_slot, &info->latch_status); > get_adapter_status(hotplug_slot, &info->adapter_status); > > - dbg("Registering bus=%x dev=%x hp_slot=%x sun=%x " > - "slot_device_offset=%x\n", slot->bus, slot->device, > - slot->hp_slot, slot->number, ctrl->slot_device_offset); > + ctrl_dbg(ctrl, "Registering bus=%x dev=%x hp_slot=%x sun=%x " > + "slot_device_offset=%x\n", slot->bus, slot->device, > + slot->hp_slot, slot->number, ctrl->slot_device_offset); Maybe %02x:%02x for bus/dev, so it's similar to pci_name()? Can you figure out a PCI domain, too, so you could have the whole %04x:%02:%02x (domain/bus/dev)? > duplicate_name: > retval = pci_hp_register(slot->hotplug_slot, > ctrl->pci_dev->subordinate, slot->device); > @@ -158,9 +159,11 @@ duplicate_name: > if (len < SLOT_NAME_SIZE) > goto duplicate_name; > else > - err("duplicate slot name overflow\n"); > + ctrl_err(ctrl, "duplicate slot name " > + "overflow\n"); > } > - err("pci_hp_register failed with error %d\n", retval); > + ctrl_err(ctrl, "pci_hp_register failed with error %d\n", > + retval); > goto error_info; > } > > @@ -201,7 +204,8 @@ static int set_attention_status (struct > { > struct slot *slot = get_slot(hotplug_slot); > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > hotplug_slot->info->attention_status = status; > slot->hpc_ops->set_attention_status(slot, status); > @@ -213,7 +217,8 @@ static int enable_slot (struct hotplug_s > { > struct slot *slot = get_slot(hotplug_slot); > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > return shpchp_sysfs_enable_slot(slot); > } > @@ -222,7 +227,8 @@ static int disable_slot (struct hotplug_ > { > struct slot *slot = get_slot(hotplug_slot); > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > return shpchp_sysfs_disable_slot(slot); > } > @@ -232,7 +238,8 @@ static int get_power_status (struct hotp > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_power_status(slot, value); > if (retval < 0) > @@ -246,7 +253,8 @@ static int get_attention_status (struct > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_attention_status(slot, value); > if (retval < 0) > @@ -260,7 +268,8 @@ static int get_latch_status (struct hotp > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_latch_status(slot, value); > if (retval < 0) > @@ -274,7 +283,8 @@ static int get_adapter_status (struct ho > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_adapter_status(slot, value); > if (retval < 0) > @@ -289,7 +299,8 @@ static int get_max_bus_speed(struct hotp > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_max_bus_speed(slot, value); > if (retval < 0) > @@ -303,7 +314,8 @@ static int get_cur_bus_speed (struct hot > struct slot *slot = get_slot(hotplug_slot); > int retval; > > - dbg("%s - physical_slot = %s\n", __func__, hotplug_slot->name); > + ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", > + __func__, hotplug_slot->name); > > retval = slot->hpc_ops->get_cur_bus_speed(slot, value); > if (retval < 0) > @@ -334,15 +346,14 @@ static int shpc_probe(struct pci_dev *pd > > ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL); > if (!ctrl) { > - err("%s : out of memory\n", __func__); > + dev_err(&pdev->dev, "%s : out of memory\n", __func__); > goto err_out_none; > } > INIT_LIST_HEAD(&ctrl->slot_list); > > rc = shpc_init(ctrl, pdev); > if (rc) { > - dbg("%s: controller initialization failed\n", > - SHPC_MODULE_NAME); > + ctrl_dbg(ctrl, "controller initialization failed\n"); > goto err_out_free_ctrl; > } > > @@ -351,7 +362,7 @@ static int shpc_probe(struct pci_dev *pd > /* Setup the slot information structures */ > rc = init_slots(ctrl); > if (rc) { > - err("%s: slot initialization failed\n", SHPC_MODULE_NAME); > + ctrl_err(ctrl, "slot initialization failed\n"); > goto err_out_release_ctlr; > } > > Index: linux-next-jesse/drivers/pci/hotplug/shpchp_ctrl.c > =================================================================== > --- linux-next-jesse.orig/drivers/pci/hotplug/shpchp_ctrl.c > +++ linux-next-jesse/drivers/pci/hotplug/shpchp_ctrl.c > @@ -62,7 +62,7 @@ u8 shpchp_handle_attention_button(u8 hp_ > u32 event_type; > > /* Attention Button Change */ > - dbg("shpchp: Attention button interrupt received.\n"); > + ctrl_dbg(ctrl, "Attention button interrupt received.\n"); > > p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset); > p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save)); > @@ -70,7 +70,7 @@ u8 shpchp_handle_attention_button(u8 hp_ > /* > * Button pressed - See if need to TAKE ACTION!!! > */ > - info("Button pressed on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Button pressed on Slot(%s)\n", p_slot->name); > event_type = INT_BUTTON_PRESS; > > queue_interrupt_event(p_slot, event_type); > @@ -86,29 +86,29 @@ u8 shpchp_handle_switch_change(u8 hp_slo > u32 event_type; > > /* Switch Change */ > - dbg("shpchp: Switch interrupt received.\n"); > + ctrl_dbg(ctrl, "Switch interrupt received.\n"); > > p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset); > p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save)); > p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); > - dbg("%s: Card present %x Power status %x\n", __func__, > - p_slot->presence_save, p_slot->pwr_save); > + ctrl_dbg(ctrl, "%s: Card present %x Power status %x\n", > + __func__, p_slot->presence_save, p_slot->pwr_save); > > if (getstatus) { > /* > * Switch opened > */ > - info("Latch open on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Latch open on Slot(%s)\n", p_slot->name); > event_type = INT_SWITCH_OPEN; > if (p_slot->pwr_save && p_slot->presence_save) { > event_type = INT_POWER_FAULT; > - err("Surprise Removal of card\n"); > + ctrl_err(ctrl, "Surprise Removal of card\n"); > } > } else { > /* > * Switch closed > */ > - info("Latch close on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Latch close on Slot(%s)\n", p_slot->name); > event_type = INT_SWITCH_CLOSE; > } > > @@ -123,7 +123,7 @@ u8 shpchp_handle_presence_change(u8 hp_s > u32 event_type; > > /* Presence Change */ > - dbg("shpchp: Presence/Notify input change.\n"); > + ctrl_dbg(ctrl, "Presence/Notify input change.\n"); Nit: I'd remove the trailing ".", since most other messages here omit it. Along the same lines, most are all lower-case. > p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset); > > @@ -135,13 +135,13 @@ u8 shpchp_handle_presence_change(u8 hp_s > /* > * Card Present > */ > - info("Card present on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Card present on Slot(%s)\n", p_slot->name); > event_type = INT_PRESENCE_ON; > } else { > /* > * Not Present > */ > - info("Card not present on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Card not present on Slot(%s)\n", p_slot->name); > event_type = INT_PRESENCE_OFF; > } > > @@ -156,7 +156,7 @@ u8 shpchp_handle_power_fault(u8 hp_slot, > u32 event_type; > > /* Power fault */ > - dbg("shpchp: Power fault interrupt received.\n"); > + ctrl_dbg(ctrl, "Power fault interrupt received.\n"); > > p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset); > > @@ -164,18 +164,19 @@ u8 shpchp_handle_power_fault(u8 hp_slot, > /* > * Power fault Cleared > */ > - info("Power fault cleared on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Power fault cleared on Slot(%s)\n", > + p_slot->name); > p_slot->status = 0x00; > event_type = INT_POWER_FAULT_CLEAR; > } else { > /* > * Power fault > */ > - info("Power fault on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Power fault on Slot(%s)\n", p_slot->name); > event_type = INT_POWER_FAULT; > /* set power fault status for this board */ > p_slot->status = 0xFF; > - info("power fault bit %x set\n", hp_slot); > + ctrl_info(ctrl, "power fault bit %x set\n", hp_slot); > } > > queue_interrupt_event(p_slot, event_type); > @@ -191,10 +192,10 @@ static int change_bus_speed(struct contr > { > int rc = 0; > > - dbg("%s: change to speed %d\n", __func__, speed); > + ctrl_dbg(ctrl, "%s: change to speed %d\n", __func__, speed); > if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, speed))) { > - err("%s: Issue of set bus speed mode command failed\n", > - __func__); > + ctrl_err(ctrl, "%s: Issue of set bus speed mode command " > + "failed\n", __func__); > return WRONG_BUS_FREQUENCY; > } > return rc; > @@ -212,8 +213,8 @@ static int fix_bus_speed(struct controll > */ > if (flag) { > if (asp < bsp) { > - err("%s: speed of bus %x and adapter %x mismatch\n", > - __func__, bsp, asp); > + ctrl_err(ctrl, "%s: speed of bus %x and adapter %x " > + "mismatch\n", __func__, bsp, asp); > rc = WRONG_BUS_FREQUENCY; > } > return rc; > @@ -246,14 +247,14 @@ static int board_added(struct slot *p_sl > > hp_slot = p_slot->device - ctrl->slot_device_offset; > > - dbg("%s: p_slot->device, slot_offset, hp_slot = %d, %d ,%d\n", > - __func__, p_slot->device, > - ctrl->slot_device_offset, hp_slot); > + ctrl_dbg(ctrl, > + "%s: p_slot->device, slot_offset, hp_slot = %d, %d ,%d\n", > + __func__, p_slot->device, ctrl->slot_device_offset, hp_slot); > > /* Power on slot without connecting to bus */ > rc = p_slot->hpc_ops->power_on_slot(p_slot); > if (rc) { > - err("%s: Failed to power on slot\n", __func__); > + ctrl_err(ctrl, "%s: Failed to power on slot\n", __func__); > return -1; > } > > @@ -262,33 +263,36 @@ static int board_added(struct slot *p_sl > return WRONG_BUS_FREQUENCY; > > if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, PCI_SPEED_33MHz))) { > - err("%s: Issue of set bus speed mode command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of set bus speed mode command" > + " failed\n", __func__); > return WRONG_BUS_FREQUENCY; > } > > /* turn on board, blink green LED, turn off Amber LED */ > if ((rc = p_slot->hpc_ops->slot_enable(p_slot))) { > - err("%s: Issue of Slot Enable command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of Slot Enable command" > + " failed\n", __func__); > return rc; > } > } > > rc = p_slot->hpc_ops->get_adapter_speed(p_slot, &asp); > if (rc) { > - err("%s: Can't get adapter speed or bus mode mismatch\n", > - __func__); > + ctrl_err(ctrl, "%s: Can't get adapter speed or bus mode " > + "mismatch\n", __func__); > return WRONG_BUS_FREQUENCY; > } > > rc = p_slot->hpc_ops->get_cur_bus_speed(p_slot, &bsp); > if (rc) { > - err("%s: Can't get bus operation speed\n", __func__); > + ctrl_err(ctrl, "%s: Can't get bus operation speed\n", __func__); > return WRONG_BUS_FREQUENCY; > } > > rc = p_slot->hpc_ops->get_max_bus_speed(p_slot, &msp); > if (rc) { > - err("%s: Can't get max bus operation speed\n", __func__); > + ctrl_err(ctrl, "%s: Can't get max bus operation speed\n", > + __func__); > msp = bsp; > } > > @@ -296,9 +300,9 @@ static int board_added(struct slot *p_sl > if (!list_empty(&ctrl->pci_dev->subordinate->devices)) > slots_not_empty = 1; > > - dbg("%s: slots_not_empty %d, adapter_speed %d, bus_speed %d, " > - "max_bus_speed %d\n", __func__, slots_not_empty, asp, > - bsp, msp); > + ctrl_dbg(ctrl, "%s: slots_not_empty %d, adapter_speed %d, bus_speed %d," > + " max_bus_speed %d\n", __func__, slots_not_empty, asp, > + bsp, msp); > > rc = fix_bus_speed(ctrl, p_slot, slots_not_empty, asp, bsp, msp); > if (rc) > @@ -306,26 +310,27 @@ static int board_added(struct slot *p_sl > > /* turn on board, blink green LED, turn off Amber LED */ > if ((rc = p_slot->hpc_ops->slot_enable(p_slot))) { > - err("%s: Issue of Slot Enable command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of Slot Enable command failed\n", > + __func__); > return rc; > } > > /* Wait for ~1 second */ > msleep(1000); > > - dbg("%s: slot status = %x\n", __func__, p_slot->status); > + ctrl_dbg(ctrl, "%s: slot status = %x\n", __func__, p_slot->status); > /* Check for a power fault */ > if (p_slot->status == 0xFF) { > /* power fault occurred, but it was benign */ > - dbg("%s: power fault\n", __func__); > + ctrl_dbg(ctrl, "%s: power fault\n", __func__); > rc = POWER_FAILURE; > p_slot->status = 0; > goto err_exit; > } > > if (shpchp_configure_device(p_slot)) { > - err("Cannot add device at 0x%x:0x%x\n", p_slot->bus, > - p_slot->device); > + ctrl_err(ctrl, "Cannot add device at 0x%x:0x%x\n", > + p_slot->bus, p_slot->device); %02x:%02x and add domain if possible. > goto err_exit; > } > > @@ -341,7 +346,8 @@ err_exit: > /* turn off slot, turn on Amber LED, turn off Green LED */ > rc = p_slot->hpc_ops->slot_disable(p_slot); > if (rc) { > - err("%s: Issue of Slot Disable command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of Slot Disable command failed\n", > + __func__); > return rc; > } > > @@ -365,7 +371,7 @@ static int remove_board(struct slot *p_s > hp_slot = p_slot->device - ctrl->slot_device_offset; > p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset); > > - dbg("In %s, hp_slot = %d\n", __func__, hp_slot); > + ctrl_dbg(ctrl, "In %s, hp_slot = %d\n", __func__, hp_slot); > > /* Change status to shutdown */ > if (p_slot->is_a_board) > @@ -374,13 +380,15 @@ static int remove_board(struct slot *p_s > /* turn off slot, turn on Amber LED, turn off Green LED */ > rc = p_slot->hpc_ops->slot_disable(p_slot); > if (rc) { > - err("%s: Issue of Slot Disable command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of Slot Disable command failed\n", > + __func__); > return rc; > } > > rc = p_slot->hpc_ops->set_attention_status(p_slot, 0); > if (rc) { > - err("%s: Issue of Set Attention command failed\n", __func__); > + ctrl_err(ctrl, "%s: Issue of Set Attention command failed\n", > + __func__); > return rc; > } > > @@ -439,7 +447,8 @@ void shpchp_queue_pushbutton_work(struct > > info = kmalloc(sizeof(*info), GFP_KERNEL); > if (!info) { > - err("%s: Cannot allocate memory\n", __func__); > + ctrl_err(p_slot->ctrl, "%s: Cannot allocate memory\n", > + __func__); > return; > } > info->p_slot = p_slot; > @@ -486,18 +495,19 @@ static int update_slot_info (struct slot > static void handle_button_press_event(struct slot *p_slot) > { > u8 getstatus; > + struct controller *ctrl = p_slot->ctrl; > > switch (p_slot->state) { > case STATIC_STATE: > p_slot->hpc_ops->get_power_status(p_slot, &getstatus); > if (getstatus) { > p_slot->state = BLINKINGOFF_STATE; > - info("PCI slot #%s - powering off due to button " > - "press.\n", p_slot->name); > + ctrl_info(ctrl, "PCI slot #%s - powering off due to " > + "button press.\n", p_slot->name); > } else { > p_slot->state = BLINKINGON_STATE; > - info("PCI slot #%s - powering on due to button " > - "press.\n", p_slot->name); > + ctrl_info(ctrl, "PCI slot #%s - powering on due to " > + "button press.\n", p_slot->name); > } > /* blink green LED and turn off amber */ > p_slot->hpc_ops->green_led_blink(p_slot); > @@ -512,16 +522,16 @@ static void handle_button_press_event(st > * press the attention again before the 5 sec. limit > * expires to cancel hot-add or hot-remove > */ > - info("Button cancel on Slot(%s)\n", p_slot->name); > - dbg("%s: button cancel\n", __func__); > + ctrl_info(ctrl, "Button cancel on Slot(%s)\n", p_slot->name); > + ctrl_dbg(ctrl, "%s: button cancel\n", __func__); > cancel_delayed_work(&p_slot->work); > if (p_slot->state == BLINKINGOFF_STATE) > p_slot->hpc_ops->green_led_on(p_slot); > else > p_slot->hpc_ops->green_led_off(p_slot); > p_slot->hpc_ops->set_attention_status(p_slot, 0); > - info("PCI slot #%s - action canceled due to button press\n", > - p_slot->name); > + ctrl_info(ctrl, "PCI slot #%s - action canceled due to " > + "button press\n", p_slot->name); > p_slot->state = STATIC_STATE; > break; > case POWEROFF_STATE: > @@ -531,11 +541,11 @@ static void handle_button_press_event(st > * this means that the previous attention button action > * to hot-add or hot-remove is undergoing > */ > - info("Button ignore on Slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Button ignore on Slot(%s)\n", p_slot->name); > update_slot_info(p_slot); > break; > default: > - warn("Not a valid state\n"); > + ctrl_warn(ctrl, "Not a valid state\n"); > break; > } > } > @@ -551,7 +561,7 @@ static void interrupt_event_handler(stru > handle_button_press_event(p_slot); > break; > case INT_POWER_FAULT: > - dbg("%s: power fault\n", __func__); > + ctrl_dbg(p_slot->ctrl, "%s: power fault\n", __func__); > p_slot->hpc_ops->set_attention_status(p_slot, 1); > p_slot->hpc_ops->green_led_off(p_slot); > break; > @@ -569,22 +579,23 @@ static int shpchp_enable_slot (struct sl > { > u8 getstatus = 0; > int rc, retval = -ENODEV; > + struct controller *ctrl = p_slot->ctrl; > > /* Check to see if (latch closed, card present, power off) */ > mutex_lock(&p_slot->ctrl->crit_sect); > rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); > if (rc || !getstatus) { > - info("No adapter on slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "No adapter on slot(%s)\n", p_slot->name); > goto out; > } > rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); > if (rc || getstatus) { > - info("Latch open on slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Latch open on slot(%s)\n", p_slot->name); > goto out; > } > rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); > if (rc || getstatus) { > - info("Already enabled on slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Already enabled on slot(%s)\n", p_slot->name); > goto out; > } > > @@ -593,7 +604,7 @@ static int shpchp_enable_slot (struct sl > /* We have to save the presence info for these slots */ > p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save)); > p_slot->hpc_ops->get_power_status(p_slot, &(p_slot->pwr_save)); > - dbg("%s: p_slot->pwr_save %x\n", __func__, p_slot->pwr_save); > + ctrl_dbg(ctrl, "%s: p_slot->pwr_save %x\n", __func__, p_slot->pwr_save); > p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); > > if(((p_slot->ctrl->pci_dev->vendor == PCI_VENDOR_ID_AMD) || > @@ -624,6 +635,7 @@ static int shpchp_disable_slot (struct s > { > u8 getstatus = 0; > int rc, retval = -ENODEV; > + struct controller *ctrl = p_slot->ctrl; > > if (!p_slot->ctrl) > return -ENODEV; > @@ -633,17 +645,17 @@ static int shpchp_disable_slot (struct s > > rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); > if (rc || !getstatus) { > - info("No adapter on slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "No adapter on slot(%s)\n", p_slot->name); > goto out; > } > rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); > if (rc || getstatus) { > - info("Latch open on slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Latch open on slot(%s)\n", p_slot->name); > goto out; > } > rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); > if (rc || !getstatus) { > - info("Already disabled slot(%s)\n", p_slot->name); > + ctrl_info(ctrl, "Already disabled slot(%s)\n", p_slot->name); > goto out; > } > > @@ -657,6 +669,7 @@ static int shpchp_disable_slot (struct s > int shpchp_sysfs_enable_slot(struct slot *p_slot) > { > int retval = -ENODEV; > + struct controller *ctrl = p_slot->ctrl; > > mutex_lock(&p_slot->lock); > switch (p_slot->state) { > @@ -670,15 +683,15 @@ int shpchp_sysfs_enable_slot(struct slot > p_slot->state = STATIC_STATE; > break; > case POWERON_STATE: > - info("Slot %s is already in powering on state\n", > - p_slot->name); > + ctrl_info(ctrl, "Slot %s is already in powering on state\n", > + p_slot->name); > break; > case BLINKINGOFF_STATE: > case POWEROFF_STATE: > - info("Already enabled on slot %s\n", p_slot->name); > + ctrl_info(ctrl, "Already enabled on slot %s\n", p_slot->name); > break; > default: > - err("Not a valid state on slot %s\n", p_slot->name); > + ctrl_err(ctrl, "Not a valid state on slot %s\n", p_slot->name); > break; > } > mutex_unlock(&p_slot->lock); > @@ -689,6 +702,7 @@ int shpchp_sysfs_enable_slot(struct slot > int shpchp_sysfs_disable_slot(struct slot *p_slot) > { > int retval = -ENODEV; > + struct controller *ctrl = p_slot->ctrl; > > mutex_lock(&p_slot->lock); > switch (p_slot->state) { > @@ -702,15 +716,15 @@ int shpchp_sysfs_disable_slot(struct slo > p_slot->state = STATIC_STATE; > break; > case POWEROFF_STATE: > - info("Slot %s is already in powering off state\n", > - p_slot->name); > + ctrl_info(ctrl, "Slot %s is already in powering off state\n", > + p_slot->name); > break; > case BLINKINGON_STATE: > case POWERON_STATE: > - info("Already disabled on slot %s\n", p_slot->name); > + ctrl_info(ctrl, "Already disabled on slot %s\n", p_slot->name); > break; > default: > - err("Not a valid state on slot %s\n", p_slot->name); > + ctrl_err(ctrl, "Not a valid state on slot %s\n", p_slot->name); > break; > } > mutex_unlock(&p_slot->lock); > Index: linux-next-jesse/drivers/pci/hotplug/shpchp_hpc.c > =================================================================== > --- linux-next-jesse.orig/drivers/pci/hotplug/shpchp_hpc.c > +++ linux-next-jesse/drivers/pci/hotplug/shpchp_hpc.c > @@ -300,10 +300,10 @@ static inline int shpc_wait_cmd(struct c > !is_ctrl_busy(ctrl), timeout); > if (!rc && is_ctrl_busy(ctrl)) { > retval = -EIO; > - err("Command not completed in 1000 msec\n"); > + ctrl_err(ctrl, "Command not completed in 1000 msec\n"); > } else if (rc < 0) { > retval = -EINTR; > - info("Command was interrupted by a signal\n"); > + ctrl_info(ctrl, "Command was interrupted by a signal\n"); > } > > return retval; > @@ -320,15 +320,15 @@ static int shpc_write_cmd(struct slot *s > > if (!shpc_poll_ctrl_busy(ctrl)) { > /* After 1 sec and and the controller is still busy */ > - err("%s : Controller is still busy after 1 sec.\n", > - __func__); > + ctrl_err(ctrl, "%s : Controller is still busy after 1 sec.\n", > + __func__); > retval = -EBUSY; > goto out; > } > > ++t_slot; > temp_word = (t_slot << 8) | (cmd & 0xFF); > - dbg("%s: t_slot %x cmd %x\n", __func__, t_slot, cmd); > + ctrl_dbg(ctrl, "%s: t_slot %x cmd %x\n", __func__, t_slot, cmd); > > /* To make sure the Controller Busy bit is 0 before we send out the > * command. > @@ -344,8 +344,8 @@ static int shpc_write_cmd(struct slot *s > > cmd_status = hpc_check_cmd_status(slot->ctrl); > if (cmd_status) { > - err("%s: Failed to issued command 0x%x (error code = %d)\n", > - __func__, cmd, cmd_status); > + ctrl_err(ctrl, "%s: Failed to issued command 0x%x " > + "(error code = %d)\n", __func__, cmd, cmd_status); > retval = -EIO; > } > out: > @@ -364,15 +364,15 @@ static int hpc_check_cmd_status(struct c > break; > case 1: > retval = SWITCH_OPEN; > - err("%s: Switch opened!\n", __func__); > + ctrl_err(ctrl, "%s: Switch opened!\n", __func__); > break; > case 2: > retval = INVALID_CMD; > - err("%s: Invalid HPC command!\n", __func__); > + ctrl_err(ctrl, "%s: Invalid HPC command!\n", __func__); > break; > case 4: > retval = INVALID_SPEED_MODE; > - err("%s: Invalid bus speed/mode!\n", __func__); > + ctrl_err(ctrl, "%s: Invalid bus speed/mode!\n", __func__); > break; > default: > retval = cmd_status; > @@ -483,8 +483,8 @@ static int hpc_get_adapter_speed(struct > return -ENODEV; > } > > - dbg("%s: slot_reg = %x, pcix_cap = %x, m66_cap = %x\n", > - __func__, slot_reg, pcix_cap, m66_cap); > + ctrl_dbg(ctrl, "%s: slot_reg = %x, pcix_cap = %x, m66_cap = %x\n", > + __func__, slot_reg, pcix_cap, m66_cap); > > switch (pcix_cap) { > case 0x0: > @@ -509,7 +509,7 @@ static int hpc_get_adapter_speed(struct > break; > } > > - dbg("Adapter speed = %d\n", *value); > + ctrl_dbg(ctrl, "Adapter speed = %d\n", *value); > return retval; > } > > @@ -526,7 +526,7 @@ static int hpc_get_mode1_ECC_cap(struct > retval = -1; > } > > - dbg("Mode 1 ECC cap = %d\n", *mode); > + ctrl_dbg(ctrl, "Mode 1 ECC cap = %d\n", *mode); > return retval; > } > > @@ -629,7 +629,7 @@ static int hpc_power_on_slot(struct slot > > retval = shpc_write_cmd(slot, slot->hp_slot, SET_SLOT_PWR); > if (retval) > - err("%s: Write command failed!\n", __func__); > + ctrl_err(slot->ctrl, "%s: Write command failed!\n", __func__); > > return retval; > } > @@ -642,7 +642,7 @@ static int hpc_slot_enable(struct slot * > retval = shpc_write_cmd(slot, slot->hp_slot, > SET_SLOT_ENABLE | SET_PWR_BLINK | SET_ATTN_OFF); > if (retval) > - err("%s: Write command failed!\n", __func__); > + ctrl_err(slot->ctrl, "%s: Write command failed!\n", __func__); > > return retval; > } > @@ -655,7 +655,7 @@ static int hpc_slot_disable(struct slot > retval = shpc_write_cmd(slot, slot->hp_slot, > SET_SLOT_DISABLE | SET_PWR_OFF | SET_ATTN_ON); > if (retval) > - err("%s: Write command failed!\n", __func__); > + ctrl_err(slot->ctrl, "%s: Write command failed!\n", __func__); > > return retval; > } > @@ -719,7 +719,7 @@ static int hpc_set_bus_speed_mode(struct > > retval = shpc_write_cmd(slot, 0, cmd); > if (retval) > - err("%s: Write command failed!\n", __func__); > + ctrl_err(ctrl, "%s: Write command failed!\n", __func__); > > return retval; > } > @@ -735,7 +735,7 @@ static irqreturn_t shpc_isr(int irq, voi > if (!intr_loc) > return IRQ_NONE; > > - dbg("%s: intr_loc = %x\n",__func__, intr_loc); > + ctrl_dbg(ctrl, "%s: intr_loc = %x\n", __func__, intr_loc); > > if(!shpchp_poll_mode) { > /* > @@ -748,7 +748,7 @@ static irqreturn_t shpc_isr(int irq, voi > shpc_writel(ctrl, SERR_INTR_ENABLE, serr_int); > > intr_loc2 = shpc_readl(ctrl, INTR_LOC); > - dbg("%s: intr_loc2 = %x\n",__func__, intr_loc2); > + ctrl_dbg(ctrl, "%s: intr_loc2 = %x\n", __func__, intr_loc2); > } > > if (intr_loc & CMD_INTR_PENDING) { > @@ -773,8 +773,8 @@ static irqreturn_t shpc_isr(int irq, voi > continue; > > slot_reg = shpc_readl(ctrl, SLOT_REG(hp_slot)); > - dbg("%s: Slot %x with intr, slot register = %x\n", > - __func__, hp_slot, slot_reg); > + ctrl_dbg(ctrl, "%s: Slot %x with intr, slot register = %x\n", > + __func__, hp_slot, slot_reg); > > if (slot_reg & MRL_CHANGE_DETECTED) > shpchp_handle_switch_change(hp_slot, ctrl); > @@ -843,7 +843,7 @@ static int hpc_get_max_bus_speed (struct > } > > *value = bus_speed; > - dbg("Max bus speed = %d\n", bus_speed); > + ctrl_dbg(ctrl, "Max bus speed = %d\n", bus_speed); > > return retval; > } > @@ -911,7 +911,7 @@ static int hpc_get_cur_bus_speed (struct > break; > } > > - dbg("Current bus speed = %d\n", bus_speed); > + ctrl_dbg(ctrl, "Current bus speed = %d\n", bus_speed); > return retval; > } > > @@ -958,34 +958,38 @@ int shpc_init(struct controller *ctrl, s > } else { > ctrl->cap_offset = pci_find_capability(pdev, PCI_CAP_ID_SHPC); > if (!ctrl->cap_offset) { > - err("%s : cap_offset == 0\n", __func__); > + ctrl_err(ctrl, "%s : cap_offset == 0\n", __func__); > goto abort; > } > - dbg("%s: cap_offset = %x\n", __func__, ctrl->cap_offset); > + ctrl_dbg(ctrl, "%s: cap_offset = %x\n", __func__, > + ctrl->cap_offset); > > rc = shpc_indirect_read(ctrl, 0, &shpc_base_offset); > if (rc) { > - err("%s: cannot read base_offset\n", __func__); > + ctrl_err(ctrl, "%s: cannot read base_offset\n", > + __func__); > goto abort; > } > > rc = shpc_indirect_read(ctrl, 3, &tempdword); > if (rc) { > - err("%s: cannot read slot config\n", __func__); > + ctrl_err(ctrl, "%s: cannot read slot config\n", > + __func__); > goto abort; > } > num_slots = tempdword & SLOT_NUM; > - dbg("%s: num_slots (indirect) %x\n", __func__, num_slots); > + ctrl_dbg(ctrl, "%s: num_slots (indirect) %x\n", > + __func__, num_slots); > > for (i = 0; i < 9 + num_slots; i++) { > rc = shpc_indirect_read(ctrl, i, &tempdword); > if (rc) { > - err("%s: cannot read creg (index = %d)\n", > - __func__, i); > + ctrl_err(ctrl, "%s: cannot read creg " > + "(index = %d)\n", __func__, i); > goto abort; > } > - dbg("%s: offset %d: value %x\n", __func__,i, > - tempdword); > + ctrl_dbg(ctrl, "%s: offset %d: value %x\n", > + __func__, i, tempdword); > } > > ctrl->mmio_base = > @@ -993,30 +997,31 @@ int shpc_init(struct controller *ctrl, s > ctrl->mmio_size = 0x24 + 0x4 * num_slots; > } > > - info("HPC vendor_id %x device_id %x ss_vid %x ss_did %x\n", pdev->vendor, > pdev->device, pdev->subsystem_vendor, > - pdev->subsystem_device); > + ctrl_info(ctrl, "HPC vendor_id %x device_id %x ss_vid %x ss_did %x\n", > + pdev->vendor, pdev->device, pdev->subsystem_vendor, > + pdev->subsystem_device); > > rc = pci_enable_device(pdev); > if (rc) { > - err("%s: pci_enable_device failed\n", __func__); > + ctrl_err(ctrl, "%s: pci_enable_device failed\n", __func__); > goto abort; > } > > if (!request_mem_region(ctrl->mmio_base, ctrl->mmio_size, MY_NAME)) { > - err("%s: cannot reserve MMIO region\n", __func__); > + ctrl_err(ctrl, "%s: cannot reserve MMIO region\n", __func__); > rc = -1; > goto abort; > } > > ctrl->creg = ioremap(ctrl->mmio_base, ctrl->mmio_size); > if (!ctrl->creg) { > - err("%s: cannot remap MMIO region %lx @ %lx\n", __func__, > - ctrl->mmio_size, ctrl->mmio_base); > + ctrl_err(ctrl, "%s: cannot remap MMIO region %lx @ %lx\n", > + __func__, ctrl->mmio_size, ctrl->mmio_base); > release_mem_region(ctrl->mmio_base, ctrl->mmio_size); > rc = -1; > goto abort; > } > - dbg("%s: ctrl->creg %p\n", __func__, ctrl->creg); > + ctrl_dbg(ctrl, "%s: ctrl->creg %p\n", __func__, ctrl->creg); > > mutex_init(&ctrl->crit_sect); > mutex_init(&ctrl->cmd_lock); > @@ -1035,21 +1040,21 @@ int shpc_init(struct controller *ctrl, s > > /* Mask Global Interrupt Mask & Command Complete Interrupt Mask */ > tempdword = shpc_readl(ctrl, SERR_INTR_ENABLE); > - dbg("%s: SERR_INTR_ENABLE = %x\n", __func__, tempdword); > + ctrl_dbg(ctrl, "%s: SERR_INTR_ENABLE = %x\n", __func__, tempdword); > tempdword |= (GLOBAL_INTR_MASK | GLOBAL_SERR_MASK | > COMMAND_INTR_MASK | ARBITER_SERR_MASK); > tempdword &= ~SERR_INTR_RSVDZ_MASK; > shpc_writel(ctrl, SERR_INTR_ENABLE, tempdword); > tempdword = shpc_readl(ctrl, SERR_INTR_ENABLE); > - dbg("%s: SERR_INTR_ENABLE = %x\n", __func__, tempdword); > + ctrl_dbg(ctrl, "%s: SERR_INTR_ENABLE = %x\n", __func__, tempdword); > > /* Mask the MRL sensor SERR Mask of individual slot in > * Slot SERR-INT Mask & clear all the existing event if any > */ > for (hp_slot = 0; hp_slot < ctrl->num_slots; hp_slot++) { > slot_reg = shpc_readl(ctrl, SLOT_REG(hp_slot)); > - dbg("%s: Default Logical Slot Register %d value %x\n", __func__, > - hp_slot, slot_reg); > + ctrl_dbg(ctrl, "%s: Default Logical Slot Register %d " > + "value %x\n", __func__, hp_slot, slot_reg); > slot_reg |= (PRSNT_CHANGE_INTR_MASK | ISO_PFAULT_INTR_MASK | > BUTTON_PRESS_INTR_MASK | MRL_CHANGE_INTR_MASK | > CON_PFAULT_INTR_MASK | MRL_CHANGE_SERR_MASK | > @@ -1066,24 +1071,26 @@ int shpc_init(struct controller *ctrl, s > /* Installs the interrupt handler */ > rc = pci_enable_msi(pdev); > if (rc) { > - info("Can't get msi for the hotplug controller\n"); > - info("Use INTx for the hotplug controller\n"); > + ctrl_info(ctrl, > + "Can't get msi for the hotplug controller\n"); > + ctrl_info(ctrl, > + "Use INTx for the hotplug controller\n"); > } > > rc = request_irq(ctrl->pci_dev->irq, shpc_isr, IRQF_SHARED, > MY_NAME, (void *)ctrl); > - dbg("%s: request_irq %d for hpc%d (returns %d)\n", > - __func__, ctrl->pci_dev->irq, > + ctrl_dbg(ctrl, "%s: request_irq %d for hpc%d (returns %d)\n", > + __func__, ctrl->pci_dev->irq, > atomic_read(&shpchp_num_controllers), rc); > if (rc) { > - err("Can't get irq %d for the hotplug controller\n", > - ctrl->pci_dev->irq); > + ctrl_err(ctrl, "Can't get irq %d for the hotplug " > + "controller\n", ctrl->pci_dev->irq); > goto abort_iounmap; > } > } > - dbg("%s: HPC at b:d:f:irq=0x%x:%x:%x:%x\n", __func__, > - pdev->bus->number, PCI_SLOT(pdev->devfn), > - PCI_FUNC(pdev->devfn), pdev->irq); > + ctrl_dbg(ctrl, "%s: HPC at b:d:f:irq=0x%x:%x:%x:%x\n", > + __func__, pdev->bus->number, PCI_SLOT(pdev->devfn), > + PCI_FUNC(pdev->devfn), pdev->irq); Use pci_name(pdev). > /* > * If this is the first controller to be initialized, > @@ -1102,8 +1109,8 @@ int shpc_init(struct controller *ctrl, s > */ > for (hp_slot = 0; hp_slot < ctrl->num_slots; hp_slot++) { > slot_reg = shpc_readl(ctrl, SLOT_REG(hp_slot)); > - dbg("%s: Default Logical Slot Register %d value %x\n", __func__, > - hp_slot, slot_reg); > + ctrl_dbg(ctrl, "%s: Default Logical Slot Register %d " > + "value %x\n", __func__, hp_slot, slot_reg); > slot_reg &= ~(PRSNT_CHANGE_INTR_MASK | ISO_PFAULT_INTR_MASK | > BUTTON_PRESS_INTR_MASK | MRL_CHANGE_INTR_MASK | > CON_PFAULT_INTR_MASK | SLOT_REG_RSVDZ_MASK); > @@ -1116,7 +1123,8 @@ int shpc_init(struct controller *ctrl, s > SERR_INTR_RSVDZ_MASK); > shpc_writel(ctrl, SERR_INTR_ENABLE, tempdword); > tempdword = shpc_readl(ctrl, SERR_INTR_ENABLE); > - dbg("%s: SERR_INTR_ENABLE = %x\n", __func__, tempdword); > + ctrl_dbg(ctrl, "%s: SERR_INTR_ENABLE = %x\n", > + __func__, tempdword); > } > > return 0; > Index: linux-next-jesse/drivers/pci/hotplug/shpchp_pci.c > =================================================================== > --- linux-next-jesse.orig/drivers/pci/hotplug/shpchp_pci.c > +++ linux-next-jesse/drivers/pci/hotplug/shpchp_pci.c > @@ -101,18 +101,20 @@ int __ref shpchp_configure_device(struct > struct pci_dev *dev; > struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate; > int num, fn; > + struct controller *ctrl = p_slot->ctrl; > > dev = pci_get_slot(parent, PCI_DEVFN(p_slot->device, 0)); > if (dev) { > - err("Device %s already exists at %x:%x, cannot hot-add\n", > - pci_name(dev), p_slot->bus, p_slot->device); > + ctrl_err(ctrl, > + "Device %s already exists at %x:%x, cannot hot-add\n", > + pci_name(dev), p_slot->bus, p_slot->device); Use %02x:%02x. > pci_dev_put(dev); > return -EINVAL; > } > > num = pci_scan_slot(parent, PCI_DEVFN(p_slot->device, 0)); > if (num == 0) { > - err("No new device found\n"); > + ctrl_err(ctrl, "No new device found\n"); > return -ENODEV; > } > > @@ -121,8 +123,8 @@ int __ref shpchp_configure_device(struct > if (!dev) > continue; > if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) { > - err("Cannot hot-add display device %s\n", > - pci_name(dev)); > + ctrl_err(ctrl, "Cannot hot-add display device %s\n", > + pci_name(dev)); > pci_dev_put(dev); > continue; > } > @@ -138,14 +140,15 @@ int __ref shpchp_configure_device(struct > break; > } > if (busnr >= end) { > - err("No free bus for hot-added bridge\n"); > + ctrl_err(ctrl, > + "No free bus for hot-added bridge\n"); > pci_dev_put(dev); > continue; > } > child = pci_add_new_bus(parent, dev, busnr); > if (!child) { > - err("Cannot add new bus for %s\n", > - pci_name(dev)); > + ctrl_err(ctrl, "Cannot add new bus for %s\n", > + pci_name(dev)); > pci_dev_put(dev); > continue; > } > @@ -168,8 +171,10 @@ int shpchp_unconfigure_device(struct slo > int j; > u8 bctl = 0; > struct pci_bus *parent = p_slot->ctrl->pci_dev->subordinate; > + struct controller *ctrl = p_slot->ctrl; > > - dbg("%s: bus/dev = %x/%x\n", __func__, p_slot->bus, p_slot->device); > + ctrl_dbg(ctrl, "%s: bus/dev = %x/%x\n", > + __func__, p_slot->bus, p_slot->device); %02x:%02x. > > for (j=0; j<8 ; j++) { > struct pci_dev* temp = pci_get_slot(parent, > @@ -177,16 +182,17 @@ int shpchp_unconfigure_device(struct slo > if (!temp) > continue; > if ((temp->class >> 16) == PCI_BASE_CLASS_DISPLAY) { > - err("Cannot remove display device %s\n", > - pci_name(temp)); > + ctrl_err(ctrl, "Cannot remove display device %s\n", > + pci_name(temp)); > pci_dev_put(temp); > continue; > } > if (temp->hdr_type == PCI_HEADER_TYPE_BRIDGE) { > pci_read_config_byte(temp, PCI_BRIDGE_CONTROL, &bctl); > if (bctl & PCI_BRIDGE_CTL_VGA) { > - err("Cannot remove display device %s\n", > - pci_name(temp)); > + ctrl_err(ctrl, > + "Cannot remove display device %s\n", > + pci_name(temp)); > pci_dev_put(temp); > continue; > } > > > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html