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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 28 Jul 2015 17:58:47 -0700
From:	"Zhang, Jonathan Zhixiong" <zjzhang@...eaurora.org>
To:	Matt Fleming <matt.fleming@...el.com>,
	Will Deacon <will.deacon@....com>
Cc:	Catalin Marinas <Catalin.Marinas@....com>,
	"fu.wei@...aro.org" <fu.wei@...aro.org>,
	"al.stone@...aro.org" <al.stone@...aro.org>,
	"rjw@...ysocki.net" <rjw@...ysocki.net>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linaro-acpi@...ts.linaro.org" <linaro-acpi@...ts.linaro.org>
Subject: Re: [PATCH V7 4/5] arm64: apei: implement
 arch_apei_get_mem_attributes()

On 7/27/2015 2:54 AM, Matt Fleming wrote:
> On Mon, 2015-07-27 at 10:45 +0100, Will Deacon wrote:
>>
>> That bit's fine. The weird bit is:
>>
>>    pgprot_t prot;
>>
>>    prot = efi_mem_attributes(addr);
>>
>> Since that's putting the arch-independent format into the pg_prot.
>
> Oops, missed that. Yeah that's funky.
Sorry, that was my mistake. Corrected at V8.
>>> I don't see how you can do that any other way than by using pgprot_t.
>>>
>>> Really, the problem here is that ioremap_page_caller() has no notion of
>>> "map this range in a firmware-compatible manner". If we could do, for
>>> example,
>>>
>>> 	ioremap_page_range(vaddr, vend, paddr, PAGE_FW_COMPAT);
>>>
>>> that would allow the innards of the arch-ioremap to figure out exactly
>>> how to map this range so that the firmware could access it coherently.
With this patch set, arch_apei_get_mem_attribute() is defined for above
mentioned PAGE_FW_COMPAT. If in future there are additional use case for
mapping page in atomic context according to UEFI memory map, the
function name/definition can be generalized.
>>>
>>> I suggested this previously but it didn't gain any traction.
>>
>> Yeah, or just ioremap_efi.
>>
>> </me runs away>
>
> Someone beat you to it ;-)
>
> arch/x86/include/asm/efi.h:#define efi_ioremap(addr, size, type, attr)	ioremap_cache(addr, size)
> arch/x86/include/asm/efi.h:extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
> arch/x86/platform/efi/efi.c:		va = efi_ioremap(md->phys_addr, size,
> arch/x86/platform/efi/efi_64.c:void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
> arch/x86/platform/efi/efi_64.c:		efi_ioremap(top, size - (top - phys_addr), type, attribute);
x86's efi_ioremap() is intended to run at init time only. For the
purpose of this patch set, we would need to define something new
for both archs. We may want to keep it simple at this time, how do you
prefer?

-- 
Jonathan (Zhixiong) Zhang
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists