2020-02-06 15:22:24

by Jan Kiszka

[permalink] [raw]
Subject: [PATCH] x86: pat: Do not compile stubbed functions when X86_PAT is off

From: Jan Kiszka <[email protected]>

Those are already provided by linux/io.h as stubs.

The conflict remains invisible until someone would pull {linux,asm}/io.h
into memtype.c.

Signed-off-by: Jan Kiszka <[email protected]>
---
arch/x86/mm/pat/memtype.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 394be8611748..a695e17bd4c7 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -801,6 +801,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
memtype_free(start, end);
}

+#ifdef CONFIG_X86_PAT
int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
{
enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
@@ -814,6 +815,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
memtype_free_io(start, start + size);
}
EXPORT_SYMBOL(arch_io_free_memtype_wc);
+#endif

pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t vma_prot)
--
2.16.4


2020-02-07 14:52:20

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] x86: pat: Do not compile stubbed functions when X86_PAT is off

Jan Kiszka <[email protected]> writes:

> From: Jan Kiszka <[email protected]>
>
> Those are already provided by linux/io.h as stubs.
>
> The conflict remains invisible until someone would pull {linux,asm}/io.h
> into memtype.c.

Err. memtype.c includes asm/io.h already. So it's just the PAT=n case
which is broken.

Thanks,

tglx

2020-02-07 15:04:39

by Jan Kiszka

[permalink] [raw]
Subject: Re: [PATCH] x86: pat: Do not compile stubbed functions when X86_PAT is off

On 07.02.20 15:50, Thomas Gleixner wrote:
> Jan Kiszka <[email protected]> writes:
>
>> From: Jan Kiszka <[email protected]>
>>
>> Those are already provided by linux/io.h as stubs.
>>
>> The conflict remains invisible until someone would pull {linux,asm}/io.h
>> into memtype.c.
>
> Err. memtype.c includes asm/io.h already. So it's just the PAT=n case
> which is broken.

Ah, right, my comment must read "until someone would pull linux/io.h"
because only that header carries the stubs.

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

2020-10-26 23:25:07

by Jan Kiszka

[permalink] [raw]
Subject: [PATCH v2] x86: pat: Do not compile stubbed functions when X86_PAT is off

From: Jan Kiszka <[email protected]>

Those are already provided by linux/io.h as stubs.

The conflict remains invisible until someone would pull linux/io.h into
memtype.c.

Signed-off-by: Jan Kiszka <[email protected]>
---

Change in v2:
- correct commit message

arch/x86/mm/pat/memtype.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 8f665c352bf0..41a4ac585af3 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -800,6 +800,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
memtype_free(start, end);
}

+#ifdef CONFIG_X86_PAT
int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
{
enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
@@ -813,6 +814,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
memtype_free_io(start, start + size);
}
EXPORT_SYMBOL(arch_io_free_memtype_wc);
+#endif

pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t vma_prot)
--
2.26.2

2021-04-11 08:49:22

by Jan Kiszka

[permalink] [raw]
Subject: Re: [PATCH v2] x86: pat: Do not compile stubbed functions when X86_PAT is off

On 26.10.20 18:39, Jan Kiszka wrote:
> From: Jan Kiszka <[email protected]>
>
> Those are already provided by linux/io.h as stubs.
>
> The conflict remains invisible until someone would pull linux/io.h into
> memtype.c.
>
> Signed-off-by: Jan Kiszka <[email protected]>
> ---
>
> Change in v2:
> - correct commit message
>
> arch/x86/mm/pat/memtype.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
> index 8f665c352bf0..41a4ac585af3 100644
> --- a/arch/x86/mm/pat/memtype.c
> +++ b/arch/x86/mm/pat/memtype.c
> @@ -800,6 +800,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
> memtype_free(start, end);
> }
>
> +#ifdef CONFIG_X86_PAT
> int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
> {
> enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
> @@ -813,6 +814,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
> memtype_free_io(start, start + size);
> }
> EXPORT_SYMBOL(arch_io_free_memtype_wc);
> +#endif
>
> pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
> unsigned long size, pgprot_t vma_prot)
>

What happened to this?

Jan

2021-04-11 09:15:20

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH v2] x86: pat: Do not compile stubbed functions when X86_PAT is off

On Sun, Apr 11, 2021 at 10:22:19AM +0200, Jan Kiszka wrote:
> On 26.10.20 18:39, Jan Kiszka wrote:
> > From: Jan Kiszka <[email protected]>
> >
> > Those are already provided by linux/io.h as stubs.
> >
> > The conflict remains invisible until someone would pull linux/io.h into
> > memtype.c.
> >
> > Signed-off-by: Jan Kiszka <[email protected]>
> > ---
> >
> > Change in v2:
> > - correct commit message
> >
> > arch/x86/mm/pat/memtype.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
> > index 8f665c352bf0..41a4ac585af3 100644
> > --- a/arch/x86/mm/pat/memtype.c
> > +++ b/arch/x86/mm/pat/memtype.c
> > @@ -800,6 +800,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
> > memtype_free(start, end);
> > }
> >
> > +#ifdef CONFIG_X86_PAT
> > int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
> > {
> > enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
> > @@ -813,6 +814,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
> > memtype_free_io(start, start + size);
> > }
> > EXPORT_SYMBOL(arch_io_free_memtype_wc);
> > +#endif
> >
> > pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
> > unsigned long size, pgprot_t vma_prot)
> >
>
> What happened to this?

