Re: [PATCH] cxl/region: Clarify pointers in unregister_region()

From: Davidlohr Bueso
Date: Wed Aug 30 2023 - 14:52:53 EST


On Tue, 29 Aug 2023, Ira Weiny wrote:

devm_add_action_or_reset() passes a void * data parameter to the
callback. In the case of CXL regions, unregister_region() is passed a
struct cxl_region *.

unregister_region() incorrectly interprets this as a struct device
pointer. Fortunately the device structure was the first member of
cxl_region. Therefore the code still works. However, should struct
cxl_region change the bug could be subtle.

Use the proper types in unregister_region() and extract the device
pointer correctly.

Fixes: 779dd20cfb56 ("cxl/region: Add region creation support")
Cc: Ben Widawsky <bwidawsk@xxxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>

Reviewed-by: Davidlohr Bueso <dave@xxxxxxxxxxxx>