Messages in this thread | | | From | fan <> | Date | Tue, 19 Dec 2023 09:44:06 -0800 | Subject | Re: [PATCH v2 1/2] cxl/cdat: Handle cdat table build errors |
| |
On Wed, Nov 29, 2023 at 05:33:03PM -0800, Ira Weiny wrote: > The callback for building CDAT tables may return negative error codes. > This was previously unhandled and will result in potentially huge > allocations later on in ct3_build_cdat() > > Detect the negative error code and defer cdat building. > > Fixes: f5ee7413d592 ("hw/mem/cxl-type3: Add CXL CDAT Data Object Exchange") > Cc: Huai-Cheng Kuo <hchkuo@avery-design.com.tw> > Reviewed-by: Dave Jiang <dave.jiang@intel.com> > Signed-off-by: Ira Weiny <ira.weiny@intel.com> > --- > hw/cxl/cxl-cdat.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/cxl/cxl-cdat.c b/hw/cxl/cxl-cdat.c > index 639a2db3e17b..24829cf2428d 100644 > --- a/hw/cxl/cxl-cdat.c > +++ b/hw/cxl/cxl-cdat.c > @@ -63,7 +63,7 @@ static void ct3_build_cdat(CDATObject *cdat, Error **errp) > cdat->built_buf_len = cdat->build_cdat_table(&cdat->built_buf, > cdat->private); > > - if (!cdat->built_buf_len) { > + if (cdat->built_buf_len <= 0) { > /* Build later as not all data available yet */ > cdat->to_update = true; > return; >
The fix looks good to me. Just curious how to really build cdat table again when an error occurs, for example, the memory allocation fails.
Fan > -- > 2.42.0 >
| |