hw/cxl/cxl-cdat: Make ct3_load_cdat() return boolean
As error.h suggested, the best practice for callee is to return something to indicate success / failure. So make ct3_load_cdat() return boolean, and this is the preparation for cxl_doe_cdat_init() returning boolean. Suggested-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Zhao Liu <zhao1.liu@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-ID: <20240418100433.1085447-2-zhao1.liu@linux.intel.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
259181d29f
commit
2c5b2d9128
@ -111,7 +111,7 @@ static void ct3_build_cdat(CDATObject *cdat, Error **errp)
|
|||||||
cdat->entry = g_steal_pointer(&cdat_st);
|
cdat->entry = g_steal_pointer(&cdat_st);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ct3_load_cdat(CDATObject *cdat, Error **errp)
|
static bool ct3_load_cdat(CDATObject *cdat, Error **errp)
|
||||||
{
|
{
|
||||||
g_autofree CDATEntry *cdat_st = NULL;
|
g_autofree CDATEntry *cdat_st = NULL;
|
||||||
g_autofree uint8_t *buf = NULL;
|
g_autofree uint8_t *buf = NULL;
|
||||||
@ -127,11 +127,11 @@ static void ct3_load_cdat(CDATObject *cdat, Error **errp)
|
|||||||
&file_size, &error)) {
|
&file_size, &error)) {
|
||||||
error_setg(errp, "CDAT: File read failed: %s", error->message);
|
error_setg(errp, "CDAT: File read failed: %s", error->message);
|
||||||
g_error_free(error);
|
g_error_free(error);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
if (file_size < sizeof(CDATTableHeader)) {
|
if (file_size < sizeof(CDATTableHeader)) {
|
||||||
error_setg(errp, "CDAT: File too short");
|
error_setg(errp, "CDAT: File too short");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
i = sizeof(CDATTableHeader);
|
i = sizeof(CDATTableHeader);
|
||||||
num_ent = 1;
|
num_ent = 1;
|
||||||
@ -139,19 +139,19 @@ static void ct3_load_cdat(CDATObject *cdat, Error **errp)
|
|||||||
hdr = (CDATSubHeader *)(buf + i);
|
hdr = (CDATSubHeader *)(buf + i);
|
||||||
if (i + sizeof(CDATSubHeader) > file_size) {
|
if (i + sizeof(CDATSubHeader) > file_size) {
|
||||||
error_setg(errp, "CDAT: Truncated table");
|
error_setg(errp, "CDAT: Truncated table");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
cdat_len_check(hdr, errp);
|
cdat_len_check(hdr, errp);
|
||||||
i += hdr->length;
|
i += hdr->length;
|
||||||
if (i > file_size) {
|
if (i > file_size) {
|
||||||
error_setg(errp, "CDAT: Truncated table");
|
error_setg(errp, "CDAT: Truncated table");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
num_ent++;
|
num_ent++;
|
||||||
}
|
}
|
||||||
if (i != file_size) {
|
if (i != file_size) {
|
||||||
error_setg(errp, "CDAT: File length mismatch");
|
error_setg(errp, "CDAT: File length mismatch");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cdat_st = g_new0(CDATEntry, num_ent);
|
cdat_st = g_new0(CDATEntry, num_ent);
|
||||||
@ -185,6 +185,7 @@ static void ct3_load_cdat(CDATObject *cdat, Error **errp)
|
|||||||
cdat->entry_len = num_ent;
|
cdat->entry_len = num_ent;
|
||||||
cdat->entry = g_steal_pointer(&cdat_st);
|
cdat->entry = g_steal_pointer(&cdat_st);
|
||||||
cdat->buf = g_steal_pointer(&buf);
|
cdat->buf = g_steal_pointer(&buf);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cxl_doe_cdat_init(CXLComponentState *cxl_cstate, Error **errp)
|
void cxl_doe_cdat_init(CXLComponentState *cxl_cstate, Error **errp)
|
||||||
|
Loading…
Reference in New Issue
Block a user