This will always work. Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c =================================================================== --- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c 2007-08-03 23:35:31.000000000 +0200 +++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c 2007-08-03 23:35:33.000000000 +0200 @@ -441,14 +441,10 @@ void sync_descbuffer_for_device(struct b static inline void free_descriptor_buffer(struct bcm43xx_dmaring *ring, - struct bcm43xx_dmadesc_meta *meta, - int irq_context) + struct bcm43xx_dmadesc_meta *meta) { if (meta->skb) { - if (irq_context) - dev_kfree_skb_irq(meta->skb); - else - dev_kfree_skb(meta->skb); + dev_kfree_skb_any(meta->skb); meta->skb = NULL; } } @@ -777,7 +773,7 @@ static void free_all_descbuffers(struct unmap_descbuffer(ring, meta->dmaaddr, ring->rx_buffersize, 0); } - free_descriptor_buffer(ring, meta, 0); + free_descriptor_buffer(ring, meta); } } Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c =================================================================== --- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c 2007-08-03 23:35:31.000000000 +0200 +++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c 2007-08-03 23:35:33.000000000 +0200 @@ -208,17 +208,12 @@ static void pio_tx_write_fragment(struct tx_complete(queue, skb); } -static void free_txpacket(struct bcm43xx_pio_txpacket *packet, - int irq_context) +static void free_txpacket(struct bcm43xx_pio_txpacket *packet) { struct bcm43xx_pioqueue *queue = packet->queue; - if (packet->skb) { - if (irq_context) - dev_kfree_skb_irq(packet->skb); - else - dev_kfree_skb(packet->skb); - } + if (packet->skb) + dev_kfree_skb_any(packet->skb); list_move(&packet->list, &queue->txfree); queue->nr_txfree++; } @@ -234,7 +229,7 @@ static int pio_tx_packet(struct bcm43xx_ bcmwarn(queue->dev->wl, "PIO queue too small. " "Dropping packet.\n"); /* Drop it silently (return success) */ - free_txpacket(packet, 1); + free_txpacket(packet); return 0; } assert(queue->tx_devq_packets <= BCM43xx_PIO_MAXTXDEVQPACKETS); @@ -371,9 +366,9 @@ static void cancel_transfers(struct bcm4 tasklet_disable(&queue->txtask); list_for_each_entry_safe(packet, tmp_packet, &queue->txrunning, list) - free_txpacket(packet, 0); + free_txpacket(packet); list_for_each_entry_safe(packet, tmp_packet, &queue->txqueue, list) - free_txpacket(packet, 0); + free_txpacket(packet); } static void bcm43xx_destroy_pioqueue(struct bcm43xx_pioqueue *queue) @@ -498,7 +493,7 @@ void bcm43xx_pio_handle_txstatus(struct &(packet->txstat)); packet->skb = NULL; - free_txpacket(packet, 1); + free_txpacket(packet); /* If there are packets on the txqueue, poke the tasklet * to transmit them. */ -- _______________________________________________ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev