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] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 8 Aug 2022 10:18:42 -0500
From:   Eric DeVolder <eric.devolder@...cle.com>
To:     Baoquan He <bhe@...hat.com>
Cc:     linux-kernel@...r.kernel.org, x86@...nel.org,
        kexec@...ts.infradead.org, ebiederm@...ssion.com,
        dyoung@...hat.com, vgoyal@...hat.com, tglx@...utronix.de,
        mingo@...hat.com, bp@...en8.de, dave.hansen@...ux.intel.com,
        hpa@...or.com, nramas@...ux.microsoft.com, thomas.lendacky@....com,
        robh@...nel.org, efault@....de, rppt@...nel.org, david@...hat.com,
        sourabhjain@...ux.ibm.com, konrad.wilk@...cle.com,
        boris.ostrovsky@...cle.com
Subject: Re: [PATCH v10 1/8] crash: introduce arch/*/asm/crash.h



On 8/7/22 22:25, Baoquan He wrote:
> Hi Eric,
> 
> On 07/21/22 at 02:17pm, Eric DeVolder wrote:
>> The use of __weak is being eliminated within kexec sources.
>> The technique uses macros mapped onto inline functions in
>> order to replace __weak.
>>
>> This patchset was using __weak and so in order to replace
>> __weak, this patch introduces arch/*/asm/crash.h, patterned
>> after how kexec is moving away from __weak and to the macro
>> definitions.
> 
> Are you going to replace __weak in kexec of arll ARCHes? I don't see
> your point why all these empty header files are introduced. Wondering
> what's impacted if not adding these empty files?

Hi Baoquan,
In this patchset, to file include/linux/crash_core.h I added the line #include <asm/crash.h>.
I patterned this after how include/linux/kexec.h does #include <asm/kexec.h>.

For kexec, the items that were __weak are refactored into corresponding asm/kexec.h.

I followed suit for crash __weak items. File crash_core.h now #include's asm/crash.h and
so that file needs to be present for every arch, else build failures ensue. It turns out
x86_64 already had this file.

At this time, I was not planning on converting the other arch's __weak to asm/crash.h, but at least 
with these empty files, the infrastructure is in place for when that does occur.

Let me know if you think I need to do something different/more here.
Thanks!
eric

> 
>>
>> No functionality changed, yet.
>>
>> Signed-off-by: Eric DeVolder <eric.devolder@...cle.com>
>> ---
>>   arch/arm/include/asm/crash.h     | 5 +++++
>>   arch/arm64/include/asm/crash.h   | 5 +++++
>>   arch/ia64/include/asm/crash.h    | 5 +++++
>>   arch/m68k/include/asm/crash.h    | 5 +++++
>>   arch/mips/include/asm/crash.h    | 5 +++++
>>   arch/parisc/include/asm/crash.h  | 5 +++++
>>   arch/powerpc/include/asm/crash.h | 5 +++++
>>   arch/riscv/include/asm/crash.h   | 5 +++++
>>   arch/s390/include/asm/crash.h    | 5 +++++
>>   arch/sh/include/asm/crash.h      | 5 +++++
>>   include/linux/crash_core.h       | 2 ++
>>   11 files changed, 52 insertions(+)
>>   create mode 100644 arch/arm/include/asm/crash.h
>>   create mode 100644 arch/arm64/include/asm/crash.h
>>   create mode 100644 arch/ia64/include/asm/crash.h
>>   create mode 100644 arch/m68k/include/asm/crash.h
>>   create mode 100644 arch/mips/include/asm/crash.h
>>   create mode 100644 arch/parisc/include/asm/crash.h
>>   create mode 100644 arch/powerpc/include/asm/crash.h
>>   create mode 100644 arch/riscv/include/asm/crash.h
>>   create mode 100644 arch/s390/include/asm/crash.h
>>   create mode 100644 arch/sh/include/asm/crash.h
>>
>> diff --git a/arch/arm/include/asm/crash.h b/arch/arm/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..385646957d60
>> --- /dev/null
>> +++ b/arch/arm/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_ARM_CRASH_H
>> +#define _ASM_ARM_CRASH_H
>> +
>> +#endif /* _ASM_ARM_CRASH_H */
>> diff --git a/arch/arm64/include/asm/crash.h b/arch/arm64/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..ec8870c1ea49
>> --- /dev/null
>> +++ b/arch/arm64/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_ARM64_CRASH_H
>> +#define _ASM_ARM64_CRASH_H
>> +
>> +#endif /* _ASM_ARM64_CRASH_H */
>> diff --git a/arch/ia64/include/asm/crash.h b/arch/ia64/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..02a457cccda3
>> --- /dev/null
>> +++ b/arch/ia64/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_IA64_CRASH_H
>> +#define _ASM_IA64_CRASH_H
>> +
>> +#endif /* _ASM_IA64_CRASH_H */
>> diff --git a/arch/m68k/include/asm/crash.h b/arch/m68k/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..ba6e412a1267
>> --- /dev/null
>> +++ b/arch/m68k/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_M68K_CRASH_H
>> +#define _ASM_M68K_CRASH_H
>> +
>> +#endif /* _ASM_M68K_CRASH_H */
>> diff --git a/arch/mips/include/asm/crash.h b/arch/mips/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..35872522c574
>> --- /dev/null
>> +++ b/arch/mips/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_MIPS_CRASH_H
>> +#define _ASM_MIPS_CRASH_H
>> +
>> +#endif /* _ASM_MIPS_CRASH_H */
>> diff --git a/arch/parisc/include/asm/crash.h b/arch/parisc/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..96833b727179
>> --- /dev/null
>> +++ b/arch/parisc/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_PARISC_CRASH_H
>> +#define _ASM_PARISC_CRASH_H
>> +
>> +#endif /* _ASM_PARISC_CRASH_H */
>> diff --git a/arch/powerpc/include/asm/crash.h b/arch/powerpc/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..40ce71e56ac1
>> --- /dev/null
>> +++ b/arch/powerpc/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_POWERPC_CRASH_H
>> +#define _ASM_POWERPC_CRASH_H
>> +
>> +#endif /* _ASM_POWERPC_CRASH_H */
>> diff --git a/arch/riscv/include/asm/crash.h b/arch/riscv/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..24f3aea99707
>> --- /dev/null
>> +++ b/arch/riscv/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_RISCV_CRASH_H
>> +#define _ASM_RISCV_CRASH_H
>> +
>> +#endif /* _ASM_RISCV_CRASH_H */
>> diff --git a/arch/s390/include/asm/crash.h b/arch/s390/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..0db16ad4c75f
>> --- /dev/null
>> +++ b/arch/s390/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_S390_CRASH_H
>> +#define _ASM_S390_CRASH_H
>> +
>> +#endif /* _ASM_S390_CRASH_H */
>> diff --git a/arch/sh/include/asm/crash.h b/arch/sh/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..f54e12f88cae
>> --- /dev/null
>> +++ b/arch/sh/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_SH_CRASH_H
>> +#define _ASM_SH_CRASH_H
>> +
>> +#endif /* _ASM_SH_CRASH_H */
>> diff --git a/include/linux/crash_core.h b/include/linux/crash_core.h
>> index de62a722431e..cb0f1916fbf5 100644
>> --- a/include/linux/crash_core.h
>> +++ b/include/linux/crash_core.h
>> @@ -6,6 +6,8 @@
>>   #include <linux/elfcore.h>
>>   #include <linux/elf.h>
>>   
>> +#include <asm/crash.h>
>> +
>>   #define CRASH_CORE_NOTE_NAME	   "CORE"
>>   #define CRASH_CORE_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4)
>>   #define CRASH_CORE_NOTE_NAME_BYTES ALIGN(sizeof(CRASH_CORE_NOTE_NAME), 4)
>> -- 
>> 2.31.1
>>
> 

Powered by blists - more mailing lists