lkml.org 
[lkml]   [2003]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: Linux v2.5.54
    Date
    On Thursday 02 January 2003 04:43, Linus Torvalds wrote:
    > Happy new year to you all, hopefully most of you are back from the dead
    > and the hangovers are all long gone. And if not, I'm told reading a large
    > kernel patch is _just_ the medication for whatever ails you.
    >
    > The 2.5.54 patch is largely mainly a big collection of various small
    > things, all over the place (diffstat shows a long list of small changes,
    > with some noticeable activity in UML, the MPT fusion driver and some of
    > the fbcon drivers).
    >
    > Various module updates (deprecated functions, updated loaders etc), usb,
    > m68k, x86-64 updates, kbuild stuff etc etc.
    <snip>
    > Jaroslav Kysela <perex@suse.cz>:
    > o PnP update
    >

    this broke the ne driver:

    gcc -Wp,-MD,drivers/net/.ne.o.d -D__KERNEL__ -Iinclude -Wall
    -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe
    -mpreferred-stack-boundary=2 -march=i586 -Iinclude/asm-i386/mach-default
    -fomit-frame-pointer -nostdinc -iwithprefix include -DKBUILD_BASENAME=ne
    -DKBUILD_MODNAME=ne -c -o drivers/net/ne.o drivers/net/ne.c
    drivers/net/ne.c: In function `ne_probe_isapnp':
    drivers/net/ne.c:201: warning: implicit declaration of function
    `isapnp_find_dev'
    drivers/net/ne.c:204: warning: assignment makes pointer from integer without
    a cast
    drivers/net/ne.c:206: dereferencing pointer to incomplete type
    drivers/net/ne.c:208: dereferencing pointer to incomplete type
    drivers/net/ne.c:211: dereferencing pointer to incomplete type
    drivers/net/ne.c:214: dereferencing pointer to incomplete type
    drivers/net/ne.c:215: dereferencing pointer to incomplete type
    make[2]: *** [drivers/net/ne.o] Error 1
    make[1]: *** [drivers/net] Error 2
    make: *** [drivers] Error 2

    CONFIG_PNP is not set

    with drivers/pcmcia/i82365.c as an example I could get this to build (see
    patch below), as noted in Documentation/pnp.txt this is not the correct fix,
    but it works for now.

    with patch below, kernel builds, boots and it servives a simple stresstest
    (the bandwidth program in
    http://marc.theaimsgroup.com/?l=linux-kernel&m=104151288832193&w=2)

    Rudmer

    --- linux-2.5.54/drivers/net/ne.c.orig 2003-01-02 14:36:14.000000000 +0100
    +++ linux-2.5.54/drivers/net/ne.c 2003-01-02 16:01:33.000000000 +0100
    @@ -193,32 +193,29 @@

    static int __init ne_probe_isapnp(struct net_device *dev)
    {
    - int i;
    -
    - for (i = 0; isapnp_clone_list[i].vendor != 0; i++) {
    - struct pci_dev *idev = NULL;
    + struct isapnp_device_id *devid;
    + struct pnp_dev *idev;

    - while ((idev = isapnp_find_dev(NULL,
    - isapnp_clone_list[i].vendor,
    - isapnp_clone_list[i].function,
    - idev))) {
    - /* Avoid already found cards from previous calls */
    - if (idev->prepare(idev))
    - continue;
    - if (idev->activate(idev))
    - continue;
    - /* if no irq, search for next */
    - if (idev->irq_resource[0].start == 0)
    + for (devid = isapnp_clone_list; devid->vendor; devid++) {
    + while ((idev = pnp_find_dev(NULL, devid->vendor,
    + devid->function, idev))) {
    + if (pnp_activate_dev(idev, NULL) < 0) {
    + printk("ne.c: PNP prepare failed\n");
    + break;
    + }
    + /* if no irq, search for next */
    + if (pnp_irq(idev, 0) == 0)
    continue;
    /* found it */
    - dev->base_addr = idev->resource[0].start;
    - dev->irq = idev->irq_resource[0].start;
    - printk(KERN_INFO "ne.c: ISAPnP reports %s at i/o %#lx, irq %d.\n",
    - (char *) isapnp_clone_list[i].driver_data,
    -
    + dev->base_addr = pnp_port_start(idev, 0);
    + dev->irq = pnp_irq(idev, 0);
    + printk(KERN_INFO "ne.c: PNP reports %s at i/o %#lx, irq %d.\n",
    + (char *) devid->driver_data,
    dev->base_addr, dev->irq);
    +
    if (ne_probe1(dev, dev->base_addr) != 0) { /* Shouldn't happen. */
    - printk(KERN_ERR "ne.c: Probe of ISAPnP card at %#lx failed.\n",
    dev->base_addr);
    + printk(KERN_ERR "ne.c: Probe of ISAPnP card at %#lx failed.\n",
    + dev->base_addr);
    return -ENXIO;
    }
    ei_status.priv = (unsigned long)idev;
    @@ -783,9 +780,9 @@
    struct net_device *dev = &dev_ne[this_dev];
    if (dev->priv != NULL) {
    void *priv = dev->priv;
    - struct pci_dev *idev = (struct pci_dev *)ei_status.priv;
    + struct pnp_dev *idev = (struct pnp_dev *)ei_status.priv;
    if (idev)
    - idev->deactivate(idev);
    + pnp_disable_dev(idev);
    free_irq(dev->irq, dev);
    release_region(dev->base_addr, NE_IO_EXTENT);
    unregister_netdev(dev);
    -
    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/
    \
     
     \ /
      Last update: 2005-03-22 13:32    [W:0.035 / U:178.592 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site