staging: unisys: visornic: convert BUG_ON to dev_err() message
authorTim Sell <Timothy.Sell@unisys.com>
Wed, 13 Apr 2016 15:56:36 +0000 (11:56 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Apr 2016 05:09:37 +0000 (22:09 -0700)
The caller of visor_copy_fragsinfo_from_skb() is prepared to log a
dev_err() message if it fails (by returning a negative value), so we now
just fail in the one occasion where visor_copy_fragsinfo_from_skb() was
doing a BUG_ON.

There was also a problem before where visor_copy_fragsinfo_from_skb() was
returning a negative to indicate error, yet it was declared to return an
unsigned value!  So obviously that needed correcting too.

Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/visornic/visornic_main.c

index 0ec952ac0dac739e0bc4925644fa4dc49020e5f9..de983d29e791a165660ae455c4936aef7c7b734d 100644 (file)
@@ -209,7 +209,7 @@ static void poll_for_irq(unsigned long v);
  *     Return value indicates number of entries filled in frags
  *     Negative values indicate an error.
  */
-static unsigned int
+static int
 visor_copy_fragsinfo_from_skb(struct sk_buff *skb, unsigned int firstfraglen,
                              unsigned int frags_max,
                              struct phys_info frags[])
@@ -269,11 +269,9 @@ visor_copy_fragsinfo_from_skb(struct sk_buff *skb, unsigned int firstfraglen,
                         * zero if the frags array is out of room
                         * That should never happen because we
                         * fail above, if count+numfrags > frags_max.
-                        * Given that theres no recovery mechanism from putting
-                        * half a packet in the I/O channel, panic here as this
-                        * should never happen
                         */
-                       BUG_ON(!count);
+                       if (!count)
+                               return -EINVAL;
                }
        }
        if (skb_shinfo(skb)->frag_list) {