What is this patch and your other asm/proto.h thing fixing?

Looks like you're using kernel headers in something else and don't want
to include the whole world thus those fixes... so that you can include
upstream kernel headers without having to touch them...

Or am I way off base here?

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-04-11 09:23:34

by Jan Kiszka

[permalink] [raw]
Subject: Re: [PATCH v2] x86: pat: Do not compile stubbed functions when X86_PAT is off

On 11.04.21 11:10, Borislav Petkov wrote:
> On Sun, Apr 11, 2021 at 10:22:19AM +0200, Jan Kiszka wrote:
>> On 26.10.20 18:39, Jan Kiszka wrote:
>>> From: Jan Kiszka <[email protected]>
>>>
>>> Those are already provided by linux/io.h as stubs.
>>>
>>> The conflict remains invisible until someone would pull linux/io.h into
>>> memtype.c.
>>>
>>> Signed-off-by: Jan Kiszka <[email protected]>
>>> ---
>>>
>>> Change in v2:
>>> - correct commit message
>>>
>>> arch/x86/mm/pat/memtype.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
>>> index 8f665c352bf0..41a4ac585af3 100644
>>> --- a/arch/x86/mm/pat/memtype.c
>>> +++ b/arch/x86/mm/pat/memtype.c
>>> @@ -800,6 +800,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
>>> memtype_free(start, end);
>>> }
>>>
>>> +#ifdef CONFIG_X86_PAT
>>> int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
>>> {
>>> enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
>>> @@ -813,6 +814,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
>>> memtype_free_io(start, start + size);
>>> }
>>> EXPORT_SYMBOL(arch_io_free_memtype_wc);
>>> +#endif
>>>
>>> pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
>>> unsigned long size, pgprot_t vma_prot)
>>>
>>
>> What happened to this?
>
> What is this patch and your other asm/proto.h thing fixing?
>
> Looks like you're using kernel headers in something else and don't want
> to include the whole world thus those fixes... so that you can include
> upstream kernel headers without having to touch them...
>
> Or am I way off base here?
>

The patches are coming from downstream usage, yes, but I think the
solutions are relevant cleanups for upstream as well.

Jan

2021-04-11 10:10:02

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH v2] x86: pat: Do not compile stubbed functions when X86_PAT is off

On Sun, Apr 11, 2021 at 11:12:32AM +0200, Jan Kiszka wrote:
> The patches are coming from downstream usage, yes,

Ok, for the future, it would be good to mention that in the commit
message so that a committer knows what they're for.

> but I think the solutions are relevant cleanups for upstream as well.

Yeah but you know that we generally don't do "preemptive" fixes like
that. But those are small enough so I don't see a problem...

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

Subject: [tip: x86/cleanups] x86/pat: Do not compile stubbed functions when X86_PAT is off

The following commit has been merged into the x86/cleanups branch of tip:

Commit-ID: 16854b567dff767e5ec5e6dc23021271136733a5
Gitweb: https://git.kernel.org/tip/16854b567dff767e5ec5e6dc23021271136733a5
Author: Jan Kiszka <[email protected]>
AuthorDate: Mon, 26 Oct 2020 18:39:06 +01:00
Committer: Borislav Petkov <[email protected]>
CommitterDate: Wed, 14 Apr 2021 08:21:41 +02:00

x86/pat: Do not compile stubbed functions when X86_PAT is off

Those are already provided by linux/io.h as stubs.

The conflict remains invisible until someone would pull linux/io.h into
memtype.c. This fixes a build error when this file is used outside of
the kernel tree.

[ bp: Massage commit message. ]

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
arch/x86/mm/pat/memtype.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 6084d14..3112ca7 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -800,6 +800,7 @@ void memtype_free_io(resource_size_t start, resource_size_t end)
memtype_free(start, end);
}

+#ifdef CONFIG_X86_PAT
int arch_io_reserve_memtype_wc(resource_size_t start, resource_size_t size)
{
enum page_cache_mode type = _PAGE_CACHE_MODE_WC;
@@ -813,6 +814,7 @@ void arch_io_free_memtype_wc(resource_size_t start, resource_size_t size)
memtype_free_io(start, start + size);
}
EXPORT_SYMBOL(arch_io_free_memtype_wc);
+#endif

pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
unsigned long size, pgprot_t vma_prot)