Re: PCMCIA/network behaviour broken

Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 31 May 1999 19:19:27 +0100 (BST)


> The issue is the behaviour of the kernel when I remove a card. In 2.0.x,
> I could remove a live card and it would cleanly remove the associcated
> interface and routes, and all would be well. This is required in the case
> where I suspend my laptop and remove the card(s) to fit it into the case.
> When it resumes, PCMCIA card services shuts down the card (it trivially
> deals with suddenly non-existant devices, as is the nature of PCMCIA), and
> the interface disappears.

Yep

> started, never ran those on my laptop), is for the interface to be left in
> a hung state, with the entire networking stack (or at least the bits I can
> get to) completely frozen. I'm forced to reboot to clear the state and
> get back to work.

The PCMCIA code last time I checked was still calling network device driver
admin routines from an interrupt. If that hasnt been fixed in pcmcia-cs
that would explain these kind of behaviours

> Suspend/resume behaviour has gotten even more strange, with PCMCIA card
> services removing the modules for the device upon resume, but the
> interface remaining in the kernel (thus ifconfig output) until I try to
> remove it, at which point the networking stack freezes.

If PCMCIA managed to remove a module for an active interface then it is
broken. Fix the MOD_INC/DEC_USE_COUNT stuff for that module. An interface
that is up is always 'in use'.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/