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>