|
@@ -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);
|