This patch focuses on fixing the following warning generated
by checkpatch.pl for the file rxtx.c :
Prefer ether_addr_copy() over memcpy() if the Ethernet addresses
are __aligned(2)
The changes were applied using the following coccinelle rule:
@@ expression e1, e2; @@
- memcpy(e1, e2, ETH_ALEN);
+ ether_addr_copy(e1, e2);
After applying the rule, some referencing operations were
adjusted manually to avoid a gcc compilation warning.
According to ether_addr_copy() description and functionality,
all Ethernet addresses should align to the u16 datatype.
A check was made on the following datastructures:
- vnt_mic_hdr
- tagS802_11Header
- tagSEthernetHeader
- vnt_rts_g
- ieee80211_rts
- vnt_private
To maintain that the array abyCurrentNetAddr in vnt_private is aligned,
it was placed before the boolean bLinkPass in the struct definition.
The definition can be found in device.h. A couple of variables were
packed in holes detected by pahole.
Output of pahole when running it on rxtx.o after the changes:
truct tagSEthernetHeader {
unsigned char abyDstAddr[6]; /* 0 6 */
unsigned char abySrcAddr[6]; /* 6 6 */
short unsigned int wType; /* 12 2 */
/* size: 14, cachelines: 1, members: 3 */
/* last cacheline: 14 bytes */
};
struct tagS802_11Header {
short unsigned int wFrameCtl; /* 0 2 */
short unsigned int wDurationID; /* 2 2 */
unsigned char abyAddr1[6]; /* 4 6 */
unsigned char abyAddr2[6]; /* 10 6 */
unsigned char abyAddr3[6]; /* 16 6 */
short unsigned int wSeqCtl; /* 22 2 */
unsigned char abyAddr4[6]; /* 24 6 */
/* size: 30, cachelines: 1, members: 7 */
/* last cacheline: 30 bytes */
};
struct ieee80211_rts {
__le16 frame_control; /* 0 2 */
__le16 duration; /* 2 2 */
u8 ra[6]; /* 4 6 */
u8 ta[6]; /* 10 6 */
/* size: 16, cachelines: 1, members: 4 */
/* last cacheline: 16 bytes */
};
struct vnt_private {
struct pci_dev * pcid; /* 0 4 */
struct net_device * dev; /* 4 4 */
dma_addr_t pool_dma; /* 8 4 */
dma_addr_t rd0_pool_dma; /* 12 4 */
dma_addr_t rd1_pool_dma; /* 16 4 */
dma_addr_t td0_pool_dma; /* 20 4 */
dma_addr_t td1_pool_dma; /* 24 4 */
dma_addr_t tx_bufs_dma0; /* 28 4 */
dma_addr_t tx_bufs_dma1; /* 32 4 */
dma_addr_t tx_beacon_dma; /* 36 4 */
unsigned char * tx0_bufs; /* 40 4 */
unsigned char * tx1_bufs; /* 44 4 */
unsigned char * tx_beacon_bufs; /* 48 4 */
CHIP_TYPE chip_id; /* 52 4 */
void * PortOffset; /* 56 4 */
long unsigned int dwIsr; /* 60 4 */
/*--- cacheline 1 boundary (64 bytes) ---*/
u32 memaddr; /* 64 4 */
u32 ioaddr; /* 68 4 */
u32 io_size; /* 72 4 */
unsigned char byRevId; /* 76 1 */
unsigned char byRxMode; /* 77 1 */
short unsigned int SubSystemID; /* 78 2 */
short unsigned int SubVendorID; /* 80 2 */
spinlock_t lock; /* 82 2 */
int nTxQueues; /* 84 4 */
volatile int iTDUsed; /* 88 8 */
volatile PSTxDesc apCurrTD; /* 96 8 */
volatile PSTxDesc apTailTD; /* 104 8 */
volatile PSTxDesc apTD0Rings; /* 112 4 */
volatile PSTxDesc apTD1Rings; /* 116 4 */
volatile PSRxDesc aRD0Ring; /* 120 4 */
volatile PSRxDesc aRD1Ring; /* 124 4 */
/*--- cacheline 2 boundary (128 bytes) ---*/
volatile PSRxDesc pCurrRD; /* 128 8 */
SCache sDupRxCache; /* 136 44 */
SDeFragControlBlock sRxDFCB[64]; /* 180 2048 */
/*--- cacheline 34 boundary (2176 bytes) was 52 bytes ago ---*/
unsigned int cbDFCB; /* 2228 4 */
unsigned int cbFreeDFCB; /* 2232 4 */
unsigned int uCurrentDFCBIdx; /* 2236 4 */
/*--- cacheline 35 boundary (2240 bytes) ---*/
OPTIONS sOpts; /* 2240 52 */
u32 flags; /* 2292 4 */
u32 rx_buf_sz; /* 2296 4 */
int multicast_limit; /* 2300 4 */
/*--- cacheline 36 boundary (2304 bytes) ---*/
pid_t MLMEThr_pid; /* 2304 4 */
struct completion notify; /* 2308 16 */
struct semaphore mlme_semaphore; /* 2324 16 */
u32 rx_bytes; /* 2340 4 */
unsigned char byLocalID; /* 2344 1 */
unsigned char byRFType; /* 2345 1 */
unsigned char byMaxPwrLevel; /* 2346 1 */
unsigned char byZoneType; /* 2347 1 */
bool bZoneRegExist; /* 2348 1 */
unsigned char byOriginalZonetype; /* 2349 1 */
unsigned char abyMacContext[384]; /* 2350 384 */
/*--- cacheline 42 boundary (2688 bytes) was 46 bytes ago ---*/
unsigned char abyCurrentNetAddr[6]; /* 2734 6 */
bool bLinkPass; /* 2740 1 */
/* XXX 3 bytes hole, try to pack */
SStatCounter scStatistic; /* 2744 776 */
/*--- cacheline 55 boundary (3520 bytes) ---*/
SDot11Counters s802_11Counter; /* 3520 172 */
/*--- cacheline 57 boundary (3648 bytes) was 44 bytes ago ---*/
PSMgmtObject pMgmt; /* 3692 4 */
SMgmtObject sMgmtObj; /* 3696 95840 */
/*--- cacheline 1555 boundary (99520 bytes) was 16 bytes ago ---*/
/* Bitfield combined with previous fields */
unsigned int uCurrRSSI; /* 0 4 */
unsigned char byCurrSQ; /* 0 1 */
long unsigned int dwTxAntennaSel; /* 0 4 */
long unsigned int dwRxAntennaSel; /* 0 4 */
unsigned char byAntennaCount; /* 0 1 */
unsigned char byRxAntennaMode; /* 0 1 */
unsigned char byTxAntennaMode; /* 0 1 */
bool bTxRxAntInv; /* 0 1 */
unsigned char * pbyTmpBuff; /* 0 4 */
unsigned int uSIFS; /* 0 4 */
unsigned int uDIFS; /* 0 4 */
unsigned int uEIFS; /* 0 4 */
unsigned int uSlot; /* 0 4 */
unsigned int uCwMin; /* 0 4 */
unsigned int uCwMax; /* 0 4 */
unsigned char bySIFS; /* 0 1 */
unsigned char byDIFS; /* 0 1 */
unsigned char byEIFS; /* 0 1 */
unsigned char bySlot; /* 0 1 */
unsigned char byCWMaxMin; /* 0 1 */
CARD_PHY_TYPE eCurrentPHYType; /* 0 4 */
VIA_BB_TYPE byBBType; /* 0 4 */
VIA_PKT_TYPE byPacketType; /* 0 4 */
short unsigned int wBasicRate; /* 0 2 */
unsigned char byACKRate; /* 0 1 */
unsigned char byTopOFDMBasicRate; /* 0 1 */
unsigned char byTopCCKBasicRate; /* 0 1 */
unsigned char byMinChannel; /* 0 1 */
unsigned char byMaxChannel; /* 0 1 */
unsigned int uConnectionRate; /* 0 4 */
unsigned char byPreambleType; /* 0 1 */
unsigned char byShortPreamble; /* 0 1 */
short unsigned int wCurrentRate; /* 0 2 */
short unsigned int wRTSThreshold; /* 0 2 */
short unsigned int wFragmentationThreshold; /* 0 2 */
unsigned char byShortRetryLimit; /* 0 1 */
unsigned char byLongRetryLimit; /* 0 1 */
enum nl80211_iftype op_mode; /* 0 4 */
unsigned char byOpMode; /* 0 1 */
bool bBSSIDFilter; /* 0 1 */
short unsigned int wMaxTransmitMSDULifetime; /* 0 2 */
unsigned char abyBSSID[6]; /* 0 6 */
unsigned char abyDesireBSSID[6]; /* 0 6 */
short unsigned int wACKDuration; /* 0 2 */
short unsigned int wRTSTransmitLen; /* 0 2 */
unsigned char byRTSServiceField; /* 0 1 */
unsigned char byRTSSignalField; /* 0 1 */
long unsigned int dwMaxReceiveLifetime; /* 0 4 */
bool bEncryptionEnable; /* 0 1 */
bool bLongHeader; /* 0 1 */
bool bShortSlotTime; /* 0 1 */
bool bProtectMode; /* 0 1 */
bool bNonERPPresent; /* 0 1 */
bool bBarkerPreambleMd; /* 0 1 */
unsigned char byERPFlag; /* 0 1 */
short unsigned int wUseProtectCntDown; /* 0 2 */
bool bRadioControlOff; /* 0 1 */
bool bRadioOff; /* 0 1 */
bool bEnablePSMode; /* 0 1 */
short unsigned int wListenInterval; /* 0 2 */
bool bPWBitOn; /* 0 1 */
WMAC_POWER_MODE ePSMode; /* 0 4 */
unsigned char byRadioCtl; /* 0 1 */
unsigned char byGPIO; /* 0 1 */
bool bHWRadioOff; /* 0 1 */
bool bPrvActive4RadioOFF; /* 0 1 */
bool bGPIOBlockRead; /* 0 1 */
short unsigned int wSeqCounter; /* 0 2 */
short unsigned int wBCNBufLen; /* 0 2 */
bool bBeaconBufReady; /* 0 1 */
bool bBeaconSent; /* 0 1 */
bool bIsBeaconBufReadySet; /* 0 1 */
unsigned int cbBeaconBufReadySetCnt; /* 0 4 */
bool bFixRate; /* 0 1 */
unsigned char byCurrentCh; /* 0 1 */
unsigned int uScanTime; /* 0 4 */
CMD_STATE eCommandState; /* 0 4 */
CMD_CODE eCommand; /* 0 4 */
bool bBeaconTx; /* 0 1 */
bool bStopBeacon; /* 0 1 */
bool bStopDataPkt; /* 0 1 */
bool bStopTx0Pkt; /* 0 1 */
unsigned int uAutoReConnectTime; /* 0 4 */
CMD_ITEM eCmdQueue[32]; /* 0 1408 */
unsigned int uCmdDequeueIdx; /* 0 4 */
unsigned int uCmdEnqueueIdx; /* 0 4 */
unsigned int cbFreeCmdQueue; /* 0 4 */
bool bCmdRunning; /* 0 1 */
bool bCmdClear; /* 0 1 */
bool bRoaming; /* 0 1 */
unsigned char abyIPAddr[4]; /* 0 4 */
long unsigned int ulTxPower; /* 0 4 */
NDIS_802_11_WEP_STATUS eEncryptionStatus; /* 0 4 */
bool bTransmitKey; /* 0 1 */
NDIS_802_11_WEP_STATUS eOldEncryptionStatus; /* 0 4 */
SKeyManagement sKey; /* 0 3784 */
long unsigned int dwIVCounter; /* 0 4 */
u64 qwPacketNumber; /* 0 8 */
unsigned int uCurrentWEPMode; /* 0 4 */
RC4Ext SBox; /* 0 264 */
unsigned char abyPRNG[35]; /* 0 35 */
unsigned char byKeyIndex; /* 0 1 */
unsigned int uKeyLength; /* 0 4 */
unsigned char abyKey[29]; /* 0 29 */
bool bAES; /* 0 1 */
unsigned char byCntMeasure; /* 0 1 */
unsigned int uAssocCount; /* 0 4 */
bool bMoreData; /* 0 1 */
bool bGrpAckPolicy; /* 0 1 */
bool bAssocInfoSet; /* 0 1 */
unsigned char byAutoFBCtrl; /* 0 1 */
bool bTxMICFail; /* 0 1 */
bool bRxMICFail; /* 0 1 */
unsigned int uRATEIdx; /* 0 4 */
bool bUpdateBBVGA; /* 0 1 */
unsigned int uBBVGADiffCount; /* 0 4 */
unsigned char byBBVGANew; /* 0 1 */
unsigned char byBBVGACurrent; /* 0 1 */
unsigned char abyBBVGA[4]; /* 0 4 */
long int ldBmThreshold[4]; /* 0 16 */
unsigned char byBBPreEDRSSI; /* 0 1 */
unsigned char byBBPreEDIndex; /* 0 1 */
bool bRadioCmd; /* 0 1 */
long unsigned int dwDiagRefCount; /* 0 4 */
unsigned char byFOETuning; /* 0 1 */
unsigned char byAutoPwrTunning; /* 0 1 */
short int sPSetPointCCK; /* 0 2 */
short int sPSetPointOFDMG; /* 0 2 */
short int sPSetPointOFDMA; /* 0 2 */
long int lPFormulaOffset; /* 0 4 */
short int sPThreshold; /* 0 2 */
char cAdjustStep; /* 0 1 */
char cMinTxAGC; /* 0 1 */
unsigned char byCCKPwr; /* 0 1 */
unsigned char byOFDMPwrG; /* 0 1 */
unsigned char byCurPwr; /* 0 1 */
char byCurPwrdBm; /* 0 1 */
unsigned char abyCCKPwrTbl[15]; /* 0 15 */
unsigned char abyOFDMPwrTbl[57]; /* 0 57 */
char abyCCKDefaultPwr[15]; /* 0 15 */
char abyOFDMDefaultPwr[57]; /* 0 57 */
char abyRegPwr[57]; /* 0 57 */
char abyLocalPwr[57]; /* 0 57 */
unsigned char byBBCR4d; /* 0 1 */
unsigned char byBBCRc9; /* 0 1 */
unsigned char byBBCR88; /* 0 1 */
unsigned char byBBCR09; /* 0 1 */
struct timer_list sTimerCommand; /* 0 52 */
struct timer_list sTimerTxData; /* 0 52 */
long unsigned int nTxDataTimeCout; /* 0 4 */
bool fTxDataInSleep; /* 0 1 */
bool IsTxDataTrigger; /* 0 1 */
bool fWPA_Authened; /* 0 1 */
unsigned char byReAssocCount; /* 0 1 */
unsigned char byLinkWaitCount; /* 0 1 */
unsigned char abyNodeName[17]; /* 0 17 */
bool bDiversityRegCtlON; /* 0 1 */
bool bDiversityEnable; /* 0 1 */
long unsigned int ulDiversityNValue; /* 0 4 */
long unsigned int ulDiversityMValue; /* 0 4 */
unsigned char byTMax; /* 0 1 */
unsigned char byTMax2; /* 0 1 */
unsigned char byTMax3; /* 0 1 */
long unsigned int ulSQ3TH; /* 0 4 */
long unsigned int uDiversityCnt; /* 0 4 */
unsigned char byAntennaState; /* 0 1 */
long unsigned int ulRatio_State0; /* 0 4 */
long unsigned int ulRatio_State1; /* 0 4 */
struct timer_list TimerSQ3Tmax1; /* 0 52 */
struct timer_list TimerSQ3Tmax2; /* 0 52 */
struct timer_list TimerSQ3Tmax3; /* 0 52 */
long unsigned int uNumSQ3[12]; /* 0 48 */
short unsigned int wAntDiversityMaxRate; /* 0 2 */
SEthernetHeader sTxEthHeader; /* 0 14 */
SEthernetHeader sRxEthHeader; /* 0 14 */
unsigned char abyBroadcastAddr[6]; /* 0 6 */
unsigned char abySNAP_RFC1042[6]; /* 0 6 */
unsigned char abySNAP_Bridgetunnel[6]; /* 0 6 */
unsigned char abyEEPROM[256]; /* 0 256 */
SPMKID gsPMKID; /* 0 360 */
SPMKIDCandidateEvent gsPMKIDCandidate; /* 0 72 */
bool b11hEnable; /* 0 1 */
unsigned char abyCountryCode[3]; /* 0 3 */
unsigned int uNumOfMeasureEIDs; /* 0 4 */
PWLAN_IE_MEASURE_REQ pCurrMeasureEID; /* 0 4 */
bool bMeasureInProgress; /* 0 1 */
unsigned char byOrgChannel; /* 0 1 */
unsigned char byOrgRCR; /* 0 1 */
long unsigned int dwOrgMAR0; /* 0 4 */
long unsigned int dwOrgMAR4; /* 0 4 */
unsigned char byBasicMap; /* 0 1 */
unsigned char byCCAFraction; /* 0 1 */
unsigned char abyRPIs[8]; /* 0 8 */
long unsigned int dwRPIs[8]; /* 0 32 */
bool bChannelSwitch; /* 0 1 */
unsigned char byNewChannel; /* 0 1 */
unsigned char byChannelSwitchCount; /* 0 1 */
bool bQuietEnable; /* 0 1 */
bool bEnableFirstQuiet; /* 0 1 */
unsigned char byQuietStartCount; /* 0 1 */
unsigned int uQuietEnqueue; /* 0 4 */
long unsigned int dwCurrentQuietEndTime; /* 0 4 */
SQuietControl sQuiet[8]; /* 0 96 */
bool bCountryInfo5G; /* 0 1 */
bool bCountryInfo24G; /* 0 1 */
short unsigned int wBeaconInterval; /* 0 2 */
struct net_device * wpadev; /* 0 4 */
bool bWPADEVUp; /* 0 1 */
struct sk_buff * skb; /* 0 4 */
unsigned int bwextcount; /* 0 4 */
bool bWPASuppWextEnabled; /* 0 1 */
bool bEnableHostapd; /* 0 1 */
bool bEnable8021x; /* 0 1 */
bool bEnableHostWEP; /* 0 1 */
struct net_device * apdev; /* 0 4 */
int (*tx_80211)(struct sk_buff *,
struct net_device *); /* 0 4 */
unsigned int uChannel; /* 0 4 */
bool bMACSuspend; /* 0 1 */
struct iw_statistics wstats; /* 0 32 */
bool bCommit; /* 0 1 */
/*--- cacheline 1672 boundary (107008 bytes) ---*/
/* size: 107008, cachelines: 1672, members: 279 */
/* sum members: 107005, holes: 1, sum holes: 3 */
/* padding: 41471 */
/* BRAIN FART ALERT! 107008 != 107005 + 3(holes), diff = 0 */
};
struct vnt_mic_hdr {
u8 id; /* 0 1 */
u8 tx_priority; /* 1 1 */
u8 mic_addr2[6]; /* 2 6 */
u8 ccmp_pn[6]; /* 8 6 */
__be16 payload_len; /* 14 2 */
__be16 hlen; /* 16 2 */
__le16 frame_control; /* 18 2 */
u8 addr1[6]; /* 20 6 */
u8 addr2[6]; /* 26 6 */
u8 addr3[6]; /* 32 6 */
__le16 seq_ctrl; /* 38 2 */
u8 addr4[6]; /* 40 6 */
u16 packing; /* 46 2 */
/* size: 48, cachelines: 1, members: 13 */
/* last cacheline: 48 bytes */
};
struct vnt_rts_g {
struct vnt_phy_field b; /* 0 4 */
struct vnt_phy_field a; /* 4 4 */
__le16 duration_ba; /* 8 2 */
__le16 duration_aa; /* 10 2 */
__le16 duration_bb; /* 12 2 */
u16 reserved; /* 14 2 */
struct ieee80211_rts data; /* 16 16 */
/* size: 32, cachelines: 1, members: 7 */
/* last cacheline: 32 bytes */
};
Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
u32 io_size;
unsigned char byRevId;
u32 io_size;
unsigned char byRevId;
+ unsigned char byRxMode;
unsigned short SubSystemID;
unsigned short SubVendorID;
unsigned short SubSystemID;
unsigned short SubVendorID;
int nTxQueues;
volatile int iTDUsed[TYPE_MAXTD];
int nTxQueues;
volatile int iTDUsed[TYPE_MAXTD];
u32 rx_buf_sz;
int multicast_limit;
u32 rx_buf_sz;
int multicast_limit;
- unsigned char byRxMode;
-
- spinlock_t lock;
pid_t MLMEThr_pid;
struct completion notify;
pid_t MLMEThr_pid;
struct completion notify;
bool bZoneRegExist;
unsigned char byOriginalZonetype;
unsigned char abyMacContext[MAC_MAX_CONTEXT_REG];
bool bZoneRegExist;
unsigned char byOriginalZonetype;
unsigned char abyMacContext[MAC_MAX_CONTEXT_REG];
- bool bLinkPass; // link status: OK or fail
unsigned char abyCurrentNetAddr[ETH_ALEN];
unsigned char abyCurrentNetAddr[ETH_ALEN];
+ bool bLinkPass; // link status: OK or fail
// Adapter statistics
SStatCounter scStatistic;
// Adapter statistics
SStatCounter scStatistic;
/* MICHDR0 */
mic_hdr->id = 0x59;
mic_hdr->tx_priority = 0;
/* MICHDR0 */
mic_hdr->id = 0x59;
mic_hdr->tx_priority = 0;
- memcpy(mic_hdr->mic_addr2, pMACHeader->abyAddr2, ETH_ALEN);
+ ether_addr_copy(mic_hdr->mic_addr2, pMACHeader->abyAddr2);
/* ccmp pn big endian order */
mic_hdr->ccmp_pn[0] = (u8)(pTransmitKey->dwTSC47_16 >> 24);
/* ccmp pn big endian order */
mic_hdr->ccmp_pn[0] = (u8)(pTransmitKey->dwTSC47_16 >> 24);
else
mic_hdr->hlen = cpu_to_be16(22);
else
mic_hdr->hlen = cpu_to_be16(22);
- memcpy(mic_hdr->addr1, pMACHeader->abyAddr1, ETH_ALEN);
- memcpy(mic_hdr->addr2, pMACHeader->abyAddr2, ETH_ALEN);
+ ether_addr_copy(mic_hdr->addr1, pMACHeader->abyAddr1);
+ ether_addr_copy(mic_hdr->addr2, pMACHeader->abyAddr2);
- memcpy(mic_hdr->addr3, pMACHeader->abyAddr3, ETH_ALEN);
+ ether_addr_copy(mic_hdr->addr3, pMACHeader->abyAddr3);
mic_hdr->frame_control =
cpu_to_le16(pMACHeader->wFrameCtl & 0xc78f);
mic_hdr->seq_ctrl = cpu_to_le16(pMACHeader->wSeqCtl & 0xf);
if (pDevice->bLongHeader)
mic_hdr->frame_control =
cpu_to_le16(pMACHeader->wFrameCtl & 0xc78f);
mic_hdr->seq_ctrl = cpu_to_le16(pMACHeader->wSeqCtl & 0xf);
if (pDevice->bLongHeader)
- memcpy(mic_hdr->addr4, pMACHeader->abyAddr4, ETH_ALEN);
+ ether_addr_copy(mic_hdr->addr4, pMACHeader->abyAddr4);
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
- memcpy(&buf->data.ra, psEthHeader->abyDstAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ psEthHeader->abyDstAddr);
- memcpy(&buf->data.ra, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyBSSID);
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
- memcpy(&buf->data.ta, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ pDevice->abyBSSID);
- memcpy(&buf->data.ta, psEthHeader->abySrcAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ psEthHeader->abySrcAddr);
} else {
struct vnt_rts_g_fb *buf = pvRTS;
} else {
struct vnt_rts_g_fb *buf = pvRTS;
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
- memcpy(&buf->data.ra, psEthHeader->abyDstAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ psEthHeader->abyDstAddr);
- memcpy(&buf->data.ra, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyBSSID);
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
- memcpy(&buf->data.ta, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ pDevice->abyBSSID);
- memcpy(&buf->data.ta, psEthHeader->abySrcAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ psEthHeader->abySrcAddr);
} // if (byFBOption == AUTO_FB_NONE)
} else if (byPktType == PK_TYPE_11A) {
} // if (byFBOption == AUTO_FB_NONE)
} else if (byPktType == PK_TYPE_11A) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
- memcpy(&buf->data.ra, psEthHeader->abyDstAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ psEthHeader->abyDstAddr);
- memcpy(&buf->data.ra, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyBSSID);
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
- memcpy(&buf->data.ta, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ pDevice->abyBSSID);
- memcpy(&buf->data.ta, psEthHeader->abySrcAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ psEthHeader->abySrcAddr);
} else {
struct vnt_rts_a_fb *buf = pvRTS;
} else {
struct vnt_rts_a_fb *buf = pvRTS;
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
- memcpy(&buf->data.ra, psEthHeader->abyDstAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ psEthHeader->abyDstAddr);
- memcpy(&buf->data.ra, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyBSSID);
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
- memcpy(&buf->data.ta, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ pDevice->abyBSSID);
- memcpy(&buf->data.ta, psEthHeader->abySrcAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ psEthHeader->abySrcAddr);
}
} else if (byPktType == PK_TYPE_11B) {
struct vnt_rts_ab *buf = pvRTS;
}
} else if (byPktType == PK_TYPE_11B) {
struct vnt_rts_ab *buf = pvRTS;
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
if ((pDevice->op_mode == NL80211_IFTYPE_ADHOC) ||
(pDevice->op_mode == NL80211_IFTYPE_AP)) {
- memcpy(&buf->data.ra, psEthHeader->abyDstAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ psEthHeader->abyDstAddr);
- memcpy(&buf->data.ra, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ra, pDevice->abyBSSID);
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
}
if (pDevice->op_mode == NL80211_IFTYPE_AP)
- memcpy(&buf->data.ta, pDevice->abyBSSID, ETH_ALEN);
+ ether_addr_copy(buf->data.ta, pDevice->abyBSSID);
- memcpy(&buf->data.ta, psEthHeader->abySrcAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ta,
+ psEthHeader->abySrcAddr);
- memcpy(&buf->data.ra, pDevice->abyCurrentNetAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyCurrentNetAddr);
} else { //if (byFBOption != AUTO_FB_NONE && uDMAIdx != TYPE_ATIMDMA && uDMAIdx != TYPE_BEACONDMA)
struct vnt_cts *buf = pvCTS;
/* Get SignalField, ServiceField & Length */
} else { //if (byFBOption != AUTO_FB_NONE && uDMAIdx != TYPE_ATIMDMA && uDMAIdx != TYPE_BEACONDMA)
struct vnt_cts *buf = pvCTS;
/* Get SignalField, ServiceField & Length */
IEEE80211_STYPE_CTS);
buf->reserved2 = 0x0;
IEEE80211_STYPE_CTS);
buf->reserved2 = 0x0;
- memcpy(&buf->data.ra, pDevice->abyCurrentNetAddr, ETH_ALEN);
+ ether_addr_copy(buf->data.ra,
+ pDevice->abyCurrentNetAddr);
pMACHeader->wFrameCtl = TYPE_802_11_DATA;
if (pDevice->op_mode == NL80211_IFTYPE_AP) {
pMACHeader->wFrameCtl = TYPE_802_11_DATA;
if (pDevice->op_mode == NL80211_IFTYPE_AP) {
- memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abySrcAddr[0]), ETH_ALEN);
+ ether_addr_copy(&(pMACHeader->abyAddr1[0]),
+ &(psEthHeader->abyDstAddr[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr2[0]),
+ &(pDevice->abyBSSID[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr3[0]),
+ &(psEthHeader->abySrcAddr[0]));
pMACHeader->wFrameCtl |= FC_FROMDS;
} else {
if (pDevice->op_mode == NL80211_IFTYPE_ADHOC) {
pMACHeader->wFrameCtl |= FC_FROMDS;
} else {
if (pDevice->op_mode == NL80211_IFTYPE_ADHOC) {
- memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr3[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
+ ether_addr_copy(&(pMACHeader->abyAddr1[0]),
+ &(psEthHeader->abyDstAddr[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr2[0]),
+ &(psEthHeader->abySrcAddr[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr3[0]),
+ &(pDevice->abyBSSID[0]));
- memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abyDstAddr[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), ETH_ALEN);
- memcpy(&(pMACHeader->abyAddr1[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
+ ether_addr_copy(&(pMACHeader->abyAddr3[0]),
+ &(psEthHeader->abyDstAddr[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr2[0]),
+ &(psEthHeader->abySrcAddr[0]));
+ ether_addr_copy(&(pMACHeader->abyAddr1[0]),
+ &(pDevice->abyBSSID[0]));
pMACHeader->wFrameCtl |= FC_TODS;
}
}
pMACHeader->wFrameCtl |= FC_TODS;
}
}
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
- memcpy(&(sEthHeader.abyDstAddr[0]), &(pPacket->p80211Header->sA3.abyAddr1[0]), ETH_ALEN);
- memcpy(&(sEthHeader.abySrcAddr[0]), &(pPacket->p80211Header->sA3.abyAddr2[0]), ETH_ALEN);
+ ether_addr_copy(&(sEthHeader.abyDstAddr[0]),
+ &(pPacket->p80211Header->sA3.abyAddr1[0]));
+ ether_addr_copy(&(sEthHeader.abySrcAddr[0]),
+ &(pPacket->p80211Header->sA3.abyAddr2[0]));
//=========================
// No Fragmentation
//=========================
//=========================
// No Fragmentation
//=========================
}
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
}
memset((void *)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
- memcpy(&(sEthHeader.abyDstAddr[0]), &(p80211Header->sA3.abyAddr1[0]), ETH_ALEN);
- memcpy(&(sEthHeader.abySrcAddr[0]), &(p80211Header->sA3.abyAddr2[0]), ETH_ALEN);
+ ether_addr_copy(&(sEthHeader.abyDstAddr[0]),
+ &(p80211Header->sA3.abyAddr1[0]));
+ ether_addr_copy(&(sEthHeader.abySrcAddr[0]),
+ &(p80211Header->sA3.abyAddr2[0]));
//=========================
// No Fragmentation
//=========================
//=========================
// No Fragmentation
//=========================