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