Patch "staging: rtl8712u: Fix endian settings for structs describing network packets" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
staging: rtl8712u: Fix endian settings for structs describing network packets
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
staging-rtl8712u-fix-endian-settings-for-structs-describing-network-packets.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Mon Nov 6 10:07:35 CET 2017
From: Larry Finger <[email protected]>
Date: Sat, 7 Oct 2017 22:36:48 +0000
Subject: staging: rtl8712u: Fix endian settings for structs describing network packets
From: Larry Finger <[email protected]>
[ Upstream commit 221c46d28957bd6e2158abc2179ce4a8c9ce07d3 ]
The headers describing a number of network packets do not have the correct endian settings for several types of data.
--- drivers/staging/rtl8712/ieee80211.h | 84 ++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 42 deletions(-)
drivers/staging/rtl8712/ieee80211.h +42 -42
@@ -138,51 +138,51 @@ struct ieee_ibss_seq { };struct ieee80211_hdr { -u16 frame_ctl; -u16 duration_id; +__le16 frame_ctl; +__le16 duration_id;u8 addr1[ETH_ALEN ];u8 addr2[ETH_ALEN ];u8 addr3[ETH_ALEN ]; -u16 seq_ctl; +__le16 seq_ctl;u8 addr4[ETH_ALEN ]; -} __packed; +} __packed__aligned(2) ;struct ieee80211_hdr_3addr { -u16 frame_ctl; -u16 duration_id; +__le16 frame_ctl; +__le16 duration_id;u8 addr1[ETH_ALEN ];u8 addr2[ETH_ALEN ];u8 addr3[ETH_ALEN ]; -u16 seq_ctl; -} __packed; +__le16 seq_ctl; +} __packed__aligned(2) ;struct ieee80211_hdr_qos { -u16 frame_ctl; -u16 duration_id; +__le16 frame_ctl; +__le16 duration_id;u8 addr1[ETH_ALEN ];u8 addr2[ETH_ALEN ];u8 addr3[ETH_ALEN ]; -u16 seq_ctl; +__le16 seq_ctl;u8 addr4[ETH_ALEN ]; -u16 qc; -} __packed; +__le16 qc; +} __packed__aligned(2) ;struct ieee80211_hdr_3addr_qos { -u16 frame_ctl; -u16 duration_id; +__le16 frame_ctl; +__le16 duration_id;u8 addr1[ETH_ALEN ];u8 addr2[ETH_ALEN ];u8 addr3[ETH_ALEN ]; -u16 seq_ctl; -u16 qc; +__le16 seq_ctl; +__le16 qc; } __packed;struct eapol {u8 snap[6 ]; -u16 ethertype; +__be16 ethertype;u8 version;u8 type; -u16 length; +__le16 length; } __packed;enum eap_type {
@@ -514,13 +514,13 @@ struct ieee80211_security {*/ struct ieee80211_header_data { -u16 frame_ctl; -u16 duration_id; +__le16 frame_ctl; +__le16 duration_id;u8 addr1[6 ];u8 addr2[6 ];u8 addr3[6 ]; -u16 seq_ctrl; -}; +__le16 seq_ctrl; +} __packed__aligned(2) ;#define BEACON_PROBE_SSID_ID_POSITION 12
@@ -552,18 +552,18 @@ struct ieee80211_info_element {/* * These are the data types that can make up management packets * -u16 auth_algorithm; -u16 auth_sequence; -u16 beacon_interval; -u16 capability; +__le16 auth_algorithm; +__le16 auth_sequence; +__le16 beacon_interval; +__le16 capability; u8 current_ap[ETH_ALEN]; -u16 listen_interval; +__le16 listen_interval; struct { u16 association_id:14, reserved:2; } __packed; -u32 time_stamp[2]; -u16 reason; -u16 status; +__le32 time_stamp[2]; +__le16 reason; +__le16 status; */ #define IEEE80211_DEFAULT_TX_ESSID "Penguin"
@@ -571,16 +571,16 @@ struct ieee80211_info_element {struct ieee80211_authentication {struct ieee80211_header_data header; -u16 algorithm; -u16 transaction; -u16 status; +__le16 algorithm; +__le16 transaction; +__le16 status; } __packed;struct ieee80211_probe_response {struct ieee80211_header_data header; -u32 time_stamp[2 ]; -u16 beacon_interval; -u16 capability; +__le32 time_stamp[2 ]; +__le16 beacon_interval; +__le16 capability;struct ieee80211_info_element info_element; } __packed;
@@ -590,16 +590,16 @@ struct ieee80211_probe_request {struct ieee80211_assoc_request_frame {struct ieee80211_hdr_3addr header; -u16 capability; -u16 listen_interval; +__le16 capability; +__le16 listen_interval;struct ieee80211_info_element_hdr info_element; } __packed;struct ieee80211_assoc_response_frame {struct ieee80211_hdr_3addr header; -u16 capability; -u16 status; -u16 aid; +__le16 capability; +__le16 status; +__le16 aid; } __packed;struct ieee80211_txb {
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/staging-r8712u-fix-sparse-warning-in-rtl871x_xmit.c.patch queue-4.9/staging-rtl8712u-fix-endian-settings-for-structs-describing-network-packets.patch