Message ID | 20210219180131.2061072-1-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/i386/sev: Ensure sev_fw_errlist is sync with update-linux-headers | expand |
On 2/19/21 12:01 PM, Philippe Mathieu-Daudé wrote: > Ensure sev_fw_errlist[] is updated after running > the update-linux-headers.sh script. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Based-on: <20210218151633.215374-1-ckuehl@redhat.com> > --- > target/i386/sev.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Reviewed-by: Connor Kuehl <ckuehl@redhat.com> Thanks! Connor
ping? On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: > Ensure sev_fw_errlist[] is updated after running > the update-linux-headers.sh script. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Based-on: <20210218151633.215374-1-ckuehl@redhat.com> > --- > target/i386/sev.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/i386/sev.c b/target/i386/sev.c > index 37690ae809c..92c69a23769 100644 > --- a/target/i386/sev.c > +++ b/target/i386/sev.c > @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { > static SevGuestState *sev_guest; > static Error *sev_mig_blocker; > > -static const char *const sev_fw_errlist[] = { > +static const char *const sev_fw_errlist[SEV_RET_MAX] = { > [SEV_RET_SUCCESS] = "", > [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", > [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", > @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { > [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", > [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", > }; > +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ > +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); > > #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) > > @@ -160,6 +162,7 @@ fw_error_to_str(int code) > if (code < 0 || code >= SEV_FW_MAX_ERROR) { > return "unknown error"; > } > + assert(sev_fw_errlist[code]); > > return sev_fw_errlist[code]; > } >
ping^2? On 3/8/21 11:21 AM, Philippe Mathieu-Daudé wrote: > ping? > > On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: >> Ensure sev_fw_errlist[] is updated after running >> the update-linux-headers.sh script. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> Based-on: <20210218151633.215374-1-ckuehl@redhat.com> >> --- >> target/i386/sev.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/target/i386/sev.c b/target/i386/sev.c >> index 37690ae809c..92c69a23769 100644 >> --- a/target/i386/sev.c >> +++ b/target/i386/sev.c >> @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { >> static SevGuestState *sev_guest; >> static Error *sev_mig_blocker; >> >> -static const char *const sev_fw_errlist[] = { >> +static const char *const sev_fw_errlist[SEV_RET_MAX] = { >> [SEV_RET_SUCCESS] = "", >> [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", >> [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", >> @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { >> [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", >> [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", >> }; >> +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ >> +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); >> >> #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) >> >> @@ -160,6 +162,7 @@ fw_error_to_str(int code) >> if (code < 0 || code >= SEV_FW_MAX_ERROR) { >> return "unknown error"; >> } >> + assert(sev_fw_errlist[code]); >> >> return sev_fw_errlist[code]; >> } >> >
On 3/18/21 10:38 AM, Philippe Mathieu-Daudé wrote: > ping^2? > > On 3/8/21 11:21 AM, Philippe Mathieu-Daudé wrote: >> ping? >> >> On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: >>> Ensure sev_fw_errlist[] is updated after running >>> the update-linux-headers.sh script. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> --- >>> Based-on: <20210218151633.215374-1-ckuehl@redhat.com> I am in the favor to keep list in sync with header updates. thanks Acked-by: Brijesh Singh <brijesh.singh@amd.com> >>> --- >>> target/i386/sev.c | 5 ++++- >>> 1 file changed, 4 insertions(+), 1 deletion(-) >>> >>> diff --git a/target/i386/sev.c b/target/i386/sev.c >>> index 37690ae809c..92c69a23769 100644 >>> --- a/target/i386/sev.c >>> +++ b/target/i386/sev.c >>> @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { >>> static SevGuestState *sev_guest; >>> static Error *sev_mig_blocker; >>> >>> -static const char *const sev_fw_errlist[] = { >>> +static const char *const sev_fw_errlist[SEV_RET_MAX] = { >>> [SEV_RET_SUCCESS] = "", >>> [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", >>> [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", >>> @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { >>> [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", >>> [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", >>> }; >>> +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ >>> +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); >>> >>> #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) >>> >>> @@ -160,6 +162,7 @@ fw_error_to_str(int code) >>> if (code < 0 || code >= SEV_FW_MAX_ERROR) { >>> return "unknown error"; >>> } >>> + assert(sev_fw_errlist[code]); >>> >>> return sev_fw_errlist[code]; >>> } >>>
This patch was supposed to go via Eduardo's tree but he missed it, can it go via qemu-trivial instead? On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: > Ensure sev_fw_errlist[] is updated after running > the update-linux-headers.sh script. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Based-on: <20210218151633.215374-1-ckuehl@redhat.com> > --- > target/i386/sev.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/i386/sev.c b/target/i386/sev.c > index 37690ae809c..92c69a23769 100644 > --- a/target/i386/sev.c > +++ b/target/i386/sev.c > @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { > static SevGuestState *sev_guest; > static Error *sev_mig_blocker; > > -static const char *const sev_fw_errlist[] = { > +static const char *const sev_fw_errlist[SEV_RET_MAX] = { > [SEV_RET_SUCCESS] = "", > [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", > [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", > @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { > [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", > [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", > }; > +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ > +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); > > #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) > > @@ -160,6 +162,7 @@ fw_error_to_str(int code) > if (code < 0 || code >= SEV_FW_MAX_ERROR) { > return "unknown error"; > } > + assert(sev_fw_errlist[code]); > > return sev_fw_errlist[code]; > } >
On Wed, Jun 02, 2021 at 12:48:18PM +0200, Philippe Mathieu-Daudé wrote: > This patch was supposed to go via Eduardo's tree but he > missed it, can it go via qemu-trivial instead? My apologies, again. I'm still behind on my qemu-devel backlog, and this was still buried in my inbox. > > On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: > > Ensure sev_fw_errlist[] is updated after running > > the update-linux-headers.sh script. > > > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > > --- > > Based-on: <20210218151633.215374-1-ckuehl@redhat.com> > > --- > > target/i386/sev.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/target/i386/sev.c b/target/i386/sev.c > > index 37690ae809c..92c69a23769 100644 > > --- a/target/i386/sev.c > > +++ b/target/i386/sev.c > > @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { > > static SevGuestState *sev_guest; > > static Error *sev_mig_blocker; > > > > -static const char *const sev_fw_errlist[] = { > > +static const char *const sev_fw_errlist[SEV_RET_MAX] = { > > [SEV_RET_SUCCESS] = "", > > [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", > > [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", > > @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { > > [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", > > [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", > > }; > > +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ > > +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); A mechanism to notify us when sev_fw_errlist needs to be updated would be useful, but I'm not sure I agree with this change. I expect update-linux-headers patches always consist of 100% automated changes. This patch would require a manual update of target/i386/sev.c to be included in the same commit as the header update. > > > > #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) > > > > @@ -160,6 +162,7 @@ fw_error_to_str(int code) > > if (code < 0 || code >= SEV_FW_MAX_ERROR) { > > return "unknown error"; > > } > > + assert(sev_fw_errlist[code]); > > > > return sev_fw_errlist[code]; > > } > > >
On 6/2/21 4:22 PM, Eduardo Habkost wrote: > On Wed, Jun 02, 2021 at 12:48:18PM +0200, Philippe Mathieu-Daudé wrote: >> This patch was supposed to go via Eduardo's tree but he >> missed it, can it go via qemu-trivial instead? > > My apologies, again. I'm still behind on my qemu-devel backlog, > and this was still buried in my inbox. > >> >> On 2/19/21 7:01 PM, Philippe Mathieu-Daudé wrote: >>> Ensure sev_fw_errlist[] is updated after running >>> the update-linux-headers.sh script. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> --- >>> Based-on: <20210218151633.215374-1-ckuehl@redhat.com> >>> --- >>> target/i386/sev.c | 5 ++++- >>> 1 file changed, 4 insertions(+), 1 deletion(-) >>> >>> diff --git a/target/i386/sev.c b/target/i386/sev.c >>> index 37690ae809c..92c69a23769 100644 >>> --- a/target/i386/sev.c >>> +++ b/target/i386/sev.c >>> @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { >>> static SevGuestState *sev_guest; >>> static Error *sev_mig_blocker; >>> >>> -static const char *const sev_fw_errlist[] = { >>> +static const char *const sev_fw_errlist[SEV_RET_MAX] = { >>> [SEV_RET_SUCCESS] = "", >>> [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", >>> [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", >>> @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { >>> [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", >>> [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", >>> }; >>> +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ >>> +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); > > A mechanism to notify us when sev_fw_errlist needs to be updated > would be useful, but I'm not sure I agree with this change. > I expect update-linux-headers patches always consist of 100% > automated changes. This patch would require a manual update of > target/i386/sev.c to be included in the same commit as > the header update. OK :(
diff --git a/target/i386/sev.c b/target/i386/sev.c index 37690ae809c..92c69a23769 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -87,7 +87,7 @@ typedef struct __attribute__((__packed__)) SevInfoBlock { static SevGuestState *sev_guest; static Error *sev_mig_blocker; -static const char *const sev_fw_errlist[] = { +static const char *const sev_fw_errlist[SEV_RET_MAX] = { [SEV_RET_SUCCESS] = "", [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", @@ -114,6 +114,8 @@ static const char *const sev_fw_errlist[] = { [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", }; +/* Ensure sev_fw_errlist[] is updated after running update-linux-headers.sh */ +QEMU_BUILD_BUG_ON(SEV_RET_SECURE_DATA_INVALID + 1 != SEV_RET_MAX); #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) @@ -160,6 +162,7 @@ fw_error_to_str(int code) if (code < 0 || code >= SEV_FW_MAX_ERROR) { return "unknown error"; } + assert(sev_fw_errlist[code]); return sev_fw_errlist[code]; }
Ensure sev_fw_errlist[] is updated after running the update-linux-headers.sh script. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- Based-on: <20210218151633.215374-1-ckuehl@redhat.com> --- target/i386/sev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)