| From: Arnd Bergmann <arnd@arndb.de> |
| Date: Tue, 19 Mar 2019 22:15:58 +0100 |
| Subject: 3c515: fix integer overflow warning |
| |
| commit fb6fafbc7de4a813bb5364358bbe27f71e62b24a upstream. |
| |
| clang points out a harmless signed integer overflow: |
| |
| drivers/net/ethernet/3com/3c515.c:1530:66: error: implicit conversion from 'int' to 'short' changes value from 32783 to -32753 [-Werror,-Wconstant-conversion] |
| new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm; |
| ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ |
| drivers/net/ethernet/3com/3c515.c:1532:52: error: implicit conversion from 'int' to 'short' changes value from 32775 to -32761 [-Werror,-Wconstant-conversion] |
| new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast; |
| ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ |
| drivers/net/ethernet/3com/3c515.c:1534:38: error: implicit conversion from 'int' to 'short' changes value from 32773 to -32763 [-Werror,-Wconstant-conversion] |
| new_mode = SetRxFilter | RxStation | RxBroadcast; |
| ~ ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ |
| |
| Make the variable unsigned to avoid the overflow. |
| |
| Fixes: Linux-2.1.128pre1 |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/net/ethernet/3com/3c515.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/3com/3c515.c |
| +++ b/drivers/net/ethernet/3com/3c515.c |
| @@ -1524,7 +1524,7 @@ static void update_stats(int ioaddr, str |
| static void set_rx_mode(struct net_device *dev) |
| { |
| int ioaddr = dev->base_addr; |
| - short new_mode; |
| + unsigned short new_mode; |
| |
| if (dev->flags & IFF_PROMISC) { |
| if (corkscrew_debug > 3) |