diff options
Diffstat (limited to 'drivers/net/ks8851.c')
| -rw-r--r-- | drivers/net/ks8851.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c index 13cc1ca261d..9e9f9b34976 100644 --- a/drivers/net/ks8851.c +++ b/drivers/net/ks8851.c @@ -722,12 +722,14 @@ static void ks8851_tx_work(struct work_struct *work)  		txb = skb_dequeue(&ks->txq);  		last = skb_queue_empty(&ks->txq); -		ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA); -		ks8851_wrpkt(ks, txb, last); -		ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr); -		ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE); +		if (txb != NULL) { +			ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA); +			ks8851_wrpkt(ks, txb, last); +			ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr); +			ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE); -		ks8851_done_tx(ks, txb); +			ks8851_done_tx(ks, txb); +		}  	}  	mutex_unlock(&ks->lock);  |