@@ -66,8 +66,10 @@ int sdw_master_read_prop(struct sdw_bus *bus)
66
66
prop -> clk_freq = devm_kcalloc (bus -> dev , prop -> num_clk_freq ,
67
67
sizeof (* prop -> clk_freq ),
68
68
GFP_KERNEL );
69
- if (!prop -> clk_freq )
69
+ if (!prop -> clk_freq ) {
70
+ fwnode_handle_put (link );
70
71
return - ENOMEM ;
72
+ }
71
73
72
74
fwnode_property_read_u32_array (link ,
73
75
"mipi-sdw-clock-frequencies-supported" ,
@@ -92,8 +94,10 @@ int sdw_master_read_prop(struct sdw_bus *bus)
92
94
prop -> clk_gears = devm_kcalloc (bus -> dev , prop -> num_clk_gears ,
93
95
sizeof (* prop -> clk_gears ),
94
96
GFP_KERNEL );
95
- if (!prop -> clk_gears )
97
+ if (!prop -> clk_gears ) {
98
+ fwnode_handle_put (link );
96
99
return - ENOMEM ;
100
+ }
97
101
98
102
fwnode_property_read_u32_array (link ,
99
103
"mipi-sdw-supported-clock-gears" ,
@@ -116,6 +120,8 @@ int sdw_master_read_prop(struct sdw_bus *bus)
116
120
fwnode_property_read_u32 (link , "mipi-sdw-command-error-threshold" ,
117
121
& prop -> err_threshold );
118
122
123
+ fwnode_handle_put (link );
124
+
119
125
return 0 ;
120
126
}
121
127
EXPORT_SYMBOL (sdw_master_read_prop );
@@ -197,8 +203,10 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave,
197
203
dpn [i ].num_words ,
198
204
sizeof (* dpn [i ].words ),
199
205
GFP_KERNEL );
200
- if (!dpn [i ].words )
206
+ if (!dpn [i ].words ) {
207
+ fwnode_handle_put (node );
201
208
return - ENOMEM ;
209
+ }
202
210
203
211
fwnode_property_read_u32_array (node ,
204
212
"mipi-sdw-port-wordlength-configs" ,
@@ -236,8 +244,10 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave,
236
244
dpn [i ].num_channels ,
237
245
sizeof (* dpn [i ].channels ),
238
246
GFP_KERNEL );
239
- if (!dpn [i ].channels )
247
+ if (!dpn [i ].channels ) {
248
+ fwnode_handle_put (node );
240
249
return - ENOMEM ;
250
+ }
241
251
242
252
fwnode_property_read_u32_array (node ,
243
253
"mipi-sdw-channel-number-list" ,
@@ -251,8 +261,10 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave,
251
261
dpn [i ].num_ch_combinations ,
252
262
sizeof (* dpn [i ].ch_combinations ),
253
263
GFP_KERNEL );
254
- if (!dpn [i ].ch_combinations )
264
+ if (!dpn [i ].ch_combinations ) {
265
+ fwnode_handle_put (node );
255
266
return - ENOMEM ;
267
+ }
256
268
257
269
fwnode_property_read_u32_array (node ,
258
270
"mipi-sdw-channel-combination-list" ,
@@ -274,6 +286,8 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave,
274
286
275
287
/* TODO: Read audio mode */
276
288
289
+ fwnode_handle_put (node );
290
+
277
291
i ++ ;
278
292
}
279
293
@@ -348,10 +362,14 @@ int sdw_slave_read_prop(struct sdw_slave *slave)
348
362
prop -> dp0_prop = devm_kzalloc (& slave -> dev ,
349
363
sizeof (* prop -> dp0_prop ),
350
364
GFP_KERNEL );
351
- if (!prop -> dp0_prop )
365
+ if (!prop -> dp0_prop ) {
366
+ fwnode_handle_put (port );
352
367
return - ENOMEM ;
368
+ }
353
369
354
370
sdw_slave_read_dp0 (slave , port , prop -> dp0_prop );
371
+
372
+ fwnode_handle_put (port );
355
373
}
356
374
357
375
/*
0 commit comments