PnP Fixes for 2.5.73
PATCH 1/1 PnP Fixes for 2.5.73
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1386 -> 1.1387
# drivers/pnp/pnpbios/core.c 1.32 -> 1.33
# drivers/pnp/interface.c 1.16 -> 1.17
# drivers/pnp/support.c 1.5 -> 1.6
# drivers/pnp/isapnp/core.c 1.38 -> 1.39
# drivers/pnp/manager.c 1.7 -> 1.8
# include/linux/pnp.h 1.21 -> 1.22
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/24 [email protected] 1.1387
# [PNP] pnp_init_resource_table compile fix
#
# In the last release, this api was accidently changed and therefore
# affected some drivers. This patch corrects the issue by renaming
# the api back to pnp_init_resource_table.
# --------------------------------------------
#
diff -Nru a/drivers/pnp/interface.c b/drivers/pnp/interface.c
--- a/drivers/pnp/interface.c Tue Jun 24 20:34:23 2003
+++ b/drivers/pnp/interface.c Tue Jun 24 20:34:23 2003
@@ -323,14 +323,14 @@
if (!strnicmp(buf,"auto",4)) {
if (dev->active)
goto done;
- pnp_init_resources(&dev->res);
+ pnp_init_resource_table(&dev->res);
retval = pnp_auto_config_dev(dev);
goto done;
}
if (!strnicmp(buf,"clear",5)) {
if (dev->active)
goto done;
- pnp_init_resources(&dev->res);
+ pnp_init_resource_table(&dev->res);
goto done;
}
if (!strnicmp(buf,"get",3)) {
@@ -345,7 +345,7 @@
if (dev->active)
goto done;
buf += 3;
- pnp_init_resources(&dev->res);
+ pnp_init_resource_table(&dev->res);
down(&pnp_res_mutex);
while (1) {
while (isspace(*buf))
diff -Nru a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
--- a/drivers/pnp/isapnp/core.c Tue Jun 24 20:34:23 2003
+++ b/drivers/pnp/isapnp/core.c Tue Jun 24 20:34:23 2003
@@ -458,7 +458,7 @@
dev->capabilities |= PNP_READ;
dev->capabilities |= PNP_WRITE;
dev->capabilities |= PNP_DISABLE;
- pnp_init_resources(&dev->res);
+ pnp_init_resource_table(&dev->res);
return dev;
}@@ -1020,7 +1020,7 @@
static int isapnp_get_resources(struct pnp_dev *dev, struct pnp_resource_table * res) {
int ret;
- pnp_init_resources(res);
+ pnp_init_resource_table(res);
isapnp_cfg_begin(dev->card->number, dev->number);
ret = isapnp_read_resources(dev, res);
isapnp_cfg_end();
drivers/pnp/manager.c +6 -6
@@ -190,7 +190,7 @@* @table: pointer to the desired resource table * */ -void pnp_init_resources (struct pnp_resource_table *table) +void pnp_init_resource_table (struct pnp_resource_table *table) {int idx;down (&pnp_res_mutex);
@@ -226,7 +226,7 @@* @res - the resources to clean * */ -static void pnp_clean_resources (struct pnp_resource_table * res) +static void pnp_clean_resource_table (struct pnp_resource_table * res) {int idx;for (idx =0 ; idx <PNP_MAX_IRQ ; idx++) {
@@ -278,7 +278,7 @@return -ENODEV ;down (&pnp_res_mutex); -pnp_clean_resources (&dev->res);/* start with a fresh slate */ +pnp_clean_resource_table (&dev->res);/* start with a fresh slate */ if (dev->independent) { port = dev->independent->port; mem = dev->independent->mem;
@@ -351,7 +351,7 @@return 1 ; fail: -pnp_clean_resources (&dev->res); +pnp_clean_resource_table (&dev->res);up (&pnp_res_mutex);return 0 ; }
@@ -510,7 +510,7 @@/* release the resources so that other devices can use them */ down (&pnp_res_mutex); -pnp_clean_resources (&dev->res); +pnp_clean_resource_table (&dev->res);up (&pnp_res_mutex);return 1 ;
@@ -539,4 +539,4 @@EXPORT_SYMBOL (pnp_activate_dev);EXPORT_SYMBOL (pnp_disable_dev);EXPORT_SYMBOL (pnp_resource_change); -EXPORT_SYMBOL (pnp_init_resources); +EXPORT_SYMBOL (pnp_init_resource_table);
drivers/pnp/pnpbios/core.c +1 -1
@@ -937,7 +937,7 @@/* clear out the damaged flags */ if (!dev->active) -pnp_init_resources (&dev->res); +pnp_init_resource_table (&dev->res);pnp_add_device (dev);pnpbios_interface_attach_device (node);
drivers/pnp/support.c +1 -1
@@ -123,7 +123,7 @@return NULL ;/* Blank the resource table values */ -pnp_init_resources (res); +pnp_init_resource_table (res);while ((char *)p < (char *)end) {
include/linux/pnp.h +2 -2
@@ -400,7 +400,7 @@int pnp_register_dma_resource (struct pnp_option *option,struct pnp_dma *data);int pnp_register_port_resource (struct pnp_option *option,struct pnp_port *data);int pnp_register_mem_resource (struct pnp_option *option,struct pnp_mem *data); -void pnp_init_resources (struct pnp_resource_table *table); +void pnp_init_resource_table (struct pnp_resource_table *table);int pnp_assign_resources (struct pnp_dev *dev,int depnum);int pnp_manual_config_dev (struct pnp_dev *dev,struct pnp_resource_table *res,int mode);int pnp_auto_config_dev (struct pnp_dev *dev);
@@ -448,7 +448,7 @@static inline int pnp_register_dma_resource (struct pnp_option *option,struct pnp_dma *data) {return -ENODEV ; }static inline int pnp_register_port_resource (struct pnp_option *option,struct pnp_port *data) {return -ENODEV ; }static inline int pnp_register_mem_resource (struct pnp_option *option,struct pnp_mem *data) {return -ENODEV ; } -static inline void pnp_init_resources (struct pnp_resource_table *table) { } +static inline void pnp_init_resource_table (struct pnp_resource_table *table) { }static inline int pnp_assign_resources (struct pnp_dev *dev,int depnum) {return -ENODEV ; }static inline int pnp_manual_config_dev (struct pnp_dev *dev,struct pnp_resource_table *res,int mode) {return -ENODEV ; }static inline int pnp_auto_config_dev (struct pnp_dev *dev) {return -ENODEV ; }
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:
# ChangeSet 1.1387 -> 1.1388
# drivers/pnp/manager.c 1.8 -> 1.9
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/24 [email protected] 1.1388
# [PNP] Locking Fixes
#
# The semaphore in pnp_init_resource_table is not needed and, in some # cases, can cause resource management lockups. This patch removes the
# improperly placed semaphore.
# --------------------------------------------
#
diff -Nru a/drivers/pnp/manager.c b/drivers/pnp/manager.c
--- a/drivers/pnp/manager.c Tue Jun 24 20:34:17 2003
+++ b/drivers/pnp/manager.c Tue Jun 24 20:34:17 2003
@@ -193,7 +193,6 @@
void pnp_init_resource_table(struct pnp_resource_table *table)
{
int idx;
- down(&pnp_res_mutex);
for (idx = 0; idx < PNP_MAX_IRQ; idx++) {
table->irq_resource[idx].name = NULL;
table->irq_resource[idx].start = -1;
@@ -218,7 +217,6 @@
table->mem_resource[idx].end = 0;
table->mem_resource[idx].flags = IORESOURCE_AUTO;
}
- up(&pnp_res_mutex);
}/**