lkml.org 
[lkml]   [2001]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] 2.4.2-pre3: parport_pc init_module bug
    On Tue, 13 Feb 2001, Tim Waugh wrote:
    > Here's a patch that fixes a bug that can cause PCI driver list
    > corruption. If parport_pc's init_module fails after it calls
    > pci_register_driver, cleanup_module isn't called and so it's still
    > registered when it gets unloaded.

    > --- linux/drivers/parport/parport_pc.c.init Tue Feb 13 23:31:25 2001
    > +++ linux/drivers/parport/parport_pc.c Tue Feb 13 23:35:56 2001
    > @@ -89,6 +89,7 @@
    > } superios[NR_SUPERIOS] __devinitdata = { {0,},};
    >
    > static int user_specified __devinitdata = 0;
    > +static int registered_parport;
    >
    > /* frob_control, but for ECR */
    > static void frob_econtrol (struct parport *pb, unsigned char m,
    > @@ -2605,6 +2606,7 @@
    > count += parport_pc_find_nonpci_ports (autoirq, autodma);
    >
    > r = pci_register_driver (&parport_pc_pci_driver);
    > + registered_parport = 1;
    > if (r > 0)
    > count += r;

    Bad patch. It should be

    if (r >= 0) {
    registered_parport = 1;
    if (r > 0)
    count += r;
    }

    If pci_register_driver returns < 0, the driver is not registered with
    the system.

    Jeff




    -
    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:17    [W:0.022 / U:0.488 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site