It's only used for microcode loading on x86. By lib-ifying it we can make
it go away automatically when microcode loading becomes an optional
feature in follow-up patches.
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v3:
* New patch. Subsumes earlier conditionalisation of earlycpio.c on
CONFIG_MICROCODE_LOADING.
---
docs/misra/exclude-list.json | 8 ++++----
xen/common/Makefile | 2 +-
xen/lib/Makefile | 1 +
xen/{common => lib}/earlycpio.c | 0
4 files changed, 6 insertions(+), 5 deletions(-)
rename xen/{common => lib}/earlycpio.c (100%)
diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
index 388397dd3b..2b874dfd3b 100644
--- a/docs/misra/exclude-list.json
+++ b/docs/misra/exclude-list.json
@@ -121,10 +121,6 @@
"rel_path": "common/bunzip2.c",
"comment": "Imported from Linux, ignore for now"
},
- {
- "rel_path": "common/earlycpio.c",
- "comment": "Imported from Linux, ignore for now"
- },
{
"rel_path": "common/gzip/*",
"comment": "Imported from Linux, ignore for now"
@@ -225,6 +221,10 @@
"rel_path": "include/xen/decompress.h",
"comment": "Imported from Linux, ignore for now"
},
+ {
+ "rel_path": "lib/earlycpio.c",
+ "comment": "Imported from Linux, ignore for now"
+ },
{
"rel_path": "lib/find-next-bit.c",
"comment": "Imported from Linux, ignore for now"
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 92c97d641e..4fc0c15088 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -65,7 +65,7 @@ obj-y += wait.o
obj-bin-y += warning.init.o
obj-y += xmalloc_tlsf.o
-obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
+obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd,$(n).init.o)
obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index efca830d92..60cfda4dfc 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
lib-y += bsearch.o
lib-y += ctors.o
lib-y += ctype.o
+lib-y += earlycpio.o
lib-y += find-next-bit.o
lib-y += generic-ffsl.o
lib-y += generic-flsl.o
diff --git a/xen/common/earlycpio.c b/xen/lib/earlycpio.c
similarity index 100%
rename from xen/common/earlycpio.c
rename to xen/lib/earlycpio.c
--
2.43.0
On 13/01/2026 12:21 pm, Alejandro Vallejo wrote:
> It's only used for microcode loading on x86. By lib-ifying it we can make
> it go away automatically when microcode loading becomes an optional
> feature in follow-up patches.
>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> v3:
> * New patch. Subsumes earlier conditionalisation of earlycpio.c on
> CONFIG_MICROCODE_LOADING.
> ---
> docs/misra/exclude-list.json | 8 ++++----
> xen/common/Makefile | 2 +-
> xen/lib/Makefile | 1 +
> xen/{common => lib}/earlycpio.c | 0
> 4 files changed, 6 insertions(+), 5 deletions(-)
> rename xen/{common => lib}/earlycpio.c (100%)
>
> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
> index 388397dd3b..2b874dfd3b 100644
> --- a/docs/misra/exclude-list.json
> +++ b/docs/misra/exclude-list.json
> @@ -121,10 +121,6 @@
> "rel_path": "common/bunzip2.c",
> "comment": "Imported from Linux, ignore for now"
> },
> - {
> - "rel_path": "common/earlycpio.c",
> - "comment": "Imported from Linux, ignore for now"
> - },
> {
> "rel_path": "common/gzip/*",
> "comment": "Imported from Linux, ignore for now"
> @@ -225,6 +221,10 @@
> "rel_path": "include/xen/decompress.h",
> "comment": "Imported from Linux, ignore for now"
> },
> + {
> + "rel_path": "lib/earlycpio.c",
> + "comment": "Imported from Linux, ignore for now"
> + },
> {
> "rel_path": "lib/find-next-bit.c",
> "comment": "Imported from Linux, ignore for now"
Honestly, I think this needs simply dropping. "ignore for now" isn't
going to cut it with any competent evaluators.
By libryfing it, it's no longer part of the AMD target build, but it
does want covering by *-allcode.
Given that you noticed it for v2, I presume there's something in the
file that Eclair doesn't like?
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index 92c97d641e..4fc0c15088 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -65,7 +65,7 @@ obj-y += wait.o
> obj-bin-y += warning.init.o
> obj-y += xmalloc_tlsf.o
>
> -obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
> +obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd,$(n).init.o)
>
> obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
>
> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
> index efca830d92..60cfda4dfc 100644
> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
> lib-y += bsearch.o
> lib-y += ctors.o
> lib-y += ctype.o
> +lib-y += earlycpio.o
> lib-y += find-next-bit.o
> lib-y += generic-ffsl.o
> lib-y += generic-flsl.o
> diff --git a/xen/common/earlycpio.c b/xen/lib/earlycpio.c
> similarity index 100%
> rename from xen/common/earlycpio.c
> rename to xen/lib/earlycpio.c
What's wrong with .init here? There's only a single string which will
end up unmerged so I'm not worried on this side of things, but we now
have series doing safety things getting tangled with .init and I want to
get it fixed.
~Andrew
On Tue Jan 13, 2026 at 3:24 PM CET, Andrew Cooper wrote:
> On 13/01/2026 12:21 pm, Alejandro Vallejo wrote:
>> It's only used for microcode loading on x86. By lib-ifying it we can make
>> it go away automatically when microcode loading becomes an optional
>> feature in follow-up patches.
>>
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> v3:
>> * New patch. Subsumes earlier conditionalisation of earlycpio.c on
>> CONFIG_MICROCODE_LOADING.
>> ---
>> docs/misra/exclude-list.json | 8 ++++----
>> xen/common/Makefile | 2 +-
>> xen/lib/Makefile | 1 +
>> xen/{common => lib}/earlycpio.c | 0
>> 4 files changed, 6 insertions(+), 5 deletions(-)
>> rename xen/{common => lib}/earlycpio.c (100%)
>>
>> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
>> index 388397dd3b..2b874dfd3b 100644
>> --- a/docs/misra/exclude-list.json
>> +++ b/docs/misra/exclude-list.json
>> @@ -121,10 +121,6 @@
>> "rel_path": "common/bunzip2.c",
>> "comment": "Imported from Linux, ignore for now"
>> },
>> - {
>> - "rel_path": "common/earlycpio.c",
>> - "comment": "Imported from Linux, ignore for now"
>> - },
>> {
>> "rel_path": "common/gzip/*",
>> "comment": "Imported from Linux, ignore for now"
>> @@ -225,6 +221,10 @@
>> "rel_path": "include/xen/decompress.h",
>> "comment": "Imported from Linux, ignore for now"
>> },
>> + {
>> + "rel_path": "lib/earlycpio.c",
>> + "comment": "Imported from Linux, ignore for now"
>> + },
>> {
>> "rel_path": "lib/find-next-bit.c",
>> "comment": "Imported from Linux, ignore for now"
>
> Honestly, I think this needs simply dropping. "ignore for now" isn't
> going to cut it with any competent evaluators.
That would depend on justifications and such. But regardless clearing the
exclusion list is a different matter aside from removing microcode loading.
>
> By libryfing it, it's no longer part of the AMD target build, but it
> does want covering by *-allcode.
>
> Given that you noticed it for v2, I presume there's something in the
> file that Eclair doesn't like?
I didn't run Eclair on it. It's ignored as part of common, and the build
fails in CI if the file in common is absent. That's how I noticed it.
I'd rather not gate this particular change on earlycpio playing ball with
Eclair.
>
>> diff --git a/xen/common/Makefile b/xen/common/Makefile
>> index 92c97d641e..4fc0c15088 100644
>> --- a/xen/common/Makefile
>> +++ b/xen/common/Makefile
>> @@ -65,7 +65,7 @@ obj-y += wait.o
>> obj-bin-y += warning.init.o
>> obj-y += xmalloc_tlsf.o
>>
>> -obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
>> +obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd,$(n).init.o)
>>
>> obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
>>
>> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
>> index efca830d92..60cfda4dfc 100644
>> --- a/xen/lib/Makefile
>> +++ b/xen/lib/Makefile
>> @@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
>> lib-y += bsearch.o
>> lib-y += ctors.o
>> lib-y += ctype.o
>> +lib-y += earlycpio.o
>> lib-y += find-next-bit.o
>> lib-y += generic-ffsl.o
>> lib-y += generic-flsl.o
>> diff --git a/xen/common/earlycpio.c b/xen/lib/earlycpio.c
>> similarity index 100%
>> rename from xen/common/earlycpio.c
>> rename to xen/lib/earlycpio.c
>
> What's wrong with .init here? There's only a single string which will
> end up unmerged so I'm not worried on this side of things, but we now
> have series doing safety things getting tangled with .init and I want to
> get it fixed.
.init.o doesn't work with lib-y; only obj-y, obj-bin-y and extra-y. See below:
$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS_ONLY
[snip]
non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
[snip]
$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
$(call if_changed,obj_init_o)
That's just what I eyeballed. There might be more hidden elsewhere.
It might want fixing, specially if something like libfdt is to turn into
a library. But it's just not relevant for this particular change where the
single contained function is already __init.
Cheers,
Alejandro
On 13/01/2026 3:00 pm, Alejandro Vallejo wrote:
> On Tue Jan 13, 2026 at 3:24 PM CET, Andrew Cooper wrote:
>> On 13/01/2026 12:21 pm, Alejandro Vallejo wrote:
>>> It's only used for microcode loading on x86. By lib-ifying it we can make
>>> it go away automatically when microcode loading becomes an optional
>>> feature in follow-up patches.
>>>
>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>> ---
>>> v3:
>>> * New patch. Subsumes earlier conditionalisation of earlycpio.c on
>>> CONFIG_MICROCODE_LOADING.
>>> ---
>>> docs/misra/exclude-list.json | 8 ++++----
>>> xen/common/Makefile | 2 +-
>>> xen/lib/Makefile | 1 +
>>> xen/{common => lib}/earlycpio.c | 0
>>> 4 files changed, 6 insertions(+), 5 deletions(-)
>>> rename xen/{common => lib}/earlycpio.c (100%)
>>>
>>> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
>>> index 388397dd3b..2b874dfd3b 100644
>>> --- a/docs/misra/exclude-list.json
>>> +++ b/docs/misra/exclude-list.json
>>> @@ -121,10 +121,6 @@
>>> "rel_path": "common/bunzip2.c",
>>> "comment": "Imported from Linux, ignore for now"
>>> },
>>> - {
>>> - "rel_path": "common/earlycpio.c",
>>> - "comment": "Imported from Linux, ignore for now"
>>> - },
>>> {
>>> "rel_path": "common/gzip/*",
>>> "comment": "Imported from Linux, ignore for now"
>>> @@ -225,6 +221,10 @@
>>> "rel_path": "include/xen/decompress.h",
>>> "comment": "Imported from Linux, ignore for now"
>>> },
>>> + {
>>> + "rel_path": "lib/earlycpio.c",
>>> + "comment": "Imported from Linux, ignore for now"
>>> + },
>>> {
>>> "rel_path": "lib/find-next-bit.c",
>>> "comment": "Imported from Linux, ignore for now"
>> Honestly, I think this needs simply dropping. "ignore for now" isn't
>> going to cut it with any competent evaluators.
> That would depend on justifications and such. But regardless clearing the
> exclusion list is a different matter aside from removing microcode loading.
>
>> By libryfing it, it's no longer part of the AMD target build, but it
>> does want covering by *-allcode.
>>
>> Given that you noticed it for v2, I presume there's something in the
>> file that Eclair doesn't like?
> I didn't run Eclair on it. It's ignored as part of common, and the build
> fails in CI if the file in common is absent. That's how I noticed it.
>
> I'd rather not gate this particular change on earlycpio playing ball with
> Eclair.
I'm explicitly not gating it. *-allcode is non-blocking, but I want
earlycpio being scanned.
Simply omitting the second hunk should do this, and not explode the AMD
target build. (Once this patch is reordered to the end of the series.)
>
>>> diff --git a/xen/common/Makefile b/xen/common/Makefile
>>> index 92c97d641e..4fc0c15088 100644
>>> --- a/xen/common/Makefile
>>> +++ b/xen/common/Makefile
>>> @@ -65,7 +65,7 @@ obj-y += wait.o
>>> obj-bin-y += warning.init.o
>>> obj-y += xmalloc_tlsf.o
>>>
>>> -obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
>>> +obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd,$(n).init.o)
>>>
>>> obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
>>>
>>> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
>>> index efca830d92..60cfda4dfc 100644
>>> --- a/xen/lib/Makefile
>>> +++ b/xen/lib/Makefile
>>> @@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
>>> lib-y += bsearch.o
>>> lib-y += ctors.o
>>> lib-y += ctype.o
>>> +lib-y += earlycpio.o
>>> lib-y += find-next-bit.o
>>> lib-y += generic-ffsl.o
>>> lib-y += generic-flsl.o
>>> diff --git a/xen/common/earlycpio.c b/xen/lib/earlycpio.c
>>> similarity index 100%
>>> rename from xen/common/earlycpio.c
>>> rename to xen/lib/earlycpio.c
>> What's wrong with .init here? There's only a single string which will
>> end up unmerged so I'm not worried on this side of things, but we now
>> have series doing safety things getting tangled with .init and I want to
>> get it fixed.
> .init.o doesn't work with lib-y; only obj-y, obj-bin-y and extra-y. See below:
>
> $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS_ONLY
>
> [snip]
>
> non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>
> [snip]
>
> $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
> $(call if_changed,obj_init_o)
>
> That's just what I eyeballed. There might be more hidden elsewhere.
>
> It might want fixing, specially if something like libfdt is to turn into
> a library. But it's just not relevant for this particular change where the
> single contained function is already __init.
*.init.o does two things:
1) For things we can tag, check everything is tagged
2) For things we can't tag with __section(), such as string literals,
move them into .init
Fixing lib init properly should just be a case of sprinkling lib-y
through those places you mention. If you want me to do the patch then
fine, but I want it fixed rather than keeping on going around in circles.
~Andrew
On Tue Jan 13, 2026 at 4:19 PM CET, Andrew Cooper wrote:
> On 13/01/2026 3:00 pm, Alejandro Vallejo wrote:
>> On Tue Jan 13, 2026 at 3:24 PM CET, Andrew Cooper wrote:
>>> On 13/01/2026 12:21 pm, Alejandro Vallejo wrote:
>>>> It's only used for microcode loading on x86. By lib-ifying it we can make
>>>> it go away automatically when microcode loading becomes an optional
>>>> feature in follow-up patches.
>>>>
>>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>>> ---
>>>> v3:
>>>> * New patch. Subsumes earlier conditionalisation of earlycpio.c on
>>>> CONFIG_MICROCODE_LOADING.
>>>> ---
>>>> docs/misra/exclude-list.json | 8 ++++----
>>>> xen/common/Makefile | 2 +-
>>>> xen/lib/Makefile | 1 +
>>>> xen/{common => lib}/earlycpio.c | 0
>>>> 4 files changed, 6 insertions(+), 5 deletions(-)
>>>> rename xen/{common => lib}/earlycpio.c (100%)
>>>>
>>>> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
>>>> index 388397dd3b..2b874dfd3b 100644
>>>> --- a/docs/misra/exclude-list.json
>>>> +++ b/docs/misra/exclude-list.json
>>>> @@ -121,10 +121,6 @@
>>>> "rel_path": "common/bunzip2.c",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> },
>>>> - {
>>>> - "rel_path": "common/earlycpio.c",
>>>> - "comment": "Imported from Linux, ignore for now"
>>>> - },
>>>> {
>>>> "rel_path": "common/gzip/*",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> @@ -225,6 +221,10 @@
>>>> "rel_path": "include/xen/decompress.h",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> },
>>>> + {
>>>> + "rel_path": "lib/earlycpio.c",
>>>> + "comment": "Imported from Linux, ignore for now"
>>>> + },
>>>> {
>>>> "rel_path": "lib/find-next-bit.c",
>>>> "comment": "Imported from Linux, ignore for now"
>>> Honestly, I think this needs simply dropping. "ignore for now" isn't
>>> going to cut it with any competent evaluators.
>> That would depend on justifications and such. But regardless clearing the
>> exclusion list is a different matter aside from removing microcode loading.
>>
>>> By libryfing it, it's no longer part of the AMD target build, but it
>>> does want covering by *-allcode.
>>>
>>> Given that you noticed it for v2, I presume there's something in the
>>> file that Eclair doesn't like?
>> I didn't run Eclair on it. It's ignored as part of common, and the build
>> fails in CI if the file in common is absent. That's how I noticed it.
>>
>> I'd rather not gate this particular change on earlycpio playing ball with
>> Eclair.
>
> I'm explicitly not gating it. *-allcode is non-blocking, but I want
> earlycpio being scanned.
>
> Simply omitting the second hunk should do this, and not explode the AMD
> target build. (Once this patch is reordered to the end of the series.)
>
>>
>>>> diff --git a/xen/common/Makefile b/xen/common/Makefile
>>>> index 92c97d641e..4fc0c15088 100644
>>>> --- a/xen/common/Makefile
>>>> +++ b/xen/common/Makefile
>>>> @@ -65,7 +65,7 @@ obj-y += wait.o
>>>> obj-bin-y += warning.init.o
>>>> obj-y += xmalloc_tlsf.o
>>>>
>>>> -obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
>>>> +obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd,$(n).init.o)
>>>>
>>>> obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
>>>>
>>>> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
>>>> index efca830d92..60cfda4dfc 100644
>>>> --- a/xen/lib/Makefile
>>>> +++ b/xen/lib/Makefile
>>>> @@ -3,6 +3,7 @@ obj-$(CONFIG_X86) += x86/
>>>> lib-y += bsearch.o
>>>> lib-y += ctors.o
>>>> lib-y += ctype.o
>>>> +lib-y += earlycpio.o
>>>> lib-y += find-next-bit.o
>>>> lib-y += generic-ffsl.o
>>>> lib-y += generic-flsl.o
>>>> diff --git a/xen/common/earlycpio.c b/xen/lib/earlycpio.c
>>>> similarity index 100%
>>>> rename from xen/common/earlycpio.c
>>>> rename to xen/lib/earlycpio.c
>>> What's wrong with .init here? There's only a single string which will
>>> end up unmerged so I'm not worried on this side of things, but we now
>>> have series doing safety things getting tangled with .init and I want to
>>> get it fixed.
>> .init.o doesn't work with lib-y; only obj-y, obj-bin-y and extra-y. See below:
>>
>> $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS_ONLY
>>
>> [snip]
>>
>> non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>>
>> [snip]
>>
>> $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o FORCE
>> $(call if_changed,obj_init_o)
>>
>> That's just what I eyeballed. There might be more hidden elsewhere.
>>
>> It might want fixing, specially if something like libfdt is to turn into
>> a library. But it's just not relevant for this particular change where the
>> single contained function is already __init.
>
> *.init.o does two things:
>
> 1) For things we can tag, check everything is tagged
> 2) For things we can't tag with __section(), such as string literals,
> move them into .init
>
>
> Fixing lib init properly should just be a case of sprinkling lib-y
> through those places you mention. If you want me to do the patch then
> fine, but I want it fixed rather than keeping on going around in circles.
I can do it, but I'll make a new series to deal with that independently
of this if that's alright. Feel free to leave this patch uncommitted until then.
I care far more about the next patch going in.
Cheers,
Alejandro
On 13.01.2026 16:19, Andrew Cooper wrote:
> On 13/01/2026 3:00 pm, Alejandro Vallejo wrote:
>> On Tue Jan 13, 2026 at 3:24 PM CET, Andrew Cooper wrote:
>>> On 13/01/2026 12:21 pm, Alejandro Vallejo wrote:
>>>> It's only used for microcode loading on x86. By lib-ifying it we can make
>>>> it go away automatically when microcode loading becomes an optional
>>>> feature in follow-up patches.
>>>>
>>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>>> ---
>>>> v3:
>>>> * New patch. Subsumes earlier conditionalisation of earlycpio.c on
>>>> CONFIG_MICROCODE_LOADING.
>>>> ---
>>>> docs/misra/exclude-list.json | 8 ++++----
>>>> xen/common/Makefile | 2 +-
>>>> xen/lib/Makefile | 1 +
>>>> xen/{common => lib}/earlycpio.c | 0
>>>> 4 files changed, 6 insertions(+), 5 deletions(-)
>>>> rename xen/{common => lib}/earlycpio.c (100%)
>>>>
>>>> diff --git a/docs/misra/exclude-list.json b/docs/misra/exclude-list.json
>>>> index 388397dd3b..2b874dfd3b 100644
>>>> --- a/docs/misra/exclude-list.json
>>>> +++ b/docs/misra/exclude-list.json
>>>> @@ -121,10 +121,6 @@
>>>> "rel_path": "common/bunzip2.c",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> },
>>>> - {
>>>> - "rel_path": "common/earlycpio.c",
>>>> - "comment": "Imported from Linux, ignore for now"
>>>> - },
>>>> {
>>>> "rel_path": "common/gzip/*",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> @@ -225,6 +221,10 @@
>>>> "rel_path": "include/xen/decompress.h",
>>>> "comment": "Imported from Linux, ignore for now"
>>>> },
>>>> + {
>>>> + "rel_path": "lib/earlycpio.c",
>>>> + "comment": "Imported from Linux, ignore for now"
>>>> + },
>>>> {
>>>> "rel_path": "lib/find-next-bit.c",
>>>> "comment": "Imported from Linux, ignore for now"
>>> Honestly, I think this needs simply dropping. "ignore for now" isn't
>>> going to cut it with any competent evaluators.
>> That would depend on justifications and such. But regardless clearing the
>> exclusion list is a different matter aside from removing microcode loading.
>>
>>> By libryfing it, it's no longer part of the AMD target build, but it
>>> does want covering by *-allcode.
>>>
>>> Given that you noticed it for v2, I presume there's something in the
>>> file that Eclair doesn't like?
>> I didn't run Eclair on it. It's ignored as part of common, and the build
>> fails in CI if the file in common is absent. That's how I noticed it.
>>
>> I'd rather not gate this particular change on earlycpio playing ball with
>> Eclair.
>
> I'm explicitly not gating it. *-allcode is non-blocking, but I want
> earlycpio being scanned.
In fairness to Alejandro - you're asking for an entirely unrelated change.
If it was really just ...
> Simply omitting the second hunk should do this, and not explode the AMD
> target build. (Once this patch is reordered to the end of the series.)
... this, then probably okay(ish). But afaict MICROCODE_LOADING needs to
then be turned off for *-amd, which patch 4 doesn't do (yet) afaics.
Jan
© 2016 - 2026 Red Hat, Inc.