@@ -302,7 +302,7 @@ static int brcmf_feat_fwcap_debugfs_read(struct seq_file *seq, void *data)
302302 return 0 ;
303303}
304304
305- void brcmf_feat_attach (struct brcmf_pub * drvr )
305+ int brcmf_feat_attach (struct brcmf_pub * drvr )
306306{
307307 struct brcmf_if * ifp = brcmf_get_ifp (drvr , 0 );
308308 struct brcmf_join_version_le join_ver ;
@@ -363,13 +363,14 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
363363 err = brcmf_fil_iovar_data_get (ifp , "join_ver" , & join_ver , sizeof (join_ver ));
364364 if (!err ) {
365365 u16 ver = le16_to_cpu (join_ver .join_ver_major );
366- brcmf_join_param_setup_for_version (drvr , ver );
366+ err = brcmf_join_param_setup_for_version (drvr , ver );
367367 } else {
368368 /* Default to version 0, unless it is one of the firmware branches
369369 * that doesn't have a join_ver iovar but are still version 1 */
370370 u8 version = 0 ;
371371 struct brcmf_wlc_version_le ver ;
372- err = brcmf_fil_iovar_data_get (ifp , "wlc_ver" , & ver , sizeof (ver ));
372+ err = brcmf_fil_iovar_data_get (ifp , "wlc_ver" , & ver ,
373+ sizeof (ver ));
373374 if (!err ) {
374375 u16 major = le16_to_cpu (ver .wlc_ver_major );
375376 u16 minor = le16_to_cpu (ver .wlc_ver_minor );
@@ -382,32 +383,47 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
382383 version = 1 ;
383384 }
384385 }
385- brcmf_join_param_setup_for_version (drvr , version );
386+ err = brcmf_join_param_setup_for_version (drvr , version );
386387 }
387- err = brcmf_fil_iovar_data_get (ifp , "scan_ver" , & scan_ver , sizeof (scan_ver ));
388+ if (err ) {
389+ bphy_err (drvr , "Error setting up join structure handler: %d\n" ,
390+ err );
391+ return err ;
392+ }
393+ err = brcmf_fil_iovar_data_get (ifp , "scan_ver" , & scan_ver ,
394+ sizeof (scan_ver ));
388395 if (!err ) {
389396 u16 ver = le16_to_cpu (scan_ver .scan_ver_major );
390- brcmf_scan_param_setup_for_version (drvr , ver );
397+ err = brcmf_scan_param_setup_for_version (drvr , ver );
391398 } else {
392399 /* Default to version 1. */
393- brcmf_scan_param_setup_for_version (drvr , 1 );
400+ err = brcmf_scan_param_setup_for_version (drvr , 1 );
401+ }
402+ if (err ) {
403+ bphy_err (drvr , "Error setting up scan structure handler: %d\n" ,
404+ err );
405+ return err ;
394406 }
395-
396407 /* See what version of PFN scan is supported*/
397408 err = brcmf_fil_iovar_data_get (ifp , "pno_set" , & pno_params ,
398409 sizeof (pno_params ));
399410 if (!err ) {
400- brcmf_pno_setup_for_version (drvr , le16_to_cpu (pno_params .version ));
411+ err = brcmf_pno_setup_for_version (
412+ drvr , le16_to_cpu (pno_params .version ));
401413 } else {
402414 /* Default to version 2, supported by all chips we support. */
403- brcmf_pno_setup_for_version (drvr , 2 );
415+ err = brcmf_pno_setup_for_version (drvr , 2 );
416+ }
417+ if (err ) {
418+ bphy_err (drvr , "Error setting up escan structure handler: %d\n" ,
419+ err );
420+ return err ;
404421 }
405422
406423 brcmf_feat_wlc_version_overrides (drvr );
407424 brcmf_feat_firmware_overrides (drvr );
408425
409426 brcmf_fwvid_feat_attach (ifp );
410-
411427 if (drvr -> settings -> feature_disable ) {
412428 brcmf_dbg (INFO , "Features: 0x%02x, disable: 0x%02x\n" ,
413429 ifp -> drvr -> feat_flags ,
@@ -427,6 +443,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
427443 /* no quirks */
428444 break ;
429445 }
446+ return 0 ;
430447}
431448
432449void brcmf_feat_debugfs_create (struct brcmf_pub * drvr )
0 commit comments