func: static brcmf_notify_sched_scan_results(struct brcmf_if const struct brcmf_event_msg *e, void *data) struct brcmf_cfg80211_info * cfg = ifp -> drvr -> config ; struct brcmf_pno_net_info_le * netinfo , * netinfo_start ; struct cfg80211_scan_request * request = NULL ; struct cfg80211_ssid * ssid = NULL ; struct ieee80211_channel * channel = NULL ; struct brcmf_pno_scanresults_le * pfn_result ; u32 result_count ; if ( e -> datalen < ( sizeof ( * pfn_result ) + sizeof ( * netinfo ) ) )  if ( e -> event_code == BRCMF_E_PFN_NET_LOST )  pfn_result = ( struct brcmf_pno_scanresults_le * ) data; result_count = le32_to_cpu ( pfn_result -> count ); if ( result_count > 0 )  int i ; request = kzalloc ( sizeof ( * request ) , GFP_KERNEL ); ssid = kcalloc ( result_count , sizeof ( * ssid ) , GFP_KERNEL ); channel = kcalloc ( result_count , sizeof ( * channel ) , GFP_KERNEL ); if ( ! request || ! ssid || ! channel )  data += sizeof ( struct brcmf_pno_scanresults_le ); netinfo_start = ( struct brcmf_pno_net_info_le * ) data; for (i = 0; i < result_count; i++) netinfo = & netinfo_start [ i ]; if ( ! netinfo )  if ( test_bit ( BRCMF_SCAN_STATUS_BUSY , & cfg -> scan_status ) )  brcmf_abort_scanning ( cfg ); void brcmf_abort_scanning(struct brcmf_cfg80211_info *cfg) struct escan_info * escan = & cfg -> escan_info ; if ( cfg -> scan_request )  escan -> escan_state = WL_ESCAN_STATE_IDLE; brcmf_notify_escan_complete ( cfg , escan -> ifp , true , true ); s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info struct brcmf_if *ifp, bool bool fw_abort) struct brcmf_scan_params_le params_le ; if ( fw_abort )  memset ( & params_le , 0 , sizeof ( params_le ) ); eth_broadcast_addr ( params_le . bssid ); params_le . bss_type = DOT11_BSSTYPE_ANY; params_le . scan_type = 0; params_le . channel_num = cpu_to_le32 ( 1 ); params_le . nprobes = cpu_to_le32 ( 1 ); params_le . active_time = cpu_to_le32 ( - 1 ); params_le . passive_time = cpu_to_le32 ( - 1 ); params_le . home_time = cpu_to_le32 ( - 1 ); params_le . channel_list [ 0 ] = cpu_to_le16 ( - 1 ); err = brcmf_fil_cmd_data_set ( ifp , BRCMF_C_SCAN , & params_le , sizeof ( params_le ) ); if ( err )  return err ; 