From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 916FBC2BB1D for ; Mon, 16 Mar 2020 17:55:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 696F52071C for ; Mon, 16 Mar 2020 17:55:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Y/R6qyTP" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732230AbgCPRz0 (ORCPT ); Mon, 16 Mar 2020 13:55:26 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:35913 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731891AbgCPRz0 (ORCPT ); Mon, 16 Mar 2020 13:55:26 -0400 Received: by mail-wr1-f67.google.com with SMTP id s5so22449552wrg.3 for ; Mon, 16 Mar 2020 10:55:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=Y/R6qyTPo9TH/wBiHH7KTVuPGU3xiYNdjGryws2oZjJT4EdE1Ukovm/qw0EUnU24gU S55BE2BmG4HOCtOwEOXGyy7AXs7ku0tleXQgOw9PFvVcXjBuY7X76ik6J67WXOAkluwY N8AUX6GldQgLMC2mjOJDUYeeFD61OI8upFJvU0u4LMkkLTWuKAqoRyeRXtYobTQC3CM1 DhcjEhjnIN+SU8WqnWGyVuamv6HlAzsykRt5ewg6nLfQTUffQQtYpl8UmUJbnXxtaH9t SxVsykhhy/G0nCc53h3pcXuufWOU2IhPvnEjecW1aIFH4e1Rdj9IpsbjZMLyQjBC3MnB v6Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=O5WoVhgPtx1ZN9Rkf/st8K3hfl+63N16UPZK9dMKZzwiLA85oUB/QnXw2plDiKc8k4 /vLxDS9d5z/uW/7KUX6TcBkJyT6PINk8f8j0OYfm+Eb8UfnoiAQ7geW6fETwzOYJGFoK +y22ZbNYfPS9j3XavyR0pIC/buYcMjimwXOQyC2dy9YocE2F8RHFlVAPoFKY2KOZ3MS6 oScI9ylmD12nlzNYmZF4gICCOzzsX8AlTGxkdJd8Qnx3tKjfVI37WM7wo80C2Ddsf2do yEDhBYq5JDUunItaYWbgeu1ElFYY31JDJioi0sK860kdQ92NphHonrbdwDsCsbDY7z0z Wckw== X-Gm-Message-State: ANhLgQ0qPzg3/E67PNIW2nTXNMXg+J+ndjhJsRzOV7D+ey2E2ngD6Jdm stj6spCVBpUMX2I6ws/DaI1wpQ== X-Google-Smtp-Source: ADFU+vuHWkRqgMn4prXCXTnSNDBAjWBUzoa8syi0tqbAh8eRnR4X3rD/HVE1PtCHryXLNIoYPL6aMQ== X-Received: by 2002:adf:f14a:: with SMTP id y10mr485041wro.325.1584381324158; Mon, 16 Mar 2020 10:55:24 -0700 (PDT) Received: from myrica ([2001:171b:226b:54a0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id n10sm964333wro.14.2020.03.16.10.55.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2020 10:55:23 -0700 (PDT) Date: Mon, 16 Mar 2020 18:55:15 +0100 From: Jean-Philippe Brucker To: Joerg Roedel Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mediatek@lists.infradead.org, virtualization@lists.linux-foundation.org, Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Rob Clark , Sean Paul , Will Deacon , Robin Murphy , Matthias Brugger , Thierry Reding , Andy Gross , Bjorn Andersson , Joerg Roedel Subject: Re: [PATCH 10/15] iommu/arm-smmu: Use accessor functions for iommu private data Message-ID: <20200316175515.GP304669@myrica> References: <20200310091229.29830-1-joro@8bytes.org> <20200310091229.29830-11-joro@8bytes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200310091229.29830-11-joro@8bytes.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Tue, Mar 10, 2020 at 10:12:24AM +0100, Joerg Roedel wrote: > From: Joerg Roedel > > Make use of dev_iommu_priv_set/get() functions and simplify the code > where possible with this change. > > Tested-by: Will Deacon # arm-smmu > Signed-off-by: Joerg Roedel > --- [...] > @@ -1467,7 +1470,7 @@ static void arm_smmu_remove_device(struct device *dev) > if (!fwspec || fwspec->ops != &arm_smmu_ops) > return; > > - cfg = fwspec->iommu_priv; > + cfg = dev_iommu_priv_get(dev); > smmu = cfg->smmu; > > ret = arm_smmu_rpm_get(smmu); > @@ -1475,23 +1478,22 @@ static void arm_smmu_remove_device(struct device *dev) > return; > > iommu_device_unlink(&smmu->iommu, dev); > - arm_smmu_master_free_smes(fwspec); > + arm_smmu_master_free_smes(dev); > > arm_smmu_rpm_put(smmu); > > iommu_group_remove_device(dev); > - kfree(fwspec->iommu_priv); > iommu_fwspec_free(dev); > + kfree(cfg); nit: cfg is allocated after fwspec so it might be cleaner to free cfg before fwspec. But more importantly, should we clear the private data here and in the other drivers, by calling dev_iommu_priv_set(dev, NULL) from remove_device()? We are leaving stale pointers in dev->iommu and I think some of the drivers could end up reusing them. Thanks, Jean From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82805C0044D for ; Mon, 16 Mar 2020 17:55:32 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 411BC20658 for ; Mon, 16 Mar 2020 17:55:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Y/R6qyTP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 411BC20658 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 23E7D8908B; Mon, 16 Mar 2020 17:55:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pzwf59FZ6lin; Mon, 16 Mar 2020 17:55:28 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 7F7C288E5F; Mon, 16 Mar 2020 17:55:28 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 66AD8C1D7C; Mon, 16 Mar 2020 17:55:28 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 73C3FC013E for ; Mon, 16 Mar 2020 17:55:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 6258B88BB5 for ; Mon, 16 Mar 2020 17:55:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wZw+7w5+0Goq for ; Mon, 16 Mar 2020 17:55:26 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by hemlock.osuosl.org (Postfix) with ESMTPS id DF37388609 for ; Mon, 16 Mar 2020 17:55:25 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id s5so22449553wrg.3 for ; Mon, 16 Mar 2020 10:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=Y/R6qyTPo9TH/wBiHH7KTVuPGU3xiYNdjGryws2oZjJT4EdE1Ukovm/qw0EUnU24gU S55BE2BmG4HOCtOwEOXGyy7AXs7ku0tleXQgOw9PFvVcXjBuY7X76ik6J67WXOAkluwY N8AUX6GldQgLMC2mjOJDUYeeFD61OI8upFJvU0u4LMkkLTWuKAqoRyeRXtYobTQC3CM1 DhcjEhjnIN+SU8WqnWGyVuamv6HlAzsykRt5ewg6nLfQTUffQQtYpl8UmUJbnXxtaH9t SxVsykhhy/G0nCc53h3pcXuufWOU2IhPvnEjecW1aIFH4e1Rdj9IpsbjZMLyQjBC3MnB v6Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=fo5JcBEcy19LKtMQLQRB1uuQ79I/IGH9dy4fgIhoC7OH1VhW+RGDkrUhH/tNRD+G+3 5Z8yWD7JC/gzDRSfbhv9Sp/sUmv4agIhDtnY5bgiPGbZNUk92CGCQ7LZLa/wVt+5jfsY z2WbqqydgkACe+5eW0hpY770DF2SC/9kbYdA6Gp7zMU4gFRqF1Dh20GL83uUe/54C3rv 2+f5VYvzTgWDewqlyGd/grTlFZJZ/ZIDsU30KcXXTr1WsbUjup2OYEJ0xfRIcjvwIUL1 Hj1XPMUndWxAr4MgoluRUargozTWV59bqGTU0PdPiFC+HmBxr0voxi7TNbjMk2MKEttu zsmw== X-Gm-Message-State: ANhLgQ00ijjP/Lf5Sh3bdVXRIHOI2GsmjT5rheAVY4f0Iykv6/Hvhi3t hT/P70Voe7eFsLQypdhHZVvVcw== X-Google-Smtp-Source: ADFU+vuHWkRqgMn4prXCXTnSNDBAjWBUzoa8syi0tqbAh8eRnR4X3rD/HVE1PtCHryXLNIoYPL6aMQ== X-Received: by 2002:adf:f14a:: with SMTP id y10mr485041wro.325.1584381324158; Mon, 16 Mar 2020 10:55:24 -0700 (PDT) Received: from myrica ([2001:171b:226b:54a0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id n10sm964333wro.14.2020.03.16.10.55.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2020 10:55:23 -0700 (PDT) Date: Mon, 16 Mar 2020 18:55:15 +0100 From: Jean-Philippe Brucker To: Joerg Roedel Subject: Re: [PATCH 10/15] iommu/arm-smmu: Use accessor functions for iommu private data Message-ID: <20200316175515.GP304669@myrica> References: <20200310091229.29830-1-joro@8bytes.org> <20200310091229.29830-11-joro@8bytes.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200310091229.29830-11-joro@8bytes.org> Cc: Will Deacon , linux-arm-msm@vger.kernel.org, Sudeep Holla , linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, iommu@lists.linux-foundation.org, Thierry Reding , linux-mediatek@lists.infradead.org, Andy Gross , Joerg Roedel , Hanjun Guo , Matthias Brugger , Bjorn Andersson , Sean Paul , Robin Murphy X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" On Tue, Mar 10, 2020 at 10:12:24AM +0100, Joerg Roedel wrote: > From: Joerg Roedel > > Make use of dev_iommu_priv_set/get() functions and simplify the code > where possible with this change. > > Tested-by: Will Deacon # arm-smmu > Signed-off-by: Joerg Roedel > --- [...] > @@ -1467,7 +1470,7 @@ static void arm_smmu_remove_device(struct device *dev) > if (!fwspec || fwspec->ops != &arm_smmu_ops) > return; > > - cfg = fwspec->iommu_priv; > + cfg = dev_iommu_priv_get(dev); > smmu = cfg->smmu; > > ret = arm_smmu_rpm_get(smmu); > @@ -1475,23 +1478,22 @@ static void arm_smmu_remove_device(struct device *dev) > return; > > iommu_device_unlink(&smmu->iommu, dev); > - arm_smmu_master_free_smes(fwspec); > + arm_smmu_master_free_smes(dev); > > arm_smmu_rpm_put(smmu); > > iommu_group_remove_device(dev); > - kfree(fwspec->iommu_priv); > iommu_fwspec_free(dev); > + kfree(cfg); nit: cfg is allocated after fwspec so it might be cleaner to free cfg before fwspec. But more importantly, should we clear the private data here and in the other drivers, by calling dev_iommu_priv_set(dev, NULL) from remove_device()? We are leaving stale pointers in dev->iommu and I think some of the drivers could end up reusing them. Thanks, Jean _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C1D6C18E5B for ; Mon, 16 Mar 2020 17:55:35 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1E10F20658 for ; Mon, 16 Mar 2020 17:55:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pdfKdshs"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Y/R6qyTP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E10F20658 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XpxVbb6hJgSc5UBGy6HCMn8TzEIswRCIi1gJpuTokJ4=; b=pdfKdshsIFpp5H PTOie/J3tq4Cm6duHFdZw+EFyyXE4u5yst3N25STZn+s85WNuKYv1tqmF8hMaKkd8axpuoNUeAlb9 9+HEljA/p7NFMKfysjv73ez/UWxucn61gw3Fi1RijRqPXxPHQB3FBevXbnw0RUAT/BgUMmrL/mvCj g5jW272aLYAaufU6punMFQwfQ69yVQFBR8cbk0K3HLElLA267ZDyZCf06V7fqbIMMO+HWReQA2sbP 5BaCy9Z3hd4BlhWM1ssgpoKPQXg0sY1mvr7VTttUATSYUDB63GbSTLZLRSRLI8X3Zy60N4mIz6iqy 3IoDeCd+TyFvnsX4ygJA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jDtxY-0000za-Fy; Mon, 16 Mar 2020 17:55:28 +0000 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jDtxV-0000z2-Mj for linux-mediatek@lists.infradead.org; Mon, 16 Mar 2020 17:55:27 +0000 Received: by mail-wr1-x444.google.com with SMTP id s1so665609wrv.5 for ; Mon, 16 Mar 2020 10:55:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=Y/R6qyTPo9TH/wBiHH7KTVuPGU3xiYNdjGryws2oZjJT4EdE1Ukovm/qw0EUnU24gU S55BE2BmG4HOCtOwEOXGyy7AXs7ku0tleXQgOw9PFvVcXjBuY7X76ik6J67WXOAkluwY N8AUX6GldQgLMC2mjOJDUYeeFD61OI8upFJvU0u4LMkkLTWuKAqoRyeRXtYobTQC3CM1 DhcjEhjnIN+SU8WqnWGyVuamv6HlAzsykRt5ewg6nLfQTUffQQtYpl8UmUJbnXxtaH9t SxVsykhhy/G0nCc53h3pcXuufWOU2IhPvnEjecW1aIFH4e1Rdj9IpsbjZMLyQjBC3MnB v6Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=KZCpP6b3rcDrFb5nL77Llc1TqP6zJQRoyalcv/Uk/U4=; b=h0JiS2s7iJji+WvI11HUbMocTQr472Xy7lC12dB+qKhHGgvdVCRuRZ9OeNbCj9rHS3 86DzXa0kMRHIdGcKTZSz0yuAErRb40ylLqvXupmtZ38NBiNWlm+6JR5YgRKAa2nfyc9E wKSPMNE7txzEKiLBi8ldjilQqilKreX0x6moCT19SbPfqVE7hUcYMWEtehOt4yQFv+eK 2HAIFrLsJobJA9hXZysCpTTsLSnL36RQhWFinABuZ4LOZx4BXS6r1OV51JwMPfptv+EU +NK8ozVMhpo9sjOubephoZ7504t4I+zfKqo9IbX2ySKCez07MOElyp1HpSwCWlLvcYdV 8jmg== X-Gm-Message-State: ANhLgQ1E3gC605kRJGxfXih5zdFBbuEU1vCV1dqx6vvOriN8AHt2MXPr JjUCTM2Igr0pVFqzGvsxAbMoZMk9dQ0= X-Google-Smtp-Source: ADFU+vuHWkRqgMn4prXCXTnSNDBAjWBUzoa8syi0tqbAh8eRnR4X3rD/HVE1PtCHryXLNIoYPL6aMQ== X-Received: by 2002:adf:f14a:: with SMTP id y10mr485041wro.325.1584381324158; Mon, 16 Mar 2020 10:55:24 -0700 (PDT) Received: from myrica ([2001:171b:226b:54a0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id n10sm964333wro.14.2020.03.16.10.55.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2020 10:55:23 -0700 (PDT) Date: Mon, 16 Mar 2020 18:55:15 +0100 From: Jean-Philippe Brucker To: Joerg Roedel Subject: Re: [PATCH 10/15] iommu/arm-smmu: Use accessor functions for iommu private data Message-ID: <20200316175515.GP304669@myrica> References: <20200310091229.29830-1-joro@8bytes.org> <20200310091229.29830-11-joro@8bytes.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200310091229.29830-11-joro@8bytes.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200316_105525_743385_820EFD0F X-CRM114-Status: GOOD ( 11.68 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , Lorenzo Pieralisi , Will Deacon , linux-arm-msm@vger.kernel.org, Sudeep Holla , linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, iommu@lists.linux-foundation.org, Thierry Reding , linux-mediatek@lists.infradead.org, Andy Gross , Joerg Roedel , Hanjun Guo , Matthias Brugger , Bjorn Andersson , Sean Paul , Robin Murphy Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Tue, Mar 10, 2020 at 10:12:24AM +0100, Joerg Roedel wrote: > From: Joerg Roedel > > Make use of dev_iommu_priv_set/get() functions and simplify the code > where possible with this change. > > Tested-by: Will Deacon # arm-smmu > Signed-off-by: Joerg Roedel > --- [...] > @@ -1467,7 +1470,7 @@ static void arm_smmu_remove_device(struct device *dev) > if (!fwspec || fwspec->ops != &arm_smmu_ops) > return; > > - cfg = fwspec->iommu_priv; > + cfg = dev_iommu_priv_get(dev); > smmu = cfg->smmu; > > ret = arm_smmu_rpm_get(smmu); > @@ -1475,23 +1478,22 @@ static void arm_smmu_remove_device(struct device *dev) > return; > > iommu_device_unlink(&smmu->iommu, dev); > - arm_smmu_master_free_smes(fwspec); > + arm_smmu_master_free_smes(dev); > > arm_smmu_rpm_put(smmu); > > iommu_group_remove_device(dev); > - kfree(fwspec->iommu_priv); > iommu_fwspec_free(dev); > + kfree(cfg); nit: cfg is allocated after fwspec so it might be cleaner to free cfg before fwspec. But more importantly, should we clear the private data here and in the other drivers, by calling dev_iommu_priv_set(dev, NULL) from remove_device()? We are leaving stale pointers in dev->iommu and I think some of the drivers could end up reusing them. Thanks, Jean _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek