[lkml]   [2003]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectPCMCIA 2.5.X sleeping from illegal context
    The 2.5.X PCMCIA kernel support seems to have a problem
    with drivers/pcmcia/rsrc_mgr.c in function undo_irq().

    This function is called from pcmcia_release_irq() in

    pcmcia_release_irq() is called by individual drivers
    when releasing resources.

    When a device gets a CS_EVENT_CARD_REMOVAL event from
    cs.c, the device sets a timer to call the release
    function defined in the device driver to release resources.
    This is the convention used with all PCMCIA drivers I
    can see.

    The release timer function is running in a context where it
    is illegal to call a sleeping function.

    undo_irq() has added semaphore calls down(rsrc_sem)/up(rsrc_sem)
    in 2.5.X which generates the kernel 'sleeping function called
    from illegal context at include/asm/semaphore.h' message.

    So, are all the PCMCIA drivers supposed to be changed to not
    release resources in the timer context? And if so, what
    is the new convention?

    Or should the synchronization used in undo_irq() be
    changed to something that is legal from a timer context.


    Paul Fulghum,
    Microgate Corporation,

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:35    [W:0.031 / U:1.068 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site