@@ -987,11 +987,30 @@ static int cxl_port_setup_targets(struct cxl_port *port,
987
987
parent_iw = parent_cxld -> interleave_ways ;
988
988
}
989
989
990
- granularity_to_cxl (parent_ig , & peig );
991
- ways_to_cxl (parent_iw , & peiw );
990
+ rc = granularity_to_cxl (parent_ig , & peig );
991
+ if (rc ) {
992
+ dev_dbg (& cxlr -> dev , "%s:%s: invalid parent granularity: %d\n" ,
993
+ dev_name (parent_port -> uport ),
994
+ dev_name (& parent_port -> dev ), parent_ig );
995
+ return rc ;
996
+ }
997
+
998
+ rc = ways_to_cxl (parent_iw , & peiw );
999
+ if (rc ) {
1000
+ dev_dbg (& cxlr -> dev , "%s:%s: invalid parent interleave: %d\n" ,
1001
+ dev_name (parent_port -> uport ),
1002
+ dev_name (& parent_port -> dev ), parent_iw );
1003
+ return rc ;
1004
+ }
992
1005
993
1006
iw = cxl_rr -> nr_targets ;
994
- ways_to_cxl (iw , & eiw );
1007
+ rc = ways_to_cxl (iw , & eiw );
1008
+ if (rc ) {
1009
+ dev_dbg (& cxlr -> dev , "%s:%s: invalid port interleave: %d\n" ,
1010
+ dev_name (port -> uport ), dev_name (& port -> dev ), iw );
1011
+ return rc ;
1012
+ }
1013
+
995
1014
if (cxl_rr -> nr_targets > 1 ) {
996
1015
u32 address_bit = max (peig + peiw , eiw + peig );
997
1016
0 commit comments