]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ntb_hw_switchtec: potential shift wrapping bug in switchtec_ntb_init_sndev()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 25 Mar 2019 09:17:26 +0000 (12:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:50:55 +0000 (14:50 +0100)
[ Upstream commit ff148d8ac53e59802645bd3200c811620317eb9f ]

This code triggers a Smatch warning:

    drivers/ntb/hw/mscc/ntb_hw_switchtec.c:884 switchtec_ntb_init_sndev()
    warn: should '(1 << sndev->peer_partition)' be a 64 bit type?

The "part_map" and "tpart_vec" variables are u64 type so this seems like
a valid warning.

Fixes: 3df54c870f52 ("ntb_hw_switchtec: Allow using Switchtec NTB in multi-partition setups")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/ntb/hw/mscc/ntb_hw_switchtec.c

index 9916bc5b6759a93dfb7e7e5b3a80b42dc62d2b63..313f6258c4249ef94e57756e5562df090fe0e35a 100644 (file)
@@ -899,7 +899,7 @@ static int switchtec_ntb_init_sndev(struct switchtec_ntb *sndev)
                }
 
                sndev->peer_partition = ffs(tpart_vec) - 1;
-               if (!(part_map & (1 << sndev->peer_partition))) {
+               if (!(part_map & (1ULL << sndev->peer_partition))) {
                        dev_err(&sndev->stdev->dev,
                                "ntb target partition is not NT partition\n");
                        return -ENODEV;