* [BK PATCH] PCI Hotplug fixes for 2.6.4-rc1
@ 2004-03-03 4:20 Greg KH
2004-03-03 4:21 ` [PATCH] " Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:20 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel
Hi,
Here are some minor PCI hotplug fixes for 2.6.4-rc1. They fix some
oopses, and make the build options a lot saner and allow the distros to
pick the proper options easier.
Please pull from:
bk://kernel.bkbits.net/gregkh/linux/pci-2.6
thanks,
greg k-h
p.s. I'll send these as patches in response to this email to lkml for
those who want to see them.
drivers/pci/hotplug/Kconfig | 32 ++++---------------
drivers/pci/hotplug/Makefile | 54 +++++++++++++++------------------
drivers/pci/hotplug/cpqphp.h | 1
drivers/pci/hotplug/cpqphp_core.c | 5 +++
drivers/pci/hotplug/cpqphp_ctrl.c | 47 ++++++++++++++--------------
drivers/pci/hotplug/cpqphp_pci.c | 36 +++++++++++-----------
drivers/pci/hotplug/pci_hotplug_core.c | 23 ++++++++++----
drivers/pci/hotplug/pciehprm_acpi.c | 3 +
drivers/pci/hotplug/shpchp.h | 3 -
drivers/pci/hotplug/shpchprm_acpi.c | 3 +
include/linux/pci.h | 1
11 files changed, 105 insertions(+), 103 deletions(-)
-----
Dely Sy:
o PCI Hotplug: fixes for shpc and pcie hot-plug drivers
Greg Kroah-Hartman:
o PCI Hotplug: clean up the Makefile a bit more
o PCI Hotplug: fix up the permission settings on a few of the sysfs files
o PCI Hotplug: fix stupid directory name of "pci_hotplug_slots" to be just "slots"
Torben Mathiasen:
o PCI Hotplug: Patch to get cpqphp working with IOAPIC
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:20 [BK PATCH] PCI Hotplug fixes for 2.6.4-rc1 Greg KH
@ 2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:21 UTC (permalink / raw)
To: linux-kernel
ChangeSet 1.1621, 2004/03/01 09:48:14-08:00, torben.mathiasen@hp.com
[PATCH] PCI Hotplug: Patch to get cpqphp working with IOAPIC
On Fri, Feb 13 2004, Sy, Dely L wrote:
> Since filling out the INTERRUPT_LINE is needed for systems running
> with legacy irqs and not needed for systems running with IO-APIC. The
> possible
> solutions:
> 1) Best is there is a run-time check (a flag or an API call) that tells
> whether the system is running on legacy mode or IO-APIC mode. Is there
> such check that you know of?
Dan suggested that we look at what IRQ the hotplug controller has been
assigned in the MPS table. If its < 0x10 we're in legacy/mapped mode.
That would probaly work
> > >
> > > Do those servers work on 2.6.2 without my patch?
> > >
>
> > Yes
>
> They work but they get dev->irq = 9 or 11 in the APIC enabled mode.
> Correct?
>
Yes. All hot-added adapters get legacy IRQs like IRQ5 in the example
below where eth2 was added after bootup:
linux:~ # cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 831113 0 0 0 IO-APIC-edge timer
1: 255 0 0 0 IO-APIC-edge i8042
2: 0 0 0 0 XT-PIC cascade
5: 0 0 0 0 XT-PIC eth2
8: 2 0 0 0 IO-APIC-edge rtc
12: 92 0 0 0 IO-APIC-edge i8042
14: 29 0 0 0 IO-APIC-edge ide0
20: 0 0 0 0 IO-APIC-level cciss0
21: 0 0 0 0 IO-APIC-level cciss1
29: 107 0 0 0 IO-APIC-level eth0
30: 7702 0 0 0 IO-APIC-level aic7xxx
31: 30 0 0 0 IO-APIC-level aic7xxx
34: 336 0 0 0 IO-APIC-level
cpqphp.o, cpqphp.o
NMI: 0 0 0 0
LOC: 830760 830893 830892 830891
ERR: 0
MIS: 0
I attached a patch that does the legacy mode check that Dan suggested
and IRQs for hot-added adapters seems to be given out in the APIC range.
drivers/pci/hotplug/cpqphp.h | 1
drivers/pci/hotplug/cpqphp_core.c | 5 ++++
drivers/pci/hotplug/cpqphp_ctrl.c | 47 +++++++++++++++++++-------------------
drivers/pci/hotplug/cpqphp_pci.c | 36 ++++++++++++++---------------
4 files changed, 48 insertions(+), 41 deletions(-)
diff -Nru a/drivers/pci/hotplug/cpqphp.h b/drivers/pci/hotplug/cpqphp.h
--- a/drivers/pci/hotplug/cpqphp.h Tue Mar 2 19:43:03 2004
+++ b/drivers/pci/hotplug/cpqphp.h Tue Mar 2 19:43:03 2004
@@ -444,6 +444,7 @@
/* Global variables */
extern int cpqhp_debug;
+extern int cpqhp_legacy_mode;
extern struct controller *cpqhp_ctrl_list;
extern struct pci_func *cpqhp_slot_list[256];
diff -Nru a/drivers/pci/hotplug/cpqphp_core.c b/drivers/pci/hotplug/cpqphp_core.c
--- a/drivers/pci/hotplug/cpqphp_core.c Tue Mar 2 19:43:03 2004
+++ b/drivers/pci/hotplug/cpqphp_core.c Tue Mar 2 19:43:03 2004
@@ -49,6 +49,7 @@
/* Global variables */
int cpqhp_debug;
+int cpqhp_legacy_mode;
struct controller *cpqhp_ctrl_list; /* = NULL */
struct pci_func *cpqhp_slot_list[256];
@@ -1169,6 +1170,10 @@
*/
// The next line is required for cpqhp_find_available_resources
ctrl->interrupt = pdev->irq;
+ if (ctrl->interrupt < 0x10) {
+ cpqhp_legacy_mode = 1;
+ dbg("System seems to be configured for Full Table Mapped MPS mode\n");
+ }
ctrl->cfgspc_irq = 0;
pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, &ctrl->cfgspc_irq);
diff -Nru a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c
--- a/drivers/pci/hotplug/cpqphp_ctrl.c Tue Mar 2 19:43:03 2004
+++ b/drivers/pci/hotplug/cpqphp_ctrl.c Tue Mar 2 19:43:03 2004
@@ -3020,33 +3020,34 @@
}
}
} // End of base register loop
+ if (cpqhp_legacy_mode) {
+ // Figure out which interrupt pin this function uses
+ rc = pci_bus_read_config_byte (pci_bus, devfn,
+ PCI_INTERRUPT_PIN, &temp_byte);
-#if !defined(CONFIG_X86_IO_APIC)
- // Figure out which interrupt pin this function uses
- rc = pci_bus_read_config_byte (pci_bus, devfn, PCI_INTERRUPT_PIN, &temp_byte);
-
- // If this function needs an interrupt and we are behind a bridge
- // and the pin is tied to something that's alread mapped,
- // set this one the same
- if (temp_byte && resources->irqs &&
- (resources->irqs->valid_INT &
- (0x01 << ((temp_byte + resources->irqs->barber_pole - 1) & 0x03)))) {
- // We have to share with something already set up
- IRQ = resources->irqs->interrupt[(temp_byte + resources->irqs->barber_pole - 1) & 0x03];
- } else {
- // Program IRQ based on card type
- rc = pci_bus_read_config_byte (pci_bus, devfn, 0x0B, &class_code);
-
- if (class_code == PCI_BASE_CLASS_STORAGE) {
- IRQ = cpqhp_disk_irq;
+ // If this function needs an interrupt and we are behind a bridge
+ // and the pin is tied to something that's alread mapped,
+ // set this one the same
+ if (temp_byte && resources->irqs &&
+ (resources->irqs->valid_INT &
+ (0x01 << ((temp_byte + resources->irqs->barber_pole - 1) & 0x03)))) {
+ // We have to share with something already set up
+ IRQ = resources->irqs->interrupt[(temp_byte +
+ resources->irqs->barber_pole - 1) & 0x03];
} else {
- IRQ = cpqhp_nic_irq;
+ // Program IRQ based on card type
+ rc = pci_bus_read_config_byte (pci_bus, devfn, 0x0B, &class_code);
+
+ if (class_code == PCI_BASE_CLASS_STORAGE) {
+ IRQ = cpqhp_disk_irq;
+ } else {
+ IRQ = cpqhp_nic_irq;
+ }
}
- }
- // IRQ Line
- rc = pci_bus_write_config_byte (pci_bus, devfn, PCI_INTERRUPT_LINE, IRQ);
-#endif
+ // IRQ Line
+ rc = pci_bus_write_config_byte (pci_bus, devfn, PCI_INTERRUPT_LINE, IRQ);
+ }
if (!behind_bridge) {
rc = cpqhp_set_irq(func->bus, func->device, temp_byte + 0x09, IRQ);
diff -Nru a/drivers/pci/hotplug/cpqphp_pci.c b/drivers/pci/hotplug/cpqphp_pci.c
--- a/drivers/pci/hotplug/cpqphp_pci.c Tue Mar 2 19:43:03 2004
+++ b/drivers/pci/hotplug/cpqphp_pci.c Tue Mar 2 19:43:03 2004
@@ -151,32 +151,32 @@
*/
int cpqhp_set_irq (u8 bus_num, u8 dev_num, u8 int_pin, u8 irq_num)
{
-#if !defined(CONFIG_X86_IO_APIC)
int rc;
u16 temp_word;
struct pci_dev fakedev;
struct pci_bus fakebus;
- fakedev.devfn = dev_num << 3;
- fakedev.bus = &fakebus;
- fakebus.number = bus_num;
- dbg("%s: dev %d, bus %d, pin %d, num %d\n",
- __FUNCTION__, dev_num, bus_num, int_pin, irq_num);
- rc = pcibios_set_irq_routing(&fakedev, int_pin - 0x0a, irq_num);
- dbg("%s: rc %d\n", __FUNCTION__, rc);
- if (!rc)
- return !rc;
+ if (cpqhp_legacy_mode) {
+ fakedev.devfn = dev_num << 3;
+ fakedev.bus = &fakebus;
+ fakebus.number = bus_num;
+ dbg("%s: dev %d, bus %d, pin %d, num %d\n",
+ __FUNCTION__, dev_num, bus_num, int_pin, irq_num);
+ rc = pcibios_set_irq_routing(&fakedev, int_pin - 0x0a, irq_num);
+ dbg("%s: rc %d\n", __FUNCTION__, rc);
+ if (!rc)
+ return !rc;
- // set the Edge Level Control Register (ELCR)
- temp_word = inb(0x4d0);
- temp_word |= inb(0x4d1) << 8;
+ // set the Edge Level Control Register (ELCR)
+ temp_word = inb(0x4d0);
+ temp_word |= inb(0x4d1) << 8;
- temp_word |= 0x01 << irq_num;
+ temp_word |= 0x01 << irq_num;
- // This should only be for x86 as it sets the Edge Level Control Register
- outb((u8) (temp_word & 0xFF), 0x4d0);
- outb((u8) ((temp_word & 0xFF00) >> 8), 0x4d1);
-#endif
+ // This should only be for x86 as it sets the Edge Level Control Register
+ outb((u8) (temp_word & 0xFF), 0x4d0);
+ outb((u8) ((temp_word & 0xFF00) >> 8), 0x4d1);
+ }
return 0;
}
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:21 ` [PATCH] " Greg KH
@ 2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-04 6:17 ` Ingo Oeser
0 siblings, 2 replies; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:21 UTC (permalink / raw)
To: linux-kernel
ChangeSet 1.1622, 2004/03/01 16:18:12-08:00, greg@kroah.com
PCI Hotplug: fix stupid directory name of "pci_hotplug_slots" to be just "slots"
drivers/pci/hotplug/pci_hotplug_core.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff -Nru a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
--- a/drivers/pci/hotplug/pci_hotplug_core.c Tue Mar 2 19:42:42 2004
+++ b/drivers/pci/hotplug/pci_hotplug_core.c Tue Mar 2 19:42:42 2004
@@ -104,8 +104,19 @@
.release = &hotplug_slot_release,
};
-decl_subsys(pci_hotplug_slots, &hotplug_slot_ktype, NULL);
-
+/*
+ * We create a struct subsystem on our own and not use decl_subsys so
+ * we can have a sane name "slots" in sysfs, yet still keep a good
+ * global variable name "pci_hotplug_slots_subsys.
+ * If the decl_subsys() #define ever changes, this declaration will
+ * need to be update to make sure everything is initialized properly.
+ */
+struct subsystem pci_hotplug_slots_subsys = {
+ .kset = {
+ .kobj = { .name = "slots" },
+ .ktype = &hotplug_slot_ktype,
+ }
+};
/* these strings match up with the values in pci_bus_speed */
static char *pci_bus_speed_strings[] = {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:21 ` Greg KH
@ 2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:21 UTC (permalink / raw)
To: linux-kernel
ChangeSet 1.1624, 2004/03/02 19:10:44-08:00, dlsy@snoqualmie.dp.intel.com
[PATCH] PCI Hotplug: fixes for shpc and pcie hot-plug drivers
This patch contains the following:
1. Fix up the pcie and shpc options to make it easier for distros
to use as what we have discussed;
2. Fix bug encountered when installing the drivers on non-hotplug
systems;
3. Put PCI_CAP_ID_SHPC in include/linux/pci.h
drivers/pci/hotplug/Kconfig | 30 ++++++------------------------
drivers/pci/hotplug/Makefile | 24 ++++++++++++++----------
drivers/pci/hotplug/pciehprm_acpi.c | 3 +++
drivers/pci/hotplug/shpchp.h | 3 ---
drivers/pci/hotplug/shpchprm_acpi.c | 3 +++
include/linux/pci.h | 1 +
6 files changed, 27 insertions(+), 37 deletions(-)
diff -Nru a/drivers/pci/hotplug/Kconfig b/drivers/pci/hotplug/Kconfig
--- a/drivers/pci/hotplug/Kconfig Tue Mar 2 19:42:09 2004
+++ b/drivers/pci/hotplug/Kconfig Tue Mar 2 19:42:09 2004
@@ -135,23 +135,14 @@
When in doubt, say N.
config HOTPLUG_PCI_PCIE_POLL_EVENT_MODE
- bool "Use polling mechanism for hot-plug events."
+ bool "Use polling mechanism for hot-plug events (for testing purpose)"
depends on HOTPLUG_PCI_PCIE
help
Say Y here if you want to use the polling mechanism for hot-plug
- events.
+ events for early platform testing.
When in doubt, say N.
-config HOTPLUG_PCI_PCIE_PHPRM_NONACPI
- bool "Non-ACPI: Use $HPRT for resource/configuration"
- depends on HOTPLUG_PCI_PCIE
- help
- Say Y here if Hotplug resource/configuration information is provided
- by platform BIOS $HPRT or bridge resource information, not by ACPI.
-
- When in doubt, say N.
-
config HOTPLUG_PCI_SHPC
tristate "SHPC PCI Hotplug driver"
depends on HOTPLUG_PCI
@@ -165,29 +156,20 @@
When in doubt, say N.
config HOTPLUG_PCI_SHPC_POLL_EVENT_MODE
- bool "Use polling mechanism for hot-plug events"
+ bool "Use polling mechanism for hot-plug events (for testing purpose)"
depends on HOTPLUG_PCI_SHPC
help
Say Y here if you want to use the polling mechanism for hot-plug
- events.
-
- When in doubt, say N.
-
-config HOTPLUG_PCI_SHPC_PHPRM_NONACPI
- bool "Non-ACPI: Use $HPRT for resource/configuration"
- depends on HOTPLUG_PCI_SHPC
- help
- Say Y here if Hotplug resource/configuration information is provided
- by platform BIOS $HPRT or bridge resource information, not by ACPI.
+ events for early platform testing.
When in doubt, say N.
config HOTPLUG_PCI_SHPC_PHPRM_LEGACY
bool "For AMD SHPC only: Use $HRT for resource/configuration"
- depends on HOTPLUG_PCI_SHPC && HOTPLUG_PCI_SHPC_PHPRM_NONACPI
+ depends on HOTPLUG_PCI_SHPC && !ACPI_BUS
help
Say Y here for AMD SHPC. You have to select this option if you are
- using this driver on AMD platform with SHPC.
+ using this driver on platform with AMD SHPC.
config HOTPLUG_PCI_RPA
tristate "RPA PCI Hotplug driver"
diff -Nru a/drivers/pci/hotplug/Makefile b/drivers/pci/hotplug/Makefile
--- a/drivers/pci/hotplug/Makefile Tue Mar 2 19:42:09 2004
+++ b/drivers/pci/hotplug/Makefile Tue Mar 2 19:42:09 2004
@@ -51,10 +51,12 @@
pciehp_sysfs.o \
pciehp_hpc.o
-ifeq ($(CONFIG_HOTPLUG_PCI_PCIE_PHPRM_NONACPI),y)
- pciehp-objs += pciehprm_nonacpi.o
-else
- pciehp-objs += pciehprm_acpi.o
+ifdef CONFIG_HOTPLUG_PCI_PCIE
+ ifdef CONFIG_ACPI_BUS
+ pciehp-objs += pciehprm_acpi.o
+ else
+ pciehp-objs += pciehprm_nonacpi.o
+ endif
endif
shpchp-objs := shpchp_core.o \
@@ -63,12 +65,14 @@
shpchp_sysfs.o \
shpchp_hpc.o
-ifeq ($(CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY),y)
- shpchp-objs += shpchprm_legacy.o
-else
- ifeq ($(CONFIG_HOTPLUG_PCI_SHPC_PHPRM_NONACPI),y)
- shpchp-objs += shpchprm_nonacpi.o
- else
+ifdef CONFIG_HOTPLUG_PCI_SHPC
+ ifdef CONFIG_ACPI_BUS
shpchp-objs += shpchprm_acpi.o
+ else
+ ifdef CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY
+ shpchp-objs += shpchprm_legacy.o
+ else
+ shpchp-objs += shpchprm_nonacpi.o
+ endif
endif
endif
diff -Nru a/drivers/pci/hotplug/pciehprm_acpi.c b/drivers/pci/hotplug/pciehprm_acpi.c
--- a/drivers/pci/hotplug/pciehprm_acpi.c Tue Mar 2 19:42:09 2004
+++ b/drivers/pci/hotplug/pciehprm_acpi.c Tue Mar 2 19:42:09 2004
@@ -1188,6 +1188,9 @@
static void pciehprm_free_bridges ( struct acpi_bridge *ab)
{
+ if (!ab)
+ return;
+
if (ab->child)
pciehprm_free_bridges (ab->child);
diff -Nru a/drivers/pci/hotplug/shpchp.h b/drivers/pci/hotplug/shpchp.h
--- a/drivers/pci/hotplug/shpchp.h Tue Mar 2 19:42:09 2004
+++ b/drivers/pci/hotplug/shpchp.h Tue Mar 2 19:42:09 2004
@@ -154,9 +154,6 @@
/* Define AMD SHPC ID */
#define PCI_DEVICE_ID_AMD_GOLAM_7450 0x7450
-/* Define SHPC CAP ID - not defined in kernel yet */
-#define PCI_CAP_ID_SHPC 0x0C
-
#define INT_BUTTON_IGNORE 0
#define INT_PRESENCE_ON 1
#define INT_PRESENCE_OFF 2
diff -Nru a/drivers/pci/hotplug/shpchprm_acpi.c b/drivers/pci/hotplug/shpchprm_acpi.c
--- a/drivers/pci/hotplug/shpchprm_acpi.c Tue Mar 2 19:42:09 2004
+++ b/drivers/pci/hotplug/shpchprm_acpi.c Tue Mar 2 19:42:09 2004
@@ -1187,6 +1187,9 @@
static void shpchprm_free_bridges ( struct acpi_bridge *ab)
{
+ if (!ab)
+ return;
+
if (ab->child)
shpchprm_free_bridges (ab->child);
diff -Nru a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h Tue Mar 2 19:42:09 2004
+++ b/include/linux/pci.h Tue Mar 2 19:42:09 2004
@@ -199,6 +199,7 @@
#define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */
#define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */
#define PCI_CAP_ID_PCIX 0x07 /* PCI-X */
+#define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */
#define PCI_CAP_ID_EXP 0x10 /* PCI Express */
#define PCI_CAP_ID_MSIX 0x11 /* MSI-X */
#define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:21 ` Greg KH
@ 2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-04 6:17 ` Ingo Oeser
1 sibling, 1 reply; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:21 UTC (permalink / raw)
To: linux-kernel
ChangeSet 1.1623, 2004/03/02 13:11:26-08:00, greg@kroah.com
PCI Hotplug: fix up the permission settings on a few of the sysfs files.
Thanks to Linda Xie for pointing this out.
drivers/pci/hotplug/pci_hotplug_core.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff -Nru a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
--- a/drivers/pci/hotplug/pci_hotplug_core.c Tue Mar 2 19:42:22 2004
+++ b/drivers/pci/hotplug/pci_hotplug_core.c Tue Mar 2 19:42:22 2004
@@ -292,7 +292,7 @@
}
static struct hotplug_slot_attribute hotplug_slot_attr_latch = {
- .attr = {.name = "latch", .mode = S_IFREG | S_IRUGO | S_IWUSR},
+ .attr = {.name = "latch", .mode = S_IFREG | S_IRUGO},
.show = latch_read_file,
};
@@ -311,7 +311,7 @@
}
static struct hotplug_slot_attribute hotplug_slot_attr_presence = {
- .attr = {.name = "adapter", .mode = S_IFREG | S_IRUGO | S_IWUSR},
+ .attr = {.name = "adapter", .mode = S_IFREG | S_IRUGO},
.show = presence_read_file,
};
@@ -361,7 +361,7 @@
}
static struct hotplug_slot_attribute hotplug_slot_attr_max_bus_speed = {
- .attr = {.name = "max_bus_speed", .mode = S_IFREG | S_IRUGO | S_IWUSR},
+ .attr = {.name = "max_bus_speed", .mode = S_IFREG | S_IRUGO},
.show = max_bus_speed_read_file,
};
@@ -387,7 +387,7 @@
}
static struct hotplug_slot_attribute hotplug_slot_attr_cur_bus_speed = {
- .attr = {.name = "cur_bus_speed", .mode = S_IFREG | S_IRUGO | S_IWUSR},
+ .attr = {.name = "cur_bus_speed", .mode = S_IFREG | S_IRUGO},
.show = cur_bus_speed_read_file,
};
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:21 ` Greg KH
@ 2004-03-03 4:21 ` Greg KH
0 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2004-03-03 4:21 UTC (permalink / raw)
To: linux-kernel
ChangeSet 1.1625, 2004/03/02 19:25:34-08:00, greg@kroah.com
PCI Hotplug: clean up the Makefile a bit more.
drivers/pci/hotplug/Makefile | 30 ++++++++++++------------------
1 files changed, 12 insertions(+), 18 deletions(-)
diff -Nru a/drivers/pci/hotplug/Makefile b/drivers/pci/hotplug/Makefile
--- a/drivers/pci/hotplug/Makefile Tue Mar 2 19:42:02 2004
+++ b/drivers/pci/hotplug/Makefile Tue Mar 2 19:42:02 2004
@@ -50,13 +50,10 @@
pciehp_pci.o \
pciehp_sysfs.o \
pciehp_hpc.o
-
-ifdef CONFIG_HOTPLUG_PCI_PCIE
- ifdef CONFIG_ACPI_BUS
- pciehp-objs += pciehprm_acpi.o
- else
- pciehp-objs += pciehprm_nonacpi.o
- endif
+ifdef CONFIG_ACPI_BUS
+ pciehp-objs += pciehprm_acpi.o
+else
+ pciehp-objs += pciehprm_nonacpi.o
endif
shpchp-objs := shpchp_core.o \
@@ -64,15 +61,12 @@
shpchp_pci.o \
shpchp_sysfs.o \
shpchp_hpc.o
-
-ifdef CONFIG_HOTPLUG_PCI_SHPC
- ifdef CONFIG_ACPI_BUS
- shpchp-objs += shpchprm_acpi.o
- else
- ifdef CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY
- shpchp-objs += shpchprm_legacy.o
- else
- shpchp-objs += shpchprm_nonacpi.o
- endif
- endif
+ifdef CONFIG_ACPI_BUS
+ shpchp-objs += shpchprm_acpi.o
+else
+ ifdef CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY
+ shpchp-objs += shpchprm_legacy.o
+ else
+ shpchp-objs += shpchprm_nonacpi.o
+ endif
endif
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
@ 2004-03-04 6:17 ` Ingo Oeser
2004-03-04 18:27 ` Greg KH
1 sibling, 1 reply; 8+ messages in thread
From: Ingo Oeser @ 2004-03-04 6:17 UTC (permalink / raw)
To: Greg KH; +Cc: linux-kernel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Greg,
On Wednesday 03 March 2004 05:21, Greg KH wrote:
> -decl_subsys(pci_hotplug_slots, &hotplug_slot_ktype, NULL);
> -
> +/*
> + * We create a struct subsystem on our own and not use decl_subsys so
> + * we can have a sane name "slots" in sysfs, yet still keep a good
> + * global variable name "pci_hotplug_slots_subsys.
> + * If the decl_subsys() #define ever changes, this declaration will
> + * need to be update to make sure everything is initialized properly.
> + */
> +struct subsystem pci_hotplug_slots_subsys = {
> + .kset = {
> + .kobj = { .name = "slots" },
> + .ktype = &hotplug_slot_ktype,
> + }
> +};
How about creating a decl_subsys_name() for creating sane names,
like we have for the module parameters?
That whould solve all those problems, since this is used not only once.
Regards
Ingo Oeser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFARsoBU56oYWuOrkARAk0NAKDWSddUZQSD25ywMKs5zrpcrAJefACgjdV8
1d6axZhMy8k5qCozsrExrBc=
=sQZY
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.6.4-rc1
2004-03-04 6:17 ` Ingo Oeser
@ 2004-03-04 18:27 ` Greg KH
0 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2004-03-04 18:27 UTC (permalink / raw)
To: Ingo Oeser; +Cc: linux-kernel
On Thu, Mar 04, 2004 at 07:17:37AM +0100, Ingo Oeser wrote:
> Hi Greg,
>
> On Wednesday 03 March 2004 05:21, Greg KH wrote:
> > -decl_subsys(pci_hotplug_slots, &hotplug_slot_ktype, NULL);
> > -
> > +/*
> > + * We create a struct subsystem on our own and not use decl_subsys so
> > + * we can have a sane name "slots" in sysfs, yet still keep a good
> > + * global variable name "pci_hotplug_slots_subsys.
> > + * If the decl_subsys() #define ever changes, this declaration will
> > + * need to be update to make sure everything is initialized properly.
> > + */
> > +struct subsystem pci_hotplug_slots_subsys = {
> > + .kset = {
> > + .kobj = { .name = "slots" },
> > + .ktype = &hotplug_slot_ktype,
> > + }
> > +};
>
> How about creating a decl_subsys_name() for creating sane names,
> like we have for the module parameters?
>
> That whould solve all those problems, since this is used not only once.
Good idea. Care to make up such a patch?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2004-03-04 18:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-03 4:20 [BK PATCH] PCI Hotplug fixes for 2.6.4-rc1 Greg KH
2004-03-03 4:21 ` [PATCH] " Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-03 4:21 ` Greg KH
2004-03-04 6:17 ` Ingo Oeser
2004-03-04 18:27 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox