Netdev List
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org, Leon Romanovsky <leonro@mellanox.com>,
	Saeed Mahameed <saeedm@mellanox.com>
Subject: [net-next V2 11/15] net/mlx5: Protect from command bit overflow
Date: Mon, 26 Mar 2018 13:55:59 -0700	[thread overview]
Message-ID: <20180326205603.9450-12-saeedm@mellanox.com> (raw)
In-Reply-To: <20180326205603.9450-1-saeedm@mellanox.com>

From: Leon Romanovsky <leonro@mellanox.com>

The system with CONFIG_UBSAN enabled on produces the following error
during driver initialization. The reason to it that max_reg_cmds can be
larger enough to cause to "1 << max_reg_cmds" overflow the unsigned long.

================================================================================
UBSAN: Undefined behaviour in drivers/net/ethernet/mellanox/mlx5/core/cmd.c:1805:42
signed integer overflow:
-2147483648 - 1 cannot be represented in type 'int'
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.15.0-rc2-00032-g06cda2358d9b-dirty #724
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
Call Trace:
 dump_stack+0xe9/0x18f
 ? dma_virt_alloc+0x81/0x81
 ubsan_epilogue+0xe/0x4e
 handle_overflow+0x187/0x20c
 mlx5_cmd_init+0x73a/0x12b0
 mlx5_load_one+0x1c3d/0x1d30
 init_one+0xd02/0xf10
 pci_device_probe+0x26c/0x3b0
 driver_probe_device+0x622/0xb40
 __driver_attach+0x175/0x1b0
 bus_for_each_dev+0xef/0x190
 bus_add_driver+0x2db/0x490
 driver_register+0x16b/0x1e0
 __pci_register_driver+0x177/0x1b0
 init+0x6d/0x92
 do_one_initcall+0x15b/0x270
 kernel_init_freeable+0x2d8/0x3d0
 kernel_init+0x14/0x190
 ret_from_fork+0x24/0x30
================================================================================

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index fe5428667ad1..21cd1703a862 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -1804,7 +1804,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev)
 
 	cmd->checksum_disabled = 1;
 	cmd->max_reg_cmds = (1 << cmd->log_sz) - 1;
-	cmd->bitmask = (1 << cmd->max_reg_cmds) - 1;
+	cmd->bitmask = (1UL << cmd->max_reg_cmds) - 1;
 
 	cmd->cmdif_rev = ioread32be(&dev->iseg->cmdif_rev_fw_sub) >> 16;
 	if (cmd->cmdif_rev > CMD_IF_REV) {
-- 
2.14.3

  parent reply	other threads:[~2018-03-26 20:56 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-26 20:55 [pull request][net-next V2 00/15] Mellanox, mlx5 misc updates 2018-03-22 Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 01/15] net/mlx5e: Expose PFC stall prevention counters Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 02/15] ethtool: Add support for configuring PFC stall prevention in ethtool Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 03/15] net/mlx5e: PFC stall prevention support Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 04/15] net/mlx5: Add support for QUERY_VNIC_ENV command Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 05/15] net/mlx5e: Add vnic steering drop statistics Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 06/15] net/mlx5: Add packet dropped while vport down statistics Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 07/15] net/mlx5e: Add interface down dropped packets statistics Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 08/15] net/mlx5: E-Switch, Use same source for offloaded actions check Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 09/15] net/mlx5: Add core support for vlan push/pop steering action Saeed Mahameed
2018-03-26 20:55 ` [net-next V2 10/15] net/mlx5e: Offload tc vlan push/pop using HW action Saeed Mahameed
2018-03-26 20:55 ` Saeed Mahameed [this message]
2018-03-26 20:56 ` [net-next V2 12/15] net/mlx5e: Remove redundant check in get ethtool stats Saeed Mahameed
2018-03-26 20:56 ` [net-next V2 13/15] net/mlx5e: Make choose LRO timeout function static Saeed Mahameed
2018-03-26 20:56 ` [net-next V2 14/15] net/mlx5e: Add a helper macro in set features ndo Saeed Mahameed
2018-03-26 20:56 ` [net-next V2 15/15] net/mlx5e: Add VLAN offload features to hw_enc_features Saeed Mahameed
2018-03-27 15:05 ` [pull request][net-next V2 00/15] Mellanox, mlx5 misc updates 2018-03-22 David Miller

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=20180326205603.9450-12-saeedm@mellanox.com \
    --to=saeedm@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=leonro@mellanox.com \
    --cc=netdev@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