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:
Zhao Liu 2024-04-18 18:04:31 +08:00 committed by Philippe Mathieu-Daudé
parent 259181d29f
commit 2c5b2d9128

View File

@ -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)