lkml.org 
[lkml]   [2005]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Flaw in ide_unregister()
    From
    Date
    On Gwe, 2004-12-31 at 12:04, Richard Purdie wrote:
    > I've been having some problems with calls to ide_unregister() (in ide.c).
    >
    > This function is declared void which should mean it always succeeds and yet
    > it can fail *silently* under the following condition:

    Actually in 2.4.x and 2.6.x (except 2.6.9-ac and 2.6.10-ac) its
    essentially unusable and full of races and should always be avoided.

    > 3. Add a return value. What does ide-cs.c do with it though? The hardware is
    > gone. (doesn't help)

    In 2.6.9-ac and 2.6.10-ac the ide_unregister_hwif calls return an error
    if the drive is in use. At this point the ide-cs code still throws it
    away. The -ac code IDE also adds "removed_hwif_iops" so the bits are
    there for the correct result which is something like

    if(ide_unregister_hwif(hwif) < 0 {
    printk("Whine whine...");
    removed_hwif_ops(hwif);
    while(ide_unregister_hwif(hwif) < 0)
    msleep(1000);
    }

    I've just not had time yet to propogate this into the drivers and into
    the new PCI helper for hotplugging IDE controllers.

    Alan

    -
    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 14:09    [W:3.951 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site