@ -135,14 +135,15 @@ static int iwlagn_rx_reply_error(struct iwl_priv *priv,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_error_resp * err_resp = ( void * ) pkt - > data ;
IWL_ERR ( priv , " Error Reply type 0x%08X cmd %s (0x%02X) "
" seq 0x%04X ser 0x%08X \n " ,
le32_to_cpu ( pkt - > u . err_resp . error_type ) ,
get_cmd_string ( pkt - > u . err_resp . cmd_id ) ,
pkt - > u . err_resp . cmd_id ,
le16_to_cpu ( pkt - > u . err_resp . bad_cmd_seq_num ) ,
le32_to_cpu ( pkt - > u . err_resp . error_info ) ) ;
le32_to_cpu ( err_res p- > error_type ) ,
get_cmd_string ( err_res p- > cmd_id ) ,
err_res p- > cmd_id ,
le16_to_cpu ( err_res p- > bad_cmd_seq_num ) ,
le32_to_cpu ( err_res p- > error_info ) ) ;
return 0 ;
}
@ -150,7 +151,7 @@ static int iwlagn_rx_csa(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_csa_notification * csa = & ( pkt - > u . csa_notif ) ;
struct iwl_csa_notification * csa = ( void * ) pkt - > data ;
/*
* MULTI - FIXME
* See iwlagn_mac_channel_switch .
@ -181,7 +182,7 @@ static int iwlagn_rx_spectrum_measure_notif(struct iwl_priv *priv,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_spectrum_notification * report = & ( pkt - > u . spectrum_notif ) ;
struct iwl_spectrum_notification * report = ( void * ) pkt - > data ;
if ( ! report - > state ) {
IWL_DEBUG_11H ( priv ,
@ -200,7 +201,7 @@ static int iwlagn_rx_pm_sleep_notif(struct iwl_priv *priv,
{
# ifdef CONFIG_IWLWIFI_DEBUG
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_sleep_notification * sleep = & ( pkt - > u . sleep_notif ) ;
struct iwl_sleep_notification * sleep = ( void * ) pkt - > data ;
IWL_DEBUG_RX ( priv , " sleep mode: %d, src: %d \n " ,
sleep - > pm_sleep_mode , sleep - > pm_wakeup_src ) ;
# endif
@ -217,7 +218,7 @@ static int iwlagn_rx_pm_debug_statistics_notif(struct iwl_priv *priv,
IWL_DEBUG_RADIO ( priv , " Dumping %d bytes of unhandled "
" notification for %s: \n " , len ,
get_cmd_string ( pkt - > hdr . cmd ) ) ;
iwl_print_hex_dump ( priv , IWL_DL_RADIO , pkt - > u . raw , len ) ;
iwl_print_hex_dump ( priv , IWL_DL_RADIO , pkt - > data , len ) ;
return 0 ;
}
@ -226,7 +227,7 @@ static int iwlagn_rx_beacon_notif(struct iwl_priv *priv,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwlagn_beacon_notif * beacon = ( void * ) pkt - > u . raw ;
struct iwlagn_beacon_notif * beacon = ( void * ) pkt - > data ;
# ifdef CONFIG_IWLWIFI_DEBUG
u16 status = le16_to_cpu ( beacon - > beacon_notify_hdr . status . status ) ;
u8 rate = iwl_hw_get_rate ( beacon - > beacon_notify_hdr . rate_n_flags ) ;
@ -515,7 +516,7 @@ static int iwlagn_rx_statistics(struct iwl_priv *priv,
if ( len = = sizeof ( struct iwl_bt_notif_statistics ) ) {
struct iwl_bt_notif_statistics * stats ;
stats = & pkt - > u . stats_bt ;
stats = ( void * ) & pkt - > data ;
flag = & stats - > flag ;
common = & stats - > general . common ;
rx_non_phy = & stats - > rx . general . common ;
@ -533,7 +534,7 @@ static int iwlagn_rx_statistics(struct iwl_priv *priv,
# endif
} else if ( len = = sizeof ( struct iwl_notif_statistics ) ) {
struct iwl_notif_statistics * stats ;
stats = & pkt - > u . stats ;
stats = ( void * ) & pkt - > data ;
flag = & stats - > flag ;
common = & stats - > general . common ;
rx_non_phy = & stats - > rx . general ;
@ -601,8 +602,9 @@ static int iwlagn_rx_reply_statistics(struct iwl_priv *priv,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_notif_statistics * stats = ( void * ) pkt - > data ;
if ( le32_to_cpu ( pkt - > u . stats . flag ) & UCODE_STATISTICS_CLEAR_MSK ) {
if ( le32_to_cpu ( stats - > flag ) & UCODE_STATISTICS_CLEAR_MSK ) {
# ifdef CONFIG_IWLWIFI_DEBUGFS
memset ( & priv - > accum_stats , 0 ,
sizeof ( priv - > accum_stats ) ) ;
@ -624,7 +626,8 @@ static int iwlagn_rx_card_state_notif(struct iwl_priv *priv,
struct iwl_device_cmd * cmd )
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
u32 flags = le32_to_cpu ( pkt - > u . card_state_notif . flags ) ;
struct iwl_card_state_notif * card_state_notif = ( void * ) pkt - > data ;
u32 flags = le32_to_cpu ( card_state_notif - > flags ) ;
unsigned long status = priv - > shrd - > status ;
IWL_DEBUG_RF_KILL ( priv , " Card state received: HW:%s SW:%s CT:%s \n " ,
@ -678,9 +681,8 @@ static int iwlagn_rx_missed_beacon_notif(struct iwl_priv *priv,
{
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_missed_beacon_notif * missed_beacon ;
struct iwl_missed_beacon_notif * missed_beacon = ( void * ) pkt - > data ;
missed_beacon = & pkt - > u . missed_beacon ;
if ( le32_to_cpu ( missed_beacon - > consecutive_missed_beacons ) >
priv - > missed_beacon_threshold ) {
IWL_DEBUG_CALIB ( priv ,
@ -704,7 +706,7 @@ static int iwlagn_rx_reply_rx_phy(struct iwl_priv *priv,
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
priv - > last_phy_res_valid = true ;
memcpy ( & priv - > last_phy_res , pkt - > u . raw ,
memcpy ( & priv - > last_phy_res , pkt - > data ,
sizeof ( struct iwl_rx_phy_res ) ) ;
return 0 ;
}
@ -949,12 +951,12 @@ static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
* received .
*/
if ( pkt - > hdr . cmd = = REPLY_RX ) {
phy_res = ( struct iwl_rx_phy_res * ) pkt - > u . raw ;
header = ( struct ieee80211_hdr * ) ( pkt - > u . raw + sizeof ( * phy_res )
phy_res = ( struct iwl_rx_phy_res * ) pkt - > data ;
header = ( struct ieee80211_hdr * ) ( pkt - > data + sizeof ( * phy_res )
+ phy_res - > cfg_phy_cnt ) ;
len = le16_to_cpu ( phy_res - > byte_count ) ;
rx_pkt_status = * ( __le32 * ) ( pkt - > u . raw + sizeof ( * phy_res ) +
rx_pkt_status = * ( __le32 * ) ( pkt - > data + sizeof ( * phy_res ) +
phy_res - > cfg_phy_cnt + len ) ;
ampdu_status = le32_to_cpu ( rx_pkt_status ) ;
} else {
@ -963,10 +965,10 @@ static int iwlagn_rx_reply_rx(struct iwl_priv *priv,
return 0 ;
}
phy_res = & priv - > last_phy_res ;
amsdu = ( struct iwl_rx_mpdu_res_start * ) pkt - > u . raw ;
header = ( struct ieee80211_hdr * ) ( pkt - > u . raw + sizeof ( * amsdu ) ) ;
amsdu = ( struct iwl_rx_mpdu_res_start * ) pkt - > data ;
header = ( struct ieee80211_hdr * ) ( pkt - > data + sizeof ( * amsdu ) ) ;
len = le16_to_cpu ( amsdu - > byte_count ) ;
rx_pkt_status = * ( __le32 * ) ( pkt - > u . raw + sizeof ( * amsdu ) + len ) ;
rx_pkt_status = * ( __le32 * ) ( pkt - > data + sizeof ( * amsdu ) + len ) ;
ampdu_status = iwlagn_translate_rx_status ( priv ,
le32_to_cpu ( rx_pkt_status ) ) ;
}
@ -1051,7 +1053,7 @@ static int iwlagn_rx_noa_notification(struct iwl_priv *priv,
{
struct iwl_wipan_noa_data * new_data , * old_data ;
struct iwl_rx_packet * pkt = rxb_addr ( rxb ) ;
struct iwl_wipan_noa_notification * noa_notif = ( void * ) pkt - > u . raw ;
struct iwl_wipan_noa_notification * noa_notif = ( void * ) pkt - > data ;
/* no condition -- we're in softirq */
old_data = rcu_dereference_protected ( priv - > noa_data , true ) ;