netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Nathan Chancellor <natechancellor@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org, clang-built-linux@googlegroups.com
Subject: [PATCH AUTOSEL 4.9 42/99] mISDN: Fix type of switch control variable in ctrl_teimanager
Date: Sat, 16 Nov 2019 10:50:05 -0500	[thread overview]
Message-ID: <20191116155103.10971-42-sashal@kernel.org> (raw)
In-Reply-To: <20191116155103.10971-1-sashal@kernel.org>

From: Nathan Chancellor <natechancellor@gmail.com>

[ Upstream commit aeb5e02aca91522733eb1db595ac607d30c87767 ]

Clang warns (trimmed for brevity):

drivers/isdn/mISDN/tei.c:1193:7: warning: overflow converting case value
to switch condition type (2147764552 to 18446744071562348872) [-Wswitch]
        case IMHOLD_L1:
             ^
drivers/isdn/mISDN/tei.c:1187:7: warning: overflow converting case value
to switch condition type (2147764550 to 18446744071562348870) [-Wswitch]
        case IMCLEAR_L2:
             ^
2 warnings generated.

The root cause is that the _IOC macro can generate really large numbers,
which don't find into type int. My research into how GCC and Clang are
handling this at a low level didn't prove fruitful and surveying the
kernel tree shows that aside from here and a few places in the scsi
subsystem, everything that uses _IOC is at least of type 'unsigned int'.
Make that change here because as nothing in this function cares about
the signedness of the variable and it removes ambiguity, which is never
good when dealing with compilers.

While we're here, remove the unnecessary local variable ret (just return
-EINVAL and 0 directly).

Link: https://github.com/ClangBuiltLinux/linux/issues/67
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/isdn/mISDN/tei.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c
index 592f597d89518..8261afbbafb05 100644
--- a/drivers/isdn/mISDN/tei.c
+++ b/drivers/isdn/mISDN/tei.c
@@ -1180,8 +1180,7 @@ static int
 ctrl_teimanager(struct manager *mgr, void *arg)
 {
 	/* currently we only have one option */
-	int	*val = (int *)arg;
-	int	ret = 0;
+	unsigned int *val = (unsigned int *)arg;
 
 	switch (val[0]) {
 	case IMCLEAR_L2:
@@ -1197,9 +1196,9 @@ ctrl_teimanager(struct manager *mgr, void *arg)
 			test_and_clear_bit(OPTION_L1_HOLD, &mgr->options);
 		break;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
-	return ret;
+	return 0;
 }
 
 /* This function does create a L2 for fixed TEI in NT Mode */
-- 
2.20.1


  parent reply	other threads:[~2019-11-16 16:03 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191116155103.10971-1-sashal@kernel.org>
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 07/99] brcmsmac: AP mode: update beacon when TIM changes Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 08/99] ath10k: allocate small size dma memory in ath10k_pci_diag_write_mem Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 25/99] net: fix warning in af_unix Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 26/99] net: ena: Fix Kconfig dependency on X86 Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 33/99] SUNRPC: Fix a compile warning for cmpxchg64() Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 34/99] sunrpc: safely reallow resvport min/max inversion Sasha Levin
2019-11-16 15:49 ` [PATCH AUTOSEL 4.9 35/99] atm: zatm: Fix empty body Clang warnings Sasha Levin
2019-11-16 15:50 ` Sasha Levin [this message]
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 43/99] qlcnic: fix a return in qlcnic_dcb_get_capability() Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 44/99] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 51/99] sparc64: Rework xchg() definition to avoid warnings Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 54/99] macsec: update operstate when lower device changes Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 55/99] macsec: let the administrator set UP state even if lowerdev is down Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 69/99] igb: shorten maximum PHC timecounter update interval Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 70/99] ntb_netdev: fix sleep time mismatch Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 75/99] net: do not abort bulk send on BQL status Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 78/99] wlcore: Fix the return value in case of error in 'wlcore_vendor_cmd_smart_config_start()' Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 79/99] rtl8xxxu: Fix missing break in switch Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 80/99] brcmsmac: never log "tid x is not agg'able" by default Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 81/99] wireless: airo: potential buffer overflow in sprintf() Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 82/99] rtlwifi: rtl8192de: Fix misleading REG_MCUFWDL information Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 89/99] vrf: mark skb for multicast or link-local as enslaved to VRF Sasha Levin
2019-11-17 16:44   ` David Ahern
2019-11-25 14:35     ` Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 91/99] net: bcmgenet: return correct value 'ret' from bcmgenet_power_down Sasha Levin
2019-11-16 15:50 ` [PATCH AUTOSEL 4.9 92/99] sock: Reset dst when changing sk_mark via setsockopt Sasha Levin
2019-11-16 15:51 ` [PATCH AUTOSEL 4.9 99/99] ipv6: Fix handling of LLA with VRF and sockets bound to VRF Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191116155103.10971-42-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=clang-built-linux@googlegroups.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=natechancellor@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).