diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 22:31:34 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 22:31:34 -0400 |
| commit | 3a2c5dad6c4d4551effba477f4f45fa5feb1293f (patch) | |
| tree | 1e1f1ab67279c46c3e6aed1c4041880f58ec5dae | |
| parent | 2242d5eff17cf91110a3c44747f9f2e1a938cbda (diff) | |
| parent | a491913ff22c2b69d937d14296db6fa34dbff068 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
PCI: remove unused resource assignment in pci_read_bridge_bases()
PCI hotplug: shpchp: message refinement
PCI hotplug: shpchp: replace printk with dev_printk
PCI: add routines for debugging and handling lost interrupts
PCI hotplug: pciehp: message refinement
PCI: fix ARI code to be compatible with mixed ARI/non-ARI systems
PCI hotplug: cpqphp: fix kernel NULL pointer dereference
| -rw-r--r-- | drivers/pci/Makefile | 3 | ||||
| -rw-r--r-- | drivers/pci/hotplug/cpqphp_core.c | 2 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp.h | 2 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_core.c | 38 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_ctrl.c | 64 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 43 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_pci.c | 19 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp.h | 22 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_core.c | 48 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_ctrl.c | 158 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_hpc.c | 113 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_pci.c | 36 | ||||
| -rw-r--r-- | drivers/pci/irq.c | 60 | ||||
| -rw-r--r-- | drivers/pci/pci.c | 21 | ||||
| -rw-r--r-- | drivers/pci/probe.c | 3 | ||||
| -rw-r--r-- | include/linux/pci.h | 7 |
16 files changed, 376 insertions, 263 deletions
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index 4b47f4ece5b7..af3bfe22847b 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile | |||
| @@ -3,7 +3,8 @@ | |||
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | obj-y += access.o bus.o probe.o remove.o pci.o quirks.o slot.o \ | 5 | obj-y += access.o bus.o probe.o remove.o pci.o quirks.o slot.o \ |
| 6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o | 6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \ |
| 7 | irq.o | ||
| 7 | obj-$(CONFIG_PROC_FS) += proc.o | 8 | obj-$(CONFIG_PROC_FS) += proc.o |
| 8 | 9 | ||
| 9 | # Build PCI Express stuff if needed | 10 | # Build PCI Express stuff if needed |
diff --git a/drivers/pci/hotplug/cpqphp_core.c b/drivers/pci/hotplug/cpqphp_core.c index 724d42c4adbc..8514c3a1746a 100644 --- a/drivers/pci/hotplug/cpqphp_core.c +++ b/drivers/pci/hotplug/cpqphp_core.c | |||
| @@ -433,7 +433,7 @@ static int ctrl_slot_setup(struct controller *ctrl, | |||
| 433 | slot->number, ctrl->slot_device_offset, | 433 | slot->number, ctrl->slot_device_offset, |
| 434 | slot_number); | 434 | slot_number); |
| 435 | result = pci_hp_register(hotplug_slot, | 435 | result = pci_hp_register(hotplug_slot, |
| 436 | ctrl->pci_dev->subordinate, | 436 | ctrl->pci_dev->bus, |
| 437 | slot->device, | 437 | slot->device, |
| 438 | name); | 438 | name); |
| 439 | if (result) { | 439 | if (result) { |
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h index a4817a841fae..b2801a7ee37f 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h | |||
| @@ -188,7 +188,7 @@ static inline struct slot *pciehp_find_slot(struct controller *ctrl, u8 device) | |||
| 188 | return slot; | 188 | return slot; |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | ctrl_err(ctrl, "%s: slot (device=0x%x) not found\n", __func__, device); | 191 | ctrl_err(ctrl, "Slot (device=0x%02x) not found\n", device); |
| 192 | return NULL; | 192 | return NULL; |
| 193 | } | 193 | } |
| 194 | 194 | ||
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index 62be1b59c74b..4b23bc39b11e 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c | |||
| @@ -184,7 +184,7 @@ static void release_slot(struct hotplug_slot *hotplug_slot) | |||
| 184 | { | 184 | { |
| 185 | struct slot *slot = hotplug_slot->private; | 185 | struct slot *slot = hotplug_slot->private; |
| 186 | 186 | ||
| 187 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 187 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 188 | __func__, hotplug_slot_name(hotplug_slot)); | 188 | __func__, hotplug_slot_name(hotplug_slot)); |
| 189 | 189 | ||
| 190 | kfree(hotplug_slot->info); | 190 | kfree(hotplug_slot->info); |
| @@ -216,9 +216,11 @@ static int init_slots(struct controller *ctrl) | |||
| 216 | slot->hotplug_slot = hotplug_slot; | 216 | slot->hotplug_slot = hotplug_slot; |
| 217 | snprintf(name, SLOT_NAME_SIZE, "%u", slot->number); | 217 | snprintf(name, SLOT_NAME_SIZE, "%u", slot->number); |
| 218 | 218 | ||
| 219 | ctrl_dbg(ctrl, "Registering bus=%x dev=%x hp_slot=%x sun=%x " | 219 | ctrl_dbg(ctrl, "Registering domain:bus:dev=%04x:%02x:%02x " |
| 220 | "slot_device_offset=%x\n", slot->bus, slot->device, | 220 | "hp_slot=%x sun=%x slot_device_offset=%x\n", |
| 221 | slot->hp_slot, slot->number, ctrl->slot_device_offset); | 221 | pci_domain_nr(ctrl->pci_dev->subordinate), |
| 222 | slot->bus, slot->device, slot->hp_slot, slot->number, | ||
| 223 | ctrl->slot_device_offset); | ||
| 222 | retval = pci_hp_register(hotplug_slot, | 224 | retval = pci_hp_register(hotplug_slot, |
| 223 | ctrl->pci_dev->subordinate, | 225 | ctrl->pci_dev->subordinate, |
| 224 | slot->device, | 226 | slot->device, |
| @@ -238,7 +240,7 @@ static int init_slots(struct controller *ctrl) | |||
| 238 | &hotplug_slot_attr_lock.attr); | 240 | &hotplug_slot_attr_lock.attr); |
| 239 | if (retval) { | 241 | if (retval) { |
| 240 | pci_hp_deregister(hotplug_slot); | 242 | pci_hp_deregister(hotplug_slot); |
| 241 | ctrl_err(ctrl, "cannot create additional sysfs " | 243 | ctrl_err(ctrl, "Cannot create additional sysfs " |
| 242 | "entries\n"); | 244 | "entries\n"); |
| 243 | goto error_info; | 245 | goto error_info; |
| 244 | } | 246 | } |
| @@ -273,7 +275,7 @@ static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status) | |||
| 273 | { | 275 | { |
| 274 | struct slot *slot = hotplug_slot->private; | 276 | struct slot *slot = hotplug_slot->private; |
| 275 | 277 | ||
| 276 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 278 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 277 | __func__, slot_name(slot)); | 279 | __func__, slot_name(slot)); |
| 278 | 280 | ||
| 279 | hotplug_slot->info->attention_status = status; | 281 | hotplug_slot->info->attention_status = status; |
| @@ -289,7 +291,7 @@ static int enable_slot(struct hotplug_slot *hotplug_slot) | |||
| 289 | { | 291 | { |
| 290 | struct slot *slot = hotplug_slot->private; | 292 | struct slot *slot = hotplug_slot->private; |
| 291 | 293 | ||
| 292 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 294 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 293 | __func__, slot_name(slot)); | 295 | __func__, slot_name(slot)); |
| 294 | 296 | ||
| 295 | return pciehp_sysfs_enable_slot(slot); | 297 | return pciehp_sysfs_enable_slot(slot); |
| @@ -300,7 +302,7 @@ static int disable_slot(struct hotplug_slot *hotplug_slot) | |||
| 300 | { | 302 | { |
| 301 | struct slot *slot = hotplug_slot->private; | 303 | struct slot *slot = hotplug_slot->private; |
| 302 | 304 | ||
| 303 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 305 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 304 | __func__, slot_name(slot)); | 306 | __func__, slot_name(slot)); |
| 305 | 307 | ||
| 306 | return pciehp_sysfs_disable_slot(slot); | 308 | return pciehp_sysfs_disable_slot(slot); |
| @@ -311,7 +313,7 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
| 311 | struct slot *slot = hotplug_slot->private; | 313 | struct slot *slot = hotplug_slot->private; |
| 312 | int retval; | 314 | int retval; |
| 313 | 315 | ||
| 314 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 316 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 315 | __func__, slot_name(slot)); | 317 | __func__, slot_name(slot)); |
| 316 | 318 | ||
| 317 | retval = slot->hpc_ops->get_power_status(slot, value); | 319 | retval = slot->hpc_ops->get_power_status(slot, value); |
| @@ -326,7 +328,7 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
| 326 | struct slot *slot = hotplug_slot->private; | 328 | struct slot *slot = hotplug_slot->private; |
| 327 | int retval; | 329 | int retval; |
| 328 | 330 | ||
| 329 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 331 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 330 | __func__, slot_name(slot)); | 332 | __func__, slot_name(slot)); |
| 331 | 333 | ||
| 332 | retval = slot->hpc_ops->get_attention_status(slot, value); | 334 | retval = slot->hpc_ops->get_attention_status(slot, value); |
| @@ -341,7 +343,7 @@ static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
| 341 | struct slot *slot = hotplug_slot->private; | 343 | struct slot *slot = hotplug_slot->private; |
| 342 | int retval; | 344 | int retval; |
| 343 | 345 | ||
| 344 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 346 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 345 | __func__, slot_name(slot)); | 347 | __func__, slot_name(slot)); |
| 346 | 348 | ||
| 347 | retval = slot->hpc_ops->get_latch_status(slot, value); | 349 | retval = slot->hpc_ops->get_latch_status(slot, value); |
| @@ -356,7 +358,7 @@ static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
| 356 | struct slot *slot = hotplug_slot->private; | 358 | struct slot *slot = hotplug_slot->private; |
| 357 | int retval; | 359 | int retval; |
| 358 | 360 | ||
| 359 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 361 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
| 360 | __func__, slot_name(slot)); | 362 | __func__, slot_name(slot)); |
| 361 | |||
