From patchwork Wed May 25 14:37:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Gardner X-Patchwork-Id: 1635496 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=Xfp0u9Kc; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4L7Yb92nDtz9sG0 for ; Thu, 26 May 2022 00:38:28 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nts9X-0007bd-2o; Wed, 25 May 2022 14:38:23 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-0.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nts9V-0007bG-8Z for kernel-team@lists.ubuntu.com; Wed, 25 May 2022 14:38:21 +0000 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 157BF3F62F for ; Wed, 25 May 2022 14:38:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1653489501; bh=G2kRzfBHOq9DuLe8YI4cZ2Ob2wL/x34aUP8mflTRge4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Xfp0u9KcciHeBrMe5TAlkQ67c4R+lWLSCm2tkCDmILu6zG6/uZTifb772tvxltS9y WjGDIeFv53a1j2YhigH2URaRmH4pMLSEw60MN9iOwjPgHJMMbZg5GqiJToJuhyGn3D rc+furgkJPqrCdsNU18ZlppVr6+59QR+gNjlgOPSSHv8/nMbAnZVMty6/4qDVZNJa1 3tkrPiS6/GBYAfHHBIbzvO3EhMgexMy7DMnGoqQNQJY1fsj/A42YwewJPlh/Y36LvX 1pDlFqM1yYdF9YyIMgibUG39fMLluY+XmDco0rGGI181NRvjvjbdyZviMM+8K/KwGR Jrj9U4PN36Nww== Received: by mail-pl1-f199.google.com with SMTP id x23-20020a170902b41700b0015ea144789fso11550229plr.13 for ; Wed, 25 May 2022 07:38:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G2kRzfBHOq9DuLe8YI4cZ2Ob2wL/x34aUP8mflTRge4=; b=5kN9FaVPk3mzbcnwSjoFkNBDnI5dEAoDkOpaUKlKpTovVtP90JfynzXRCDdd8pBVUW UIIHlkiIqyBNnOaH/NDtccW8dKilJ2JrezSLq4UBN+IbFj4YB8wl2KpdxNy0c+p+t5zX 4lQefVquVwqEg8KEy1rTbKVlwQI552qR5e/XzNp4PTclympB3NKYSjtTE+WIBJZKPd9O k/VasQsawr8KRNCGbRn0wYDF8eQOOurCzr96YawURjNqBYQHLb2JHcVrryBF0mq4+FxR 8GWxJFqh+u6WZvpv21ytXwcq4Oyxv3H4MQWl6E/rQddJiJoqCnoyFxPuqOjNTJ+etDZd 42UQ== X-Gm-Message-State: AOAM532xQ9Hx1/FbCzUAeZwWhBt85ZmyJurNNBq94EQGBDrzse9W75es 5n3bf8sB+wVRPytLpa/mJLtY1xWGAYRxBXCDlkVzp53uqy9TfvMSREPqg2y+hU0f07XuHqqRB5U kEOst1VkCXJjFFa3hyfJAOLiD4U9+jg5oR1cftkHEKw== X-Received: by 2002:a63:2a8d:0:b0:3f9:d9f9:a5c4 with SMTP id q135-20020a632a8d000000b003f9d9f9a5c4mr19895882pgq.614.1653489499405; Wed, 25 May 2022 07:38:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzYneLh2QEHI0QFpPGzlRrom1kzZhuALyM12YubnZKGBGrB5z5lEQVgvg2Q4lf+eNZKysMHLg== X-Received: by 2002:a63:2a8d:0:b0:3f9:d9f9:a5c4 with SMTP id q135-20020a632a8d000000b003f9d9f9a5c4mr19895860pgq.614.1653489499112; Wed, 25 May 2022 07:38:19 -0700 (PDT) Received: from localhost.localdomain ([69.163.84.166]) by smtp.gmail.com with ESMTPSA id n2-20020a170902d2c200b0015e8d4eb23asm9639032plc.132.2022.05.25.07.38.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 May 2022 07:38:17 -0700 (PDT) From: Tim Gardner To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/2] Drivers: hv: vmbus: Rework use of DMA_BIT_MASK(64) Date: Wed, 25 May 2022 08:37:39 -0600 Message-Id: <20220525143740.16014-2-tim.gardner@canonical.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220525143740.16014-1-tim.gardner@canonical.com> References: <20220525143740.16014-1-tim.gardner@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michael Kelley BugLink: https://bugs.launchpad.net/bugs/1975717 Using DMA_BIT_MASK(64) as an initializer for a global variable causes problems with Clang 12.0.1. The compiler doesn't understand that value 64 is excluded from the shift at compile time, resulting in a build error. While this is a compiler problem, avoid the issue by setting up the dma_mask memory as part of struct hv_device, and initialize it using dma_set_mask(). Reported-by: Nathan Chancellor Reported-by: Vitaly Chikunov Reported-by: Jakub Kicinski Fixes: 743b237c3a7b ("scsi: storvsc: Add Isolation VM support for storvsc driver") Signed-off-by: Michael Kelley Reviewed-by: Nathan Chancellor Tested-by: Nathan Chancellor Link: https://lore.kernel.org/r/1644176216-12531-1-git-send-email-mikelley@microsoft.com Signed-off-by: Wei Liu (cherry picked from commit 6bf625a4140f24b490766043b307f8252519578b) Signed-off-by: Tim Gardner --- drivers/hv/vmbus_drv.c | 4 ++-- include/linux/hyperv.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 72d2911d1ed4..0ae5758b0076 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -2100,7 +2100,6 @@ struct hv_device *vmbus_device_create(const guid_t *type, return child_device_obj; } -static u64 vmbus_dma_mask = DMA_BIT_MASK(64); /* * vmbus_device_register - Register the child device */ @@ -2141,8 +2140,9 @@ int vmbus_device_register(struct hv_device *child_device_obj) } hv_debug_add_dev_dir(child_device_obj); - child_device_obj->device.dma_mask = &vmbus_dma_mask; child_device_obj->device.dma_parms = &child_device_obj->dma_parms; + child_device_obj->device.dma_mask = &child_device_obj->dma_mask; + dma_set_mask(&child_device_obj->device, DMA_BIT_MASK(64)); return 0; err_kset_unregister: diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 8e18ecfae674..148b075be922 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h @@ -1292,6 +1292,7 @@ struct hv_device { struct vmbus_channel *channel; struct kset *channels_kset; struct device_dma_parameters dma_parms; + u64 dma_mask; /* place holder to keep track of the dir for hv device in debugfs */ struct dentry *debug_dir; From patchwork Wed May 25 14:37:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Gardner X-Patchwork-Id: 1635498 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=hZ9VSSkF; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4L7YbB0vzKz9sG4 for ; Thu, 26 May 2022 00:38:29 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nts9Z-0007d6-FX; Wed, 25 May 2022 14:38:25 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nts9X-0007bh-88 for kernel-team@lists.ubuntu.com; Wed, 25 May 2022 14:38:23 +0000 Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id F09733F1D3 for ; Wed, 25 May 2022 14:38:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1653489502; bh=DLtAJItQzyoWELJBEL9gKhkzhj2b7aH5w6YdkNxeNrc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hZ9VSSkF3YD85xjdHuxsf9ksiHwOhj1x0BENKvZeFCL+XYkLoXmDO1SRHnNeymjlZ z+L4QHZ6qef4ScmUOaBT3FcWzfZ8nqV1F0KHB61760DP9Ru23vmdfL3a8povkC476N ZO0FvohIgv3fqlw2jM3OwM5/cM4Lug8FTgIZ6CpTxQ9gMSB7CmA/kp7rwFbJOF+Snj 5vEJuPzXIV9UsV+CgeTWxkbqxI7xT9+zpZhw/q5DnMUbjZHKFiJkiuy8sv7VbXMoNg puw6E0q1zjKTuu9tvSYzD9Be8otHsOyiJjhlwqkJjEKFSLqp7xlBae977NIMExIOFn wVamEz4558j8Q== Received: by mail-pg1-f199.google.com with SMTP id i9-20020a632209000000b003facc62e253so1347671pgi.11 for ; Wed, 25 May 2022 07:38:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DLtAJItQzyoWELJBEL9gKhkzhj2b7aH5w6YdkNxeNrc=; b=S3CV0nhKpoKgr8qVX6qpXetztkHHXo4OYiSuUmg4wV/C1FRKDeWkdD4C2paENhRW6D DLcmF1CcnJRBwVkTif15S20tsemgsKqN5prcNq6WnGmC8U0EkCrdIu1V2D+IGd0e+UIh kEiY2IKq0xJi74CRTZxH6I9o2XqP4d5DNCL69rqL3RbtYznIYr3Ri77BJI0+WXQNpJq5 Vy8gcwIPc5au1nOeTeqGbMds5sOm9lOXiCRYOlnQS23GKx4UtPHLX3cO914410ffhEZg 0lLXtDaIS8l8K4DEZ0lkcLrz5x9N2k+tlg5HaoguUJ/WK3kfMguojVii2JzvKUUlvqMn FTGg== X-Gm-Message-State: AOAM531vWoFchEcWIavp4YQ1Rlp9SHHyNxQtVk4JorPk7LYqVNwRlydC g3fdTsAqeIuRE0sE55zV5Tjh77XiTTYS5Jn9XlGwDu3iuI3+NWViCR4V7/OhbFaES2QSkR6oTRu uI34LAYN6MCBsB+2ptHuT4FqYbu7VZtVTc7P6EmkOpg== X-Received: by 2002:a65:6a50:0:b0:3f6:4566:581d with SMTP id o16-20020a656a50000000b003f64566581dmr27125705pgu.122.1653489501240; Wed, 25 May 2022 07:38:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy1pPxUlIrUf1DSwzC2a2jRgmvXDCE/LHCNYnLNO0/p/Up0OLq63KhLv1f46ZWWzZMNaYO8Ww== X-Received: by 2002:a65:6a50:0:b0:3f6:4566:581d with SMTP id o16-20020a656a50000000b003f64566581dmr27125680pgu.122.1653489500857; Wed, 25 May 2022 07:38:20 -0700 (PDT) Received: from localhost.localdomain ([69.163.84.166]) by smtp.gmail.com with ESMTPSA id n2-20020a170902d2c200b0015e8d4eb23asm9639032plc.132.2022.05.25.07.38.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 May 2022 07:38:19 -0700 (PDT) From: Tim Gardner To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/2] Drivers: hv: vmbus: Fix initialization of device object in vmbus_device_register() Date: Wed, 25 May 2022 08:37:40 -0600 Message-Id: <20220525143740.16014-3-tim.gardner@canonical.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220525143740.16014-1-tim.gardner@canonical.com> References: <20220525143740.16014-1-tim.gardner@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: "Andrea Parri (Microsoft)" BugLink: https://bugs.launchpad.net/bugs/1975717 Initialize the device's dma_{mask,parms} pointers and the device's dma_mask value before invoking device_register(). Address the following trace with 5.17-rc7: [ 49.646839] WARNING: CPU: 0 PID: 189 at include/linux/dma-mapping.h:543 netvsc_probe+0x37a/0x3a0 [hv_netvsc] [ 49.646928] Call Trace: [ 49.646930] [ 49.646935] vmbus_probe+0x40/0x60 [hv_vmbus] [ 49.646942] really_probe+0x1ce/0x3b0 [ 49.646948] __driver_probe_device+0x109/0x180 [ 49.646952] driver_probe_device+0x23/0xa0 [ 49.646955] __device_attach_driver+0x76/0xe0 [ 49.646958] ? driver_allows_async_probing+0x50/0x50 [ 49.646961] bus_for_each_drv+0x84/0xd0 [ 49.646964] __device_attach+0xed/0x170 [ 49.646967] device_initial_probe+0x13/0x20 [ 49.646970] bus_probe_device+0x8f/0xa0 [ 49.646973] device_add+0x41a/0x8e0 [ 49.646975] ? hrtimer_init+0x28/0x80 [ 49.646981] device_register+0x1b/0x20 [ 49.646983] vmbus_device_register+0x5e/0xf0 [hv_vmbus] [ 49.646991] vmbus_add_channel_work+0x12d/0x190 [hv_vmbus] [ 49.646999] process_one_work+0x21d/0x3f0 [ 49.647002] worker_thread+0x4a/0x3b0 [ 49.647005] ? process_one_work+0x3f0/0x3f0 [ 49.647007] kthread+0xff/0x130 [ 49.647011] ? kthread_complete_and_exit+0x20/0x20 [ 49.647015] ret_from_fork+0x22/0x30 [ 49.647020] [ 49.647021] ---[ end trace 0000000000000000 ]--- Fixes: 743b237c3a7b0 ("scsi: storvsc: Add Isolation VM support for storvsc driver") Signed-off-by: Andrea Parri (Microsoft) Reviewed-by: Michael Kelley Link: https://lore.kernel.org/r/20220315141053.3223-1-parri.andrea@gmail.com Signed-off-by: Wei Liu (cherry picked from commit 3a5469582c241abca22500f36a9cb8e9331969cf) Signed-off-by: Tim Gardner --- drivers/hv/vmbus_drv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 0ae5758b0076..755c662a524f 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -2115,6 +2115,10 @@ int vmbus_device_register(struct hv_device *child_device_obj) child_device_obj->device.parent = &hv_acpi_dev->dev; child_device_obj->device.release = vmbus_device_release; + child_device_obj->device.dma_parms = &child_device_obj->dma_parms; + child_device_obj->device.dma_mask = &child_device_obj->dma_mask; + dma_set_mask(&child_device_obj->device, DMA_BIT_MASK(64)); + /* * Register with the LDM. This will kick off the driver/device * binding...which will eventually call vmbus_match() and vmbus_probe() @@ -2140,9 +2144,6 @@ int vmbus_device_register(struct hv_device *child_device_obj) } hv_debug_add_dev_dir(child_device_obj); - child_device_obj->device.dma_parms = &child_device_obj->dma_parms; - child_device_obj->device.dma_mask = &child_device_obj->dma_mask; - dma_set_mask(&child_device_obj->device, DMA_BIT_MASK(64)); return 0; err_kset_unregister: