lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56f1fc88-baec-e1cf-109e-59978e2d16a8@arm.com>
Date:   Mon, 14 Jun 2021 18:19:29 +0100
From:   Robin Murphy <robin.murphy@....com>
To:     John Garry <john.garry@...wei.com>, joro@...tes.org,
        will@...nel.org, dwmw2@...radead.org, baolu.lu@...ux.intel.com
Cc:     linux-kernel@...r.kernel.org, iommu@...ts.linux-foundation.org,
        linuxarm@...wei.com, thunder.leizhen@...wei.com,
        chenxiang66@...ilicon.com
Subject: Re: [PATCH v12 5/5] iommu: Remove mode argument from
 iommu_set_dma_strict()

On 2021-06-14 18:03, John Garry wrote:
> On 14/06/2021 17:25, Robin Murphy wrote:
>> On 2021-06-11 13:20, John Garry wrote:
>>> We only ever now set strict mode enabled in iommu_set_dma_strict(), so
>>> just remove the argument.
>>>
>>> Signed-off-by: John Garry <john.garry@...wei.com>
>>> ---
>>>   drivers/iommu/amd/init.c    | 2 +-
>>>   drivers/iommu/intel/iommu.c | 6 +++---
>>>   drivers/iommu/iommu.c       | 5 ++---
>>>   include/linux/iommu.h       | 2 +-
>>>   4 files changed, 7 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
>>> index 0e6ae6d68f14..27e9677ec303 100644
>>> --- a/drivers/iommu/amd/init.c
>>> +++ b/drivers/iommu/amd/init.c
>>> @@ -3098,7 +3098,7 @@ static int __init parse_amd_iommu_options(char 
>>> *str)
>>>   {
>>>       for (; *str; ++str) {
>>>           if (strncmp(str, "fullflush", 9) == 0)
>>> -            iommu_set_dma_strict(true);
>>> +            iommu_set_dma_strict();
>>>           if (strncmp(str, "force_enable", 12) == 0)
>>>               amd_iommu_force_enable = true;
>>>           if (strncmp(str, "off", 3) == 0)
>>> diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
>>> index 6763e516362c..e77b8b6e7838 100644
>>> --- a/drivers/iommu/intel/iommu.c
>>> +++ b/drivers/iommu/intel/iommu.c
>>> @@ -452,7 +452,7 @@ static int __init intel_iommu_setup(char *str)
>>>               pr_warn("intel_iommu=forcedac deprecated; use 
>>> iommu.forcedac instead\n");
>>>               iommu_dma_forcedac = true;
>>>           } else if (!strncmp(str, "strict", 6)) {
>>> -            iommu_set_dma_strict(true);
>>> +            iommu_set_dma_strict();
>>>           } else if (!strncmp(str, "sp_off", 6)) {
>>>               pr_info("Disable supported super page\n");
>>>               intel_iommu_superpage = 0;
>>> @@ -4392,7 +4392,7 @@ int __init intel_iommu_init(void)
>>>            */
>>>           if (cap_caching_mode(iommu->cap)) {
>>>               pr_warn("IOMMU batching disallowed due to 
>>> virtualization\n");
>>> -            iommu_set_dma_strict(true);
>>> +            iommu_set_dma_strict();
>>>           }
>>>           iommu_device_sysfs_add(&iommu->iommu, NULL,
>>>                          intel_iommu_groups,
>>> @@ -5663,7 +5663,7 @@ static void quirk_calpella_no_shadow_gtt(struct 
>>> pci_dev *dev)
>>>       } else if (dmar_map_gfx) {
>>>           /* we have to ensure the gfx device is idle before we flush */
>>>           pci_info(dev, "Disabling batched IOTLB flush on Ironlake\n");
>>> -        iommu_set_dma_strict(true);
>>> +        iommu_set_dma_strict();
>>>       }
>>>   }
>>>   DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0040, 
>>> quirk_calpella_no_shadow_gtt);
>>> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
>>> index ccbd5d4c1a50..146cb71c7441 100644
>>> --- a/drivers/iommu/iommu.c
>>> +++ b/drivers/iommu/iommu.c
>>> @@ -350,10 +350,9 @@ static int __init iommu_dma_setup(char *str)
>>>   }
>>>   early_param("iommu.strict", iommu_dma_setup);
>>> -void iommu_set_dma_strict(bool strict)
>>> +void iommu_set_dma_strict(void)
>>>   {
>>> -    if (strict || !(iommu_cmd_line & IOMMU_CMD_LINE_STRICT))
>>
>> We shouldn't need to keep IOMMU_CMD_LINE_STRICT at all now, since it 
>> was only to prevent a driver's "default lazy" setting passed in here 
>> from downgrading an explicitly-set strict mode.
>>
>> With that cleaned up too,
>>
> 
> Patch 1/5 mentions whether the invalidation policy comes from the 
> cmdline - similar to the default domain type print - so I was going to 
> keep that.

Oh, silly me, I'd forgotten that already and was just looking at my 
local tree... Let's keep it for consistency with how we report the 
domain type then.

> And then maybe we should also set it from the deprecated x86 
> driver-specific params.

I don't think it's worth exporting more low-level guts to allow that to 
happen - tying in to iommu_set_dma_strict() would be too late, as 
before. I think the separate pr_warn()s which announce the relevant 
parameter is deprecated (but has still taken effect) should be enough.

Cheers,
Robin.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