lkml.org 
[lkml]   [2000]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [RFC] my current kernel todo list
Em Wed, Sep 06, 2000 at 05:37:50PM +0100, Tigran Aivazian escreveu:
> On Mon, 4 Sep 2000, Tigran Aivazian wrote:
>
> > On Fri, 25 Aug 2000, Arnaldo Carvalho de Melo wrote:
> > > now the driver init sequence is not
> > > serialized anymore, so races are possible
> >
> > since when? In 2.4.0-test8-pre2 mod->init and mod->cleanup are called
> > under global kernel lock. As for static drivers they are initialised from
> > either start_kernel() or init()->do_basic_setup() both of which take
> > global kernel lock.
> >
>
> Ok, I understand this now - just cheched the cardbus/pcihotplug code.
>
> Ok, now if you do this, please leave out ne.c and hp100.c - I have the
> cards for these two so I can do it and test it myself.

humm, In fact I've already sent a patch to Paul Gortmaker only, asking
for feedback about the PCI case (that I think should be removed from it,
as ne2k-pci already has this), here it is, maybe it'll help you in the
process.


--- linux-2.4.0-test8-pre1/drivers/net/ne.c Sat Jul 8 23:38:16 2000
+++ linux-2.4.0-test8-pre1.acme/drivers/net/ne.c Fri Sep 1 20:13:37 2000
@@ -18,6 +18,7 @@

Changelog:

+ Arnaldo Melo : get rid of check_region
Paul Gortmaker : use ENISR_RDC to monitor Tx PIO uploads, made
sanity checks and bad clone support optional.
Paul Gortmaker : new reset code, reset card after probe at boot.
@@ -211,8 +212,7 @@
/* Last resort. The semi-risky ISA auto-probe. */
for (base_addr = 0; netcard_portlist[base_addr] != 0; base_addr++) {
int ioaddr = netcard_portlist[base_addr];
- if (check_region(ioaddr, NE_IO_EXTENT))
- continue;
+
if (ne_probe1(dev, ioaddr) == 0)
return 0;
}
@@ -328,13 +328,6 @@
}
}

- /* We should have a "dev" from Space.c or the static module table. */
- if (dev == NULL)
- {
- printk(KERN_ERR "ne.c: Passed a NULL device.\n");
- dev = init_etherdev(0, 0);
- }
-
if (ei_debug && version_printed++ == 0)
printk(version);

@@ -473,6 +466,9 @@
#endif
}

+ if (!request_region(ioaddr, NE_IO_EXTENT, name))
+ return -EBUSY;
+
if (pci_irq_line)
dev->irq = pci_irq_line;

@@ -519,7 +515,6 @@
}
}
dev->base_addr = ioaddr;
- request_region(ioaddr, NE_IO_EXTENT, name);

for(i = 0; i < ETHER_ADDR_LEN; i++) {
printk(" %2.2x", SA_prom[i]);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 12:38    [W:0.087 / U:0.836 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site