[patch] 2.4.21-rc2: fix ips.c .text.exit error

Adrian Bunk (bunk@fs.tum.de)
Sun, 11 May 2003 00:29:02 +0200


ips_remove_device in drivers/scsi/ips.c is __devexit but it's called
from the __devinit ips_insert_device resulting in a compile error when
cmpiled statically into a kernel without CONFIG_HOTPLUG enables.

The patch below solves this by removing the __devexit from
ips_remove_device.

Please apply for -rc3
Adrian

--- linux-2.4.21-pre6-full-nohotplug/drivers/scsi/ips.c.old 2003-03-27 22:25:49.000000000 +0100
+++ linux-2.4.21-pre6-full-nohotplug/drivers/scsi/ips.c 2003-03-27 22:28:51.000000000 +0100
@@ -246,9 +246,6 @@
#define IPS_SG_ADDRESS(sg) ((sg)->address)
#define IPS_LOCK_SAVE(lock,flags) spin_lock_irqsave(&io_request_lock,flags)
#define IPS_UNLOCK_RESTORE(lock,flags) spin_unlock_irqrestore(&io_request_lock,flags)
- #ifndef __devexit_p
- #define __devexit_p(x) x
- #endif
#else
#define IPS_SG_ADDRESS(sg) (page_address((sg)->page) ? \
page_address((sg)->page)+(sg)->offset : 0)
@@ -338,48 +335,48 @@
static char ips_hot_plug_name[] = "ips";

static int __devinit ips_insert_device(struct pci_dev *pci_dev, const struct pci_device_id *ent);
- static void __devexit ips_remove_device(struct pci_dev *pci_dev);
+ static void ips_remove_device(struct pci_dev *pci_dev);

struct pci_driver ips_pci_driver = {
name: ips_hot_plug_name,
id_table: ips_pci_table,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

struct pci_driver ips_pci_driver_anaconda = {
name: ips_hot_plug_name,
id_table: ips_pci_table_anaconda,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

struct pci_driver ips_pci_driver_5i = {
name: ips_hot_plug_name,
id_table: ips_pci_table_5i,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

struct pci_driver ips_pci_driver_6i = {
name: ips_hot_plug_name,
id_table: ips_pci_table_6i,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

struct pci_driver ips_pci_driver_i960 = {
name: ips_hot_plug_name,
id_table: ips_pci_table_i960,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

struct pci_driver ips_pci_driver_adaptec = {
name: ips_hot_plug_name,
id_table: ips_pci_table_adaptec,
probe: ips_insert_device,
- remove: __devexit_p(ips_remove_device),
+ remove: ips_remove_device,
};

#endif
@@ -7346,7 +7343,7 @@
/* Routine Description: */
/* Remove one Adapter ( Hot Plugging ) */
/*---------------------------------------------------------------------------*/
-static void __devexit ips_remove_device(struct pci_dev *pci_dev)
+static void ips_remove_device(struct pci_dev *pci_dev)
{
int i;
struct Scsi_Host *sh;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/