From patchwork Thu Jul 26 20:40:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gal Pressman X-Patchwork-Id: 949873 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fHT/zQg1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41c3sL6wrqz9s0n for ; Fri, 27 Jul 2018 06:41:10 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730989AbeGZV7j (ORCPT ); Thu, 26 Jul 2018 17:59:39 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:45302 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730439AbeGZV7j (ORCPT ); Thu, 26 Jul 2018 17:59:39 -0400 Received: by mail-ed1-f66.google.com with SMTP id s16-v6so2381932edq.12 for ; Thu, 26 Jul 2018 13:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=c05CcF0jv5KPU3/Uxr7k43T0/ed91GmpngLOFqjns8E=; b=fHT/zQg10VWSk1E3ok8CEaG/z9lR/kW7s0/u4wGy1TIKfSeWKI+aB4lGNVgrD9GRNM QKxVga0wBou/7KxsR8r7aRfQnwQu2oEX4vEE32/VQINEJOkdgn2blt3HO7tRvraxbnOI w4zK4KsCqtypnDYjJmKBjKivPr3j+tJCECWbCdregg02w+Dc/dTsl/gmYW7BDxEvhUcy RGc92I4W1cdnWYHE64l+GuWQXNrveHYN7Fb0Hy9aoUuWcmiIXW1+djOPz3Pzx6Aw4A+c RqMM8JsOlkNDE2ysYecg6hFBXlO2q3tDq2uYTEJRqKj0MciWxzZW6HZaDJ/8B+Apovvo m9zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=c05CcF0jv5KPU3/Uxr7k43T0/ed91GmpngLOFqjns8E=; b=R6WBNmoU+X62zsqja3XISKymgFZhPqvS8zBjk2W1Kjg4QMwbbA1jZHW+3wr6mwzr78 1sNdtyHf5mApBYoDHTAFoFwaTSXWCbLfLa4xJffvUiMYnVypDVGxnJCnRN1BPM7Sdkc9 e2rsneHnYs1D/6nyYOI5ZuvCGOKWERlSLLMpYemHOPBDN5FHNbqllBjiU4JIO/MfvqCn OUL9n/0grqDNiF9MsbwbZH56++nKWqus1M8zn4g7yJaVcYhGKQ5ke5XwW2zNQtegigho n0ytKJaoS48IZB0Wr8PEDoI1WlLQOCnnQmamORchL1to12YNvnHWt5cM3TICFhjoVLMr jwxw== X-Gm-Message-State: AOUpUlHf54D+u4t/fqJDu7i1sC3hG1fmucURJDPVOqk9fFhOkiU7uRFP zIxXNbJXWhaWf7Pv38Bu66GcEsrb+Fz0mg== X-Google-Smtp-Source: AAOMgpcHFWVlumRpeCvexBTtYiN5NvY5RCkQrcRtND1NAFm9e7we5fj5Vm5VgLY5sO7Nkj8r9UZMvA== X-Received: by 2002:a50:94c4:: with SMTP id t4-v6mr4146973eda.128.1532637667164; Thu, 26 Jul 2018 13:41:07 -0700 (PDT) Received: from a-314bh6t9fh21n.eu-west-1.compute.internal (ec2-52-214-2-46.eu-west-1.compute.amazonaws.com. [52.214.2.46]) by smtp.gmail.com with ESMTPSA id k16-v6sm1073408edq.89.2018.07.26.13.41.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Jul 2018 13:41:06 -0700 (PDT) From: Gal Pressman To: netdev@vger.kernel.org, Netanel Belgazal Cc: Gal Pressman Subject: [PATCH net] net: ena: Fix use of uninitialized DMA address bits field Date: Thu, 26 Jul 2018 23:40:33 +0300 Message-Id: <20180726204033.5753-1-pressmangal@gmail.com> X-Mailer: git-send-email 2.14.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org UBSAN triggers the following undefined behaviour warnings: [...] [ 13.236124] UBSAN: Undefined behaviour in drivers/net/ethernet/amazon/ena/ena_eth_com.c:468:22 [ 13.240043] shift exponent 64 is too large for 64-bit type 'long long unsigned int' [...] [ 13.744769] UBSAN: Undefined behaviour in drivers/net/ethernet/amazon/ena/ena_eth_com.c:373:4 [ 13.748694] shift exponent 64 is too large for 64-bit type 'long long unsigned int' [...] When splitting the address to high and low, GENMASK_ULL is used to generate a bitmask with dma_addr_bits field from io_sq (in ena_com_prepare_tx and ena_com_add_single_rx_desc). The problem is that dma_addr_bits is not initialized with a proper value (besides being cleared in ena_com_create_io_queue). Assign dma_addr_bits the correct value that is stored in ena_dev when initializing the SQ. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Gal Pressman --- drivers/net/ethernet/amazon/ena/ena_com.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c index 1b9d3130af4d..17f12c18d225 100644 --- a/drivers/net/ethernet/amazon/ena/ena_com.c +++ b/drivers/net/ethernet/amazon/ena/ena_com.c @@ -333,6 +333,7 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev, memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr)); + io_sq->dma_addr_bits = ena_dev->dma_addr_bits; io_sq->desc_entry_size = (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) ? sizeof(struct ena_eth_io_tx_desc) :