Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49f29efa authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville
Browse files

[PATCH] bcm43xx: Fix crash on ifdown, by being careful in pio/dma freeing.



This bug was caused by the packing of the bcm43xx_dma and bcm43xx_pio
structures into a union.

Signed-off-by: default avatarMichael Buesch <mbuesch@freenet.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e9357c05
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -531,7 +531,11 @@ static void bcm43xx_destroy_dmaring(struct bcm43xx_dmaring *ring)

void bcm43xx_dma_free(struct bcm43xx_private *bcm)
{
	struct bcm43xx_dma *dma = bcm43xx_current_dma(bcm);
	struct bcm43xx_dma *dma;

	if (bcm43xx_using_pio(bcm))
		return;
	dma = bcm43xx_current_dma(bcm);

	bcm43xx_destroy_dmaring(dma->rx_ring1);
	dma->rx_ring1 = NULL;
+5 −1
Original line number Diff line number Diff line
@@ -377,7 +377,11 @@ static void bcm43xx_destroy_pioqueue(struct bcm43xx_pioqueue *queue)

void bcm43xx_pio_free(struct bcm43xx_private *bcm)
{
	struct bcm43xx_pio *pio = bcm43xx_current_pio(bcm);
	struct bcm43xx_pio *pio;

	if (!bcm43xx_using_pio(bcm))
		return;
	pio = bcm43xx_current_pio(bcm);

	bcm43xx_destroy_pioqueue(pio->queue3);
	pio->queue3 = NULL;