libertas_sdio slab corruption on card remove

Sven Neumann s.neumann at raumfeld.com
Sun Nov 21 12:36:37 EST 2010


On Fri, 2010-11-19 at 18:51 +0000, Daniel Drake wrote:

> 2.6.32 introduced a regression. The following commit causes slab
> corruption on every suspend/resume:
> 
> commit 23b149c1890f9a55f065c6b7842e9383d22e0c04
> Author: Andrey Yurovsky <andrey at cozybit.com>
> Date:   Wed Jun 17 19:15:19 2009 -0700
> 
>     libertas: fix card cleanup order in SDIO driver
> 
> 
> This code flow cannot be valid:
>  	lbs_remove_card(card->priv);
> 	card->priv->surpriseremoved = 1;
> 
> because lbs_remove_card frees card->priv (via free_netdev)

As far as I can see the fix is to remove the offending assignment after
lbs_remove_card(). The attached patch has been tested (not thoroughly
though) on a PXA300 with an SD8686 card connected via SDIO.


Regards,
Sven




More information about the libertas-dev mailing list