aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wimax/i2400m/tx.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/net/wimax/i2400m/tx.c b/drivers/net/wimax/i2400m/tx.c
index 1725f2b022a2..101550a2f5a2 100644
--- a/drivers/net/wimax/i2400m/tx.c
+++ b/drivers/net/wimax/i2400m/tx.c
@@ -396,8 +396,20 @@ void *i2400m_tx_fifo_push(struct i2400m *i2400m, size_t size, size_t padding)
396 /* Is there space at the tail? */ 396 /* Is there space at the tail? */
397 tail_room = __i2400m_tx_tail_room(i2400m); 397 tail_room = __i2400m_tx_tail_room(i2400m);
398 if (tail_room < needed_size) { 398 if (tail_room < needed_size) {
399 if (i2400m->tx_out % I2400M_TX_BUF_SIZE 399 /*
400 < i2400m->tx_in % I2400M_TX_BUF_SIZE) { 400 * If the tail room space is not enough to push the message
401 * in the TX FIFO, then there are two possibilities:
402 * 1. There is enough head room space to accommodate
403 * this message in the TX FIFO.
404 * 2. There is not enough space in the head room and
405 * in tail room of the TX FIFO to accommodate the message.
406 * In the case (1), return TAIL_FULL so that the caller
407 * can figure out, if the caller wants to push the message
408 * into the head room space.
409 * In the case (2), return NULL, indicating that the TX FIFO
410 * cannot accommodate the message.
411 */
412 if (room - tail_room >= needed_size) {
401 d_printf(2, dev, "fifo push %zu/%zu: tail full\n", 413 d_printf(2, dev, "fifo push %zu/%zu: tail full\n",
402 size, padding); 414 size, padding);
403 return TAIL_FULL; /* There might be head space */ 415 return TAIL_FULL; /* There might be head space */