@@ -301,7 +301,7 @@ static int brcmf_feat_fwcap_debugfs_read(struct seq_file *seq, void *data)
301301 return 0 ;
302302}
303303
304- void brcmf_feat_attach (struct brcmf_pub * drvr )
304+ int brcmf_feat_attach (struct brcmf_pub * drvr )
305305{
306306 struct brcmf_if * ifp = brcmf_get_ifp (drvr , 0 );
307307 struct brcmf_join_version_le join_ver ;
@@ -362,13 +362,14 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
362362 err = brcmf_fil_iovar_data_get (ifp , "join_ver" , & join_ver , sizeof (join_ver ));
363363 if (!err ) {
364364 u16 ver = le16_to_cpu (join_ver .join_ver_major );
365- brcmf_join_param_setup_for_version (drvr , ver );
365+ err = brcmf_join_param_setup_for_version (drvr , ver );
366366 } else {
367367 /* Default to version 0, unless it is one of the firmware branches
368368 * that doesn't have a join_ver iovar but are still version 1 */
369369 u8 version = 0 ;
370370 struct brcmf_wlc_version_le ver ;
371- err = brcmf_fil_iovar_data_get (ifp , "wlc_ver" , & ver , sizeof (ver ));
371+ err = brcmf_fil_iovar_data_get (ifp , "wlc_ver" , & ver ,
372+ sizeof (ver ));
372373 if (!err ) {
373374 u16 major = le16_to_cpu (ver .wlc_ver_major );
374375 u16 minor = le16_to_cpu (ver .wlc_ver_minor );
@@ -381,32 +382,47 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
381382 version = 1 ;
382383 }
383384 }
384- brcmf_join_param_setup_for_version (drvr , version );
385+ err = brcmf_join_param_setup_for_version (drvr , version );
385386 }
386- err = brcmf_fil_iovar_data_get (ifp , "scan_ver" , & scan_ver , sizeof (scan_ver ));
387+ if (err ) {
388+ bphy_err (drvr , "Error setting up join structure handler: %d\n" ,
389+ err );
390+ return err ;
391+ }
392+ err = brcmf_fil_iovar_data_get (ifp , "scan_ver" , & scan_ver ,
393+ sizeof (scan_ver ));
387394 if (!err ) {
388395 u16 ver = le16_to_cpu (scan_ver .scan_ver_major );
389- brcmf_scan_param_setup_for_version (drvr , ver );
396+ err = brcmf_scan_param_setup_for_version (drvr , ver );
390397 } else {
391398 /* Default to version 1. */
392- brcmf_scan_param_setup_for_version (drvr , 1 );
399+ err = brcmf_scan_param_setup_for_version (drvr , 1 );
400+ }
401+ if (err ) {
402+ bphy_err (drvr , "Error setting up scan structure handler: %d\n" ,
403+ err );
404+ return err ;
393405 }
394-
395406 /* See what version of PFN scan is supported*/
396407 err = brcmf_fil_iovar_data_get (ifp , "pno_set" , & pno_params ,
397408 sizeof (pno_params ));
398409 if (!err ) {
399- brcmf_pno_setup_for_version (drvr , le16_to_cpu (pno_params .version ));
410+ err = brcmf_pno_setup_for_version (
411+ drvr , le16_to_cpu (pno_params .version ));
400412 } else {
401413 /* Default to version 2, supported by all chips we support. */
402- brcmf_pno_setup_for_version (drvr , 2 );
414+ err = brcmf_pno_setup_for_version (drvr , 2 );
415+ }
416+ if (err ) {
417+ bphy_err (drvr , "Error setting up escan structure handler: %d\n" ,
418+ err );
419+ return err ;
403420 }
404421
405422 brcmf_feat_wlc_version_overrides (drvr );
406423 brcmf_feat_firmware_overrides (drvr );
407424
408425 brcmf_fwvid_feat_attach (ifp );
409-
410426 if (drvr -> settings -> feature_disable ) {
411427 brcmf_dbg (INFO , "Features: 0x%02x, disable: 0x%02x\n" ,
412428 ifp -> drvr -> feat_flags ,
@@ -426,6 +442,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
426442 /* no quirks */
427443 break ;
428444 }
445+ return 0 ;
429446}
430447
431448void brcmf_feat_debugfs_create (struct brcmf_pub * drvr )
0 commit comments