From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Linus Walleij <linus.walleij@linaro.org>, Sasha Levin <sashal@kernel.org>, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-gpio@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 18/32] pinctrl: samsung: use 'int' for register masks in Exynos Date: Wed, 5 May 2021 12:39:50 -0400 [thread overview] Message-ID: <20210505164004.3463707-18-sashal@kernel.org> (raw) In-Reply-To: <20210505164004.3463707-1-sashal@kernel.org> From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> [ Upstream commit fa0c10a5f3a49130dd11281aa27e7e1c8654abc7 ] The Special Function Registers on all Exynos SoC, including ARM64, are 32-bit wide, so entire driver uses matching functions like readl() or writel(). On 64-bit ARM using unsigned long for register masks: 1. makes little sense as immediately after bitwise operation it will be cast to 32-bit value when calling writel(), 2. is actually error-prone because it might promote other operands to 64-bit. Addresses-Coverity: Unintentional integer overflow Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Link: https://lore.kernel.org/r/20210408195029.69974-1-krzysztof.kozlowski@canonical.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org> --- drivers/pinctrl/samsung/pinctrl-exynos.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index 24956f6c6324..7f764f751c4f 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -55,7 +55,7 @@ static void exynos_irq_mask(struct irq_data *irqd) struct exynos_irq_chip *our_chip = to_exynos_irq_chip(chip); struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset; - unsigned long mask; + unsigned int mask; unsigned long flags; spin_lock_irqsave(&bank->slock, flags); @@ -83,7 +83,7 @@ static void exynos_irq_unmask(struct irq_data *irqd) struct exynos_irq_chip *our_chip = to_exynos_irq_chip(chip); struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset; - unsigned long mask; + unsigned int mask; unsigned long flags; /* @@ -482,7 +482,7 @@ static void exynos_irq_eint0_15(struct irq_desc *desc) chained_irq_exit(chip, desc); } -static inline void exynos_irq_demux_eint(unsigned long pend, +static inline void exynos_irq_demux_eint(unsigned int pend, struct irq_domain *domain) { unsigned int irq; @@ -499,8 +499,8 @@ static void exynos_irq_demux_eint16_31(struct irq_desc *desc) { struct irq_chip *chip = irq_desc_get_chip(desc); struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc); - unsigned long pend; - unsigned long mask; + unsigned int pend; + unsigned int mask; int i; chained_irq_enter(chip, desc); -- 2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Linus Walleij <linus.walleij@linaro.org>, Sasha Levin <sashal@kernel.org>, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-gpio@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 18/32] pinctrl: samsung: use 'int' for register masks in Exynos Date: Wed, 5 May 2021 12:39:50 -0400 [thread overview] Message-ID: <20210505164004.3463707-18-sashal@kernel.org> (raw) In-Reply-To: <20210505164004.3463707-1-sashal@kernel.org> From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> [ Upstream commit fa0c10a5f3a49130dd11281aa27e7e1c8654abc7 ] The Special Function Registers on all Exynos SoC, including ARM64, are 32-bit wide, so entire driver uses matching functions like readl() or writel(). On 64-bit ARM using unsigned long for register masks: 1. makes little sense as immediately after bitwise operation it will be cast to 32-bit value when calling writel(), 2. is actually error-prone because it might promote other operands to 64-bit. Addresses-Coverity: Unintentional integer overflow Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Link: https://lore.kernel.org/r/20210408195029.69974-1-krzysztof.kozlowski@canonical.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org> --- drivers/pinctrl/samsung/pinctrl-exynos.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index 24956f6c6324..7f764f751c4f 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -55,7 +55,7 @@ static void exynos_irq_mask(struct irq_data *irqd) struct exynos_irq_chip *our_chip = to_exynos_irq_chip(chip); struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset; - unsigned long mask; + unsigned int mask; unsigned long flags; spin_lock_irqsave(&bank->slock, flags); @@ -83,7 +83,7 @@ static void exynos_irq_unmask(struct irq_data *irqd) struct exynos_irq_chip *our_chip = to_exynos_irq_chip(chip); struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); unsigned long reg_mask = our_chip->eint_mask + bank->eint_offset; - unsigned long mask; + unsigned int mask; unsigned long flags; /* @@ -482,7 +482,7 @@ static void exynos_irq_eint0_15(struct irq_desc *desc) chained_irq_exit(chip, desc); } -static inline void exynos_irq_demux_eint(unsigned long pend, +static inline void exynos_irq_demux_eint(unsigned int pend, struct irq_domain *domain) { unsigned int irq; @@ -499,8 +499,8 @@ static void exynos_irq_demux_eint16_31(struct irq_desc *desc) { struct irq_chip *chip = irq_desc_get_chip(desc); struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc); - unsigned long pend; - unsigned long mask; + unsigned int pend; + unsigned int mask; int i; chained_irq_enter(chip, desc); -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-05-05 17:11 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 16:39 [PATCH AUTOSEL 4.19 01/32] fs: dlm: fix debugfs dump Sasha Levin 2021-05-05 16:39 ` [Cluster-devel] " Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 02/32] tipc: convert dest node's address to network order Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 03/32] ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 04/32] net: stmmac: Set FIFO sizes for ipq806x Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 05/32] i2c: bail out early when RDWR parameters are wrong Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 06/32] ALSA: hdsp: don't disable if not enabled Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 07/32] ALSA: hdspm: " Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 08/32] ALSA: rme9652: " Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 09/32] Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 10/32] Bluetooth: verify AMP hci_chan before amp_destroy Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 11/32] Bluetooth: initialize skb_queue_head at l2cap_chan_create() Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 12/32] net: bridge: when suppression is enabled exclude RARP packets Sasha Levin 2021-05-05 16:39 ` [Bridge] " Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 13/32] Bluetooth: check for zapped sk before connecting Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 14/32] ip6_vti: proper dev_{hold|put} in ndo_[un]init methods Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 15/32] ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 16/32] i2c: Add I2C_AQ_NO_REP_START adapter quirk Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 17/32] mac80211: clear the beacon's CRC after channel switch Sasha Levin 2021-05-05 16:39 ` Sasha Levin [this message] 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 18/32] pinctrl: samsung: use 'int' for register masks in Exynos Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 19/32] cuse: prevent clone Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 20/32] selftests: Set CC to clang in lib.mk if LLVM is set Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 21/32] kconfig: nconf: stop endless search loops Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 22/32] sctp: Fix out-of-bounds warning in sctp_process_asconf_param() Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 23/32] powerpc/smp: Set numa node before updating mask Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 24/32] ASoC: rt286: Generalize support for ALC3263 codec Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 25/32] ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 26/32] samples/bpf: Fix broken tracex1 due to kprobe argument change Sasha Levin 2021-05-05 16:39 ` [PATCH AUTOSEL 4.19 27/32] powerpc/pseries: Stop calling printk in rtas_stop_self() Sasha Levin 2021-05-05 16:39 ` Sasha Levin 2021-05-05 16:40 ` [PATCH AUTOSEL 4.19 28/32] wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt Sasha Levin 2021-05-05 16:40 ` [PATCH AUTOSEL 4.19 29/32] wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join Sasha Levin 2021-05-05 16:40 ` [PATCH AUTOSEL 4.19 30/32] powerpc/iommu: Annotate nested lock for lockdep Sasha Levin 2021-05-05 16:40 ` Sasha Levin 2021-05-05 16:40 ` [PATCH AUTOSEL 4.19 31/32] net: ethernet: mtk_eth_soc: fix RX VLAN offload Sasha Levin 2021-05-05 16:40 ` Sasha Levin 2021-05-05 16:40 ` Sasha Levin 2021-05-05 16:40 ` [PATCH AUTOSEL 4.19 32/32] ia64: module: fix symbolizer crash on fdescr Sasha Levin 2021-05-05 16:40 ` 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=20210505164004.3463707-18-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=krzysztof.kozlowski@canonical.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=s.nawrocki@samsung.com \ --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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.