qeth: Remove BUG_ONs
authorStefan Raspl <raspl@linux.vnet.ibm.com>
Mon, 19 Nov 2012 02:46:50 +0000 (02:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Nov 2012 19:19:00 +0000 (14:19 -0500)
Remove BUG_ONs or convert to WARN_ON_ONCE/WARN_ONs since a failure within a
networking device driver is no reason to shut down the entire machine.

Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Reviewed-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core_main.c
drivers/s390/net/qeth_l2_main.c
drivers/s390/net/qeth_l3_main.c

index b904c8c7bc1de44e13be57f5e935eec281fcb572..638a57f4d8a11cc1ad040914f7991f2a780fefd9 100644 (file)
@@ -383,7 +383,7 @@ static inline void qeth_cleanup_handled_pending(struct qeth_qdio_out_q *q,
                                qeth_release_skbs(c);
 
                                c = f->next_pending;
-                               BUG_ON(head->next_pending != f);
+                               WARN_ON_ONCE(head->next_pending != f);
                                head->next_pending = c;
                                kmem_cache_free(qeth_qdio_outbuf_cache, f);
                        } else {
@@ -415,13 +415,12 @@ static inline void qeth_qdio_handle_aob(struct qeth_card *card,
        buffer = (struct qeth_qdio_out_buffer *) aob->user1;
        QETH_CARD_TEXT_(card, 5, "%lx", aob->user1);
 
-       BUG_ON(buffer == NULL);
-
        if (atomic_cmpxchg(&buffer->state, QETH_QDIO_BUF_PRIMED,
                           QETH_QDIO_BUF_IN_CQ) == QETH_QDIO_BUF_PRIMED) {
                notification = TX_NOTIFY_OK;
        } else {
-               BUG_ON(atomic_read(&buffer->state) != QETH_QDIO_BUF_PENDING);
+               WARN_ON_ONCE(atomic_read(&buffer->state) !=
+                                                       QETH_QDIO_BUF_PENDING);
                atomic_set(&buffer->state, QETH_QDIO_BUF_IN_CQ);
                notification = TX_NOTIFY_DELAYED_OK;
        }
@@ -1131,7 +1130,7 @@ static void qeth_release_skbs(struct qeth_qdio_out_buffer *buf)
                notify_general_error = 1;
 
        /* release may never happen from within CQ tasklet scope */
-       BUG_ON(atomic_read(&buf->state) == QETH_QDIO_BUF_IN_CQ);
+       WARN_ON_ONCE(atomic_read(&buf->state) == QETH_QDIO_BUF_IN_CQ);
 
        skb = skb_dequeue(&buf->skb_list);
        while (skb) {
@@ -2400,7 +2399,7 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card)
                card->qdio.out_qs[i]->queue_no = i;
                /* give outbound qeth_qdio_buffers their qdio_buffers */
                for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j) {
-                       BUG_ON(card->qdio.out_qs[i]->bufs[j] != NULL);
+                       WARN_ON(card->qdio.out_qs[i]->bufs[j] != NULL);
                        if (qeth_init_qdio_out_buf(card->qdio.out_qs[i], j))
                                goto out_freeoutqbufs;
                }
@@ -3565,7 +3564,7 @@ void qeth_qdio_output_handler(struct ccw_device *ccwdev,
                if (queue->bufstates &&
                    (queue->bufstates[bidx].flags &
                     QDIO_OUTBUF_STATE_FLAG_PENDING) != 0) {
-                       BUG_ON(card->options.cq != QETH_CQ_ENABLED);
+                       WARN_ON_ONCE(card->options.cq != QETH_CQ_ENABLED);
 
                        if (atomic_cmpxchg(&buffer->state,
                                           QETH_QDIO_BUF_PRIMED,
@@ -3579,7 +3578,6 @@ void qeth_qdio_output_handler(struct ccw_device *ccwdev,
                        QETH_CARD_TEXT(queue->card, 5, "aob");
                        QETH_CARD_TEXT_(queue->card, 5, "%lx",
                                        virt_to_phys(buffer->aob));
-                       BUG_ON(bidx < 0 || bidx >= QDIO_MAX_BUFFERS_PER_Q);
                        if (qeth_init_qdio_out_buf(queue, bidx)) {
                                QETH_CARD_TEXT(card, 2, "outofbuf");
                                qeth_schedule_recovery(card);
index 83849c290337e4402397bec99e474557cf2a4337..73195553f84b168442918a0c6697d9ef090999c2 100644 (file)
@@ -411,7 +411,7 @@ static int qeth_l2_process_inbound_buffer(struct qeth_card *card,
        unsigned int len;
 
        *done = 0;
-       BUG_ON(!budget);
+       WARN_ON_ONCE(!budget);
        while (budget) {
                skb = qeth_core_get_next_skb(card,
                        &card->qdio.in_q->bufs[card->rx.b_index],
@@ -973,7 +973,6 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
        int rc = 0;
        enum qeth_card_states recover_flag;
 
-       BUG_ON(!card);
        mutex_lock(&card->discipline_mutex);
        mutex_lock(&card->conf_mutex);
        QETH_DBF_TEXT(SETUP, 2, "setonlin");
index e4171a944b94c03e8e65c784d0e049183f5df6ea..6e5eef01e66784b4eaa3e9357d81c7e89b96e47e 100644 (file)
@@ -1939,7 +1939,7 @@ static int qeth_l3_process_inbound_buffer(struct qeth_card *card,
        __u16 magic;
 
        *done = 0;
-       BUG_ON(!budget);
+       WARN_ON_ONCE(!budget);
        while (budget) {
                skb = qeth_core_get_next_skb(card,
                        &card->qdio.in_q->bufs[card->rx.b_index],
@@ -3334,7 +3334,6 @@ static int __qeth_l3_set_online(struct ccwgroup_device *gdev, int recovery_mode)
        int rc = 0;
        enum qeth_card_states recover_flag;
 
-       BUG_ON(!card);
        mutex_lock(&card->discipline_mutex);
        mutex_lock(&card->conf_mutex);
        QETH_DBF_TEXT(SETUP, 2, "setonlin");
@@ -3715,9 +3714,9 @@ static void qeth_l3_unregister_notifiers(void)
 {
 
        QETH_DBF_TEXT(SETUP, 5, "unregnot");
-       BUG_ON(unregister_inetaddr_notifier(&qeth_l3_ip_notifier));
+       WARN_ON(unregister_inetaddr_notifier(&qeth_l3_ip_notifier));
 #ifdef CONFIG_QETH_IPV6
-       BUG_ON(unregister_inet6addr_notifier(&qeth_l3_ip6_notifier));
+       WARN_ON(unregister_inet6addr_notifier(&qeth_l3_ip6_notifier));
 #endif /* QETH_IPV6 */
 }