From: John Whitmore <johnfwhitmore@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: devel@driverdev.osuosl.org, gregkh@linuxfoundation.org,
John Whitmore <johnfwhitmore@gmail.com>
Subject: [PATCH 03/14] staging:rtl8192u: Remove union from qos_tsinfo - Style
Date: Tue, 31 Jul 2018 21:59:54 +0100 [thread overview]
Message-ID: <20180731210005.17452-4-johnfwhitmore@gmail.com> (raw)
In-Reply-To: <20180731210005.17452-1-johnfwhitmore@gmail.com>
The union is never used as a union but only as a bitfield struct.
One side of the union (u8 charData[3];) Only seems to be present to
ensure that the structures size is 3 bytes in length. That length, of
the structure is dictated by the largest element of the union, so the
byte array only dictates size if it's the largest element of the union.
The byte array and union add nothing.
The union has therefore been removed and the structure and access to
the structure simplified.
Additionally since one of the bitfield variables (ucAccessPolicy)
spans a byte boundary the base type of the bitfield has been changed
from u8 to u16. Compilers have probably moved on from having an issue
with this, call it OCD.
The changes are coding style in nature and should not impact runtime
code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com>
---
.../rtl8192u/ieee80211/rtl819x_BAProc.c | 2 +-
.../staging/rtl8192u/ieee80211/rtl819x_Qos.h | 40 +++++++++----------
.../rtl8192u/ieee80211/rtl819x_TSProc.c | 26 ++++++------
3 files changed, 33 insertions(+), 35 deletions(-)
diff --git a/drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c b/drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c
index e296813203aa..4e8bcc25ad2c 100644
--- a/drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c
+++ b/drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c
@@ -626,7 +626,7 @@ TsInitAddBA(
pBA->DialogToken++; // DialogToken: Only keep the latest dialog token
pBA->BaParamSet.field.AMSDU_Support = 0; // Do not support A-MSDU with A-MPDU now!!
pBA->BaParamSet.field.BAPolicy = Policy; // Policy: Delayed or Immediate
- pBA->BaParamSet.field.TID = pTS->ts_common_info.t_spec.f.TSInfo.field.ucTSID; // TID
+ pBA->BaParamSet.field.TID = pTS->ts_common_info.t_spec.f.TSInfo.ucTSID; // TID
// BufferSize: This need to be set according to A-MPDU vector
pBA->BaParamSet.field.BufferSize = 32; // BufferSize: This need to be set according to A-MPDU vector
pBA->BaTimeoutValue = 0; // Timeout value: Set 0 to disable Timer
diff --git a/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h b/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h
index 1f16d1692c03..4faa89db8355 100644
--- a/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h
+++ b/drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h
@@ -26,26 +26,24 @@ enum direction_value {
};
-//
-// TS Info field in WMM TSPEC Element.
-// Ref:
-// 1. WMM spec 2.2.11: WME TSPEC Element, p.18.
-// 2. 8185 QoS code: QOS_TSINFO [def. in QoS_mp.h]
-//
-union qos_tsinfo {
- u8 charData[3];
- struct {
- u8 ucTrafficType:1; //WMM is reserved
- u8 ucTSID:4;
- u8 ucDirection:2;
- u8 ucAccessPolicy:2; //WMM: bit8=0, bit7=1
- u8 ucAggregation:1; //WMM is reserved
- u8 ucPSB:1; //WMMSA is APSD
- u8 ucUP:3;
- u8 ucTSInfoAckPolicy:2; //WMM is reserved
- u8 ucSchedule:1; //WMM is reserved
- u8 ucReserved:7;
- } field;
+/*
+ * TS Info field in WMM TSPEC Element.
+ * Ref:
+ * 1. WMM spec 2.2.11: WME TSPEC Element, p.18.
+ * 2. 8185 QoS code: QOS_TSINFO [def. in QoS_mp.h]
+ * Note: sizeof 3 Bytes
+ */
+struct qos_tsinfo {
+ u16 ucTrafficType:1; //WMM is reserved
+ u16 ucTSID:4;
+ u16 ucDirection:2;
+ u16 ucAccessPolicy:2; //WMM: bit8=0, bit7=1
+ u16 ucAggregation:1; //WMM is reserved
+ u16 ucPSB:1; //WMMSA is APSD
+ u16 ucUP:3;
+ u16 ucTSInfoAckPolicy:2; //WMM is reserved
+ u8 ucSchedule:1; //WMM is reserved
+ u8 ucReserved:7;
};
//
@@ -56,7 +54,7 @@ typedef union _TSPEC_BODY {
u8 charData[55];
struct {
- union qos_tsinfo TSInfo; //u8 TSInfo[3];
+ struct qos_tsinfo TSInfo; //u8 TSInfo[3];
u16 NominalMSDUsize;
u16 MaxMSDUsize;
u32 MinServiceItv;
diff --git a/drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c b/drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c
index c21bf3d3b242..39a074621b3b 100644
--- a/drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c
+++ b/drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c
@@ -246,10 +246,10 @@ static struct ts_common_info *SearchAdmitTRStream(struct ieee80211_device *ieee,
if (!search_dir[dir])
continue;
list_for_each_entry(pRet, psearch_list, list){
- // IEEE80211_DEBUG(IEEE80211_DL_TS, "ADD:%pM, TID:%d, dir:%d\n", pRet->Addr, pRet->TSpec.f.TSInfo.field.ucTSID, pRet->TSpec.f.TSInfo.field.ucDirection);
+ // IEEE80211_DEBUG(IEEE80211_DL_TS, "ADD:%pM, TID:%d, dir:%d\n", pRet->Addr, pRet->TSpec.f.TSInfo.ucTSID, pRet->TSpec.f.TSInfo.ucDirection);
if (memcmp(pRet->addr, Addr, 6) == 0)
- if (pRet->t_spec.f.TSInfo.field.ucTSID == TID)
- if(pRet->t_spec.f.TSInfo.field.ucDirection == dir) {
+ if (pRet->t_spec.f.TSInfo.ucTSID == TID)
+ if(pRet->t_spec.f.TSInfo.ucDirection == dir) {
// printk("Bingo! got it\n");
break;
}
@@ -355,7 +355,7 @@ bool GetTs(
// For HCCA or WMMSA, TS cannot be addmit without negotiation.
//
TSPEC_BODY TSpec;
- union qos_tsinfo *pTSInfo = &TSpec.f.TSInfo;
+ struct qos_tsinfo *pTSInfo = &TSpec.f.TSInfo;
struct list_head *pUnusedList =
(TxRxSelect == TX_DIR)?
(&ieee->Tx_TS_Unused_List):
@@ -383,15 +383,15 @@ bool GetTs(
IEEE80211_DEBUG(IEEE80211_DL_TS, "to init current TS, UP:%d, Dir:%d, addr:%pM\n", UP, Dir, Addr);
// Prepare TS Info releated field
- pTSInfo->field.ucTrafficType = 0; // Traffic type: WMM is reserved in this field
- pTSInfo->field.ucTSID = UP; // TSID
- pTSInfo->field.ucDirection = Dir; // Direction: if there is DirectLink, this need additional consideration.
- pTSInfo->field.ucAccessPolicy = 1; // Access policy
- pTSInfo->field.ucAggregation = 0; // Aggregation
- pTSInfo->field.ucPSB = 0; // Aggregation
- pTSInfo->field.ucUP = UP; // User priority
- pTSInfo->field.ucTSInfoAckPolicy = 0; // Ack policy
- pTSInfo->field.ucSchedule = 0; // Schedule
+ pTSInfo->ucTrafficType = 0; // Traffic type: WMM is reserved in this field
+ pTSInfo->ucTSID = UP; // TSID
+ pTSInfo->ucDirection = Dir; // Direction: if there is DirectLink, this need additional consideration.
+ pTSInfo->ucAccessPolicy = 1; // Access policy
+ pTSInfo->ucAggregation = 0; // Aggregation
+ pTSInfo->ucPSB = 0; // Aggregation
+ pTSInfo->ucUP = UP; // User priority
+ pTSInfo->ucTSInfoAckPolicy = 0; // Ack policy
+ pTSInfo->ucSchedule = 0; // Schedule
MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0);
AdmitTS(ieee, *ppTS, 0);
--
2.18.0
next prev parent reply other threads:[~2018-07-31 21:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-31 20:59 [PATCH 00/14] staging:rtl8192u: rtl819x_Qos.h style changes John Whitmore
2018-07-31 20:59 ` [PATCH 01/14] staging:rtl8192u: Clean cmpk_counttxstatistic() comments - Style John Whitmore
2018-07-31 20:59 ` [PATCH 02/14] staging:rtl8192u: Remove union from aci_aifsn " John Whitmore
2018-07-31 20:59 ` John Whitmore [this message]
2018-07-31 20:59 ` [PATCH 04/14] staging:rtl8192u: Rename members of struct qos_tsinfo " John Whitmore
2018-07-31 20:59 ` [PATCH 05/14] staging:rtl8192u: Refactor union TSPEC_BODY " John Whitmore
2018-07-31 20:59 ` [PATCH 06/14] staging:rtl8192u: Rename TSInfo " John Whitmore
2018-07-31 20:59 ` [PATCH 07/14] staging:rtl8192u: Rename tspec_body members " John Whitmore
2018-07-31 20:59 ` [PATCH 08/14] staging:rtl8192u: Remove commented out code " John Whitmore
2018-07-31 21:00 ` [PATCH 09/14] staging:rtl8192u: Move QOS_TCLAS to rtl819x_TS.h " John Whitmore
2018-07-31 21:00 ` [PATCH 10/14] staging:rtl8192u: rename OCTET_STRING " John Whitmore
2018-07-31 21:00 ` [PATCH 11/14] staging:rtl8192u: Rename octet_string members " John Whitmore
2018-07-31 21:00 ` [PATCH 12/14] staging:rtl8192u: Remove unused UP2AC " John Whitmore
2018-07-31 21:00 ` [PATCH 13/14] staging:rtl8192u: Rename IsACValid and add parenthesis " John Whitmore
2018-07-31 21:00 ` [PATCH 14/14] staging:rtl8192u: Change clock comment " John Whitmore
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180731210005.17452-4-johnfwhitmore@gmail.com \
--to=johnfwhitmore@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox