patch, drivers/ide, 2.4.21pre4, module-related

From: linas (linas@austin.ibm.com)
Date: Tue May 27 2003 - 18:45:50 EST



Hi,

Attached is teeny patch that sort-of helps make IDE kernel modules
actually be modular.

I didn't realize that IDE modules weren't supposed to work in 2.4.21pre4
before I started bug hunting. Then, later, I accidentally forgot
to disable IDE modules, which lead to further confusion. The
attached patch helps a little, but I am presuming that it is probably
made obsolete by mainstream IDE work. So this patch is really just
'FYI'.

--linas
Index: ide-taskfile.c
===================================================================
RCS file: /cvs/linuxppc64/linuxppc64_2_4/drivers/ide/ide-taskfile.c,v
retrieving revision 1.3
diff -u -r1.3 ide-taskfile.c
--- ide-taskfile.c 8 Jan 2003 18:31:58 -0000 1.3
+++ ide-taskfile.c 27 May 2003 23:28:36 -0000
@@ -653,8 +653,11 @@
* hwif->INB(IDE_STATUS_REG); return.
*/
if (--rq->current_nr_sectors <= 0)
- if (!DRIVER(drive)->end_request(drive, 1))
+ {
+ if ((NULL == DRIVER(drive)) ||
+ (!DRIVER(drive)->end_request(drive, 1)))
return ide_stopped;
+ }
/*
* ERM, it is techincally legal to leave/exit here but it makes
* a mess of the code ...
Index: setup-pci.c
===================================================================
RCS file: /cvs/linuxppc64/linuxppc64_2_4/drivers/ide/setup-pci.c,v
retrieving revision 1.1
diff -u -r1.1 setup-pci.c
--- setup-pci.c 8 Jan 2003 18:08:22 -0000 1.1
+++ setup-pci.c 27 May 2003 23:28:36 -0000
@@ -172,7 +172,8 @@
* is already in DMA mode we check and enforce IDE simplex rules.
*/

-static unsigned long __init ide_get_or_set_dma_base (ide_hwif_t *hwif)
+/* This must not be marked __init, since it is called during module load */
+static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
{
unsigned long dma_base = 0;
struct pci_dev *dev = hwif->pci_dev;