From 2d6d9f0848e952ea33c658dfba335685a2725b8b Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Fri, 11 Sep 2009 09:36:31 +0200 Subject: [PATCH] sk98lin: fix compile warnings Fix warnings: skge.c: In function 'BoardInitMem': skge.c:1389: warning: dereferencing type-punned pointer will break strict-aliasing rules skge.c:1390: warning: dereferencing type-punned pointer will break strict-aliasing rules skge.c:1391: warning: dereferencing type-punned pointer will break strict-aliasing rules skgesirq.c: In function 'SkGePortCheckUpXmac': skgesirq.c:1301: warning: dereferencing type-punned pointer will break strict-aliasing rules skgesirq.c:1301: warning: dereferencing type-punned pointer will break strict-aliasing rules skgesirq.c:1398: warning: dereferencing type-punned pointer will break strict-aliasing rules skgesirq.c:1398: warning: dereferencing type-punned pointer will break strict-aliasing rules skrlmt.c: In function 'SkRlmtInit': skrlmt.c:661: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkMacPromiscMode': skxmac2.c:753: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:753: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkMacHashing': skxmac2.c:803: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:803: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkMacFlushTxFifo': skxmac2.c:1115: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:1115: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkMacFlushRxFifo': skxmac2.c:1145: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:1145: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkXmInitPauseMd': skxmac2.c:1987: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:1987: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c: In function 'SkXmOverflowStatus': skxmac2.c:4236: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:4236: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:4242: warning: dereferencing type-punned pointer will break strict-aliasing rules skxmac2.c:4242: warning: dereferencing type-punned pointer will break strict-aliasing rules Signed-off-by: Wolfgang Denk Cc: Ben Warren --- drivers/net/sk98lin/skge.c | 12 +++++++++--- drivers/net/sk98lin/skgesirq.c | 7 +++++-- drivers/net/sk98lin/skrlmt.c | 3 ++- drivers/net/sk98lin/skxmac2.c | 20 +++++++++++++------- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c index c815480f8b..df764b4595 100644 --- a/drivers/net/sk98lin/skge.c +++ b/drivers/net/sk98lin/skge.c @@ -1382,13 +1382,19 @@ int TxDescrSize; /* the size of a tx descriptor rounded up to alignment*/ pAC->TxDescrPerRing = TX_RING_SIZE / RxDescrSize; for (i=0; iGIni.GIMacsFound; i++) { + TXD **txd_head, **txd_tail, **txd_prev; + + txd_head = &pAC->TxPort[i][0].pTxdRingHead; + txd_tail = &pAC->TxPort[i][0].pTxdRingTail; + txd_prev = &pAC->TxPort[i][0].pTxdRingPrev; + SetupRing( pAC, pAC->TxPort[i][0].pTxDescrRing, pAC->TxPort[i][0].VTxDescrRing, - (RXD**)&pAC->TxPort[i][0].pTxdRingHead, - (RXD**)&pAC->TxPort[i][0].pTxdRingTail, - (RXD**)&pAC->TxPort[i][0].pTxdRingPrev, + (RXD**)txd_head, + (RXD**)txd_tail, + (RXD**)txd_prev, &pAC->TxPort[i][0].TxdRingFree, SK_TRUE); SetupRing( diff --git a/drivers/net/sk98lin/skgesirq.c b/drivers/net/sk98lin/skgesirq.c index 106fe48c0d..53229d2893 100644 --- a/drivers/net/sk98lin/skgesirq.c +++ b/drivers/net/sk98lin/skgesirq.c @@ -1266,6 +1266,7 @@ int Port) /* Which port should be checked */ SK_GEPORT *pPrt; /* GIni Port struct pointer */ int Done; SK_U32 GpReg; /* General Purpose register value */ + SK_U32 *pGpReg; /* Pointer to -- " -- */ SK_U16 Isrc; /* Interrupt source register */ SK_U16 IsrcSum; /* Interrupt source register sum */ SK_U16 LpAb; /* Link Partner Ability */ @@ -1274,6 +1275,8 @@ int Port) /* Which port should be checked */ SK_BOOL AutoNeg; /* Is Auto-negotiation used ? */ SK_U8 NextMode; /* Next AutoSensing Mode */ + pGpReg = &GpReg; + pPrt = &pAC->GIni.GP[Port]; if (pPrt->PHWLinkUp) { @@ -1298,7 +1301,7 @@ int Port) /* Which port should be checked */ if (pPrt->PLinkBroken) { /* Link was broken */ - XM_IN32(IoC, Port, XM_GP_PORT, &GpReg); + XM_IN32(IoC, Port, XM_GP_PORT, pGpReg); if ((GpReg & XM_GP_INP_ASS) == 0) { /* The Link is in sync */ @@ -1395,7 +1398,7 @@ int Port) /* Which port should be checked */ * here we usually can check whether the link is in sync and * auto-negotiation is done. */ - XM_IN32(IoC, Port, XM_GP_PORT, &GpReg); + XM_IN32(IoC, Port, XM_GP_PORT, pGpReg); XM_IN16(IoC, Port, XM_ISRC, &Isrc); IsrcSum |= Isrc; diff --git a/drivers/net/sk98lin/skrlmt.c b/drivers/net/sk98lin/skrlmt.c index 2e7924d011..a178dff3cc 100644 --- a/drivers/net/sk98lin/skrlmt.c +++ b/drivers/net/sk98lin/skrlmt.c @@ -657,8 +657,9 @@ int Level) /* Initialization Level */ } for (i = 0; i < (SK_U32)pAC->GIni.GIMacsFound; i++) { + SK_U64 *pRandom = &Random; Random = SkOsGetTime(pAC); - *(SK_U32*)&pAC->Rlmt.Port[i].Random = *(SK_U32*)&Random; + *(SK_U32*)&pAC->Rlmt.Port[i].Random = *(SK_U32*)pRandom; for (j = 0; j < 4; j++) { pAC->Rlmt.Port[i].Random[j] ^= pAC->Rlmt.Port[i].AddrPort-> diff --git a/drivers/net/sk98lin/skxmac2.c b/drivers/net/sk98lin/skxmac2.c index e0ded42bae..2f7c0543f4 100644 --- a/drivers/net/sk98lin/skxmac2.c +++ b/drivers/net/sk98lin/skxmac2.c @@ -747,10 +747,11 @@ SK_BOOL Enable) /* Enable / Disable */ { SK_U16 RcReg; SK_U32 MdReg; + SK_U32 *pMdReg = &MdReg; if (pAC->GIni.GIGenesis) { - XM_IN32(IoC, Port, XM_MODE, &MdReg); + XM_IN32(IoC, Port, XM_MODE, pMdReg); /* enable or disable promiscuous mode */ if (Enable) { MdReg |= XM_MD_ENA_PROM; @@ -797,10 +798,11 @@ SK_BOOL Enable) /* Enable / Disable */ { SK_U16 RcReg; SK_U32 MdReg; + SK_U32 *pMdReg = &MdReg; if (pAC->GIni.GIGenesis) { - XM_IN32(IoC, Port, XM_MODE, &MdReg); + XM_IN32(IoC, Port, XM_MODE, pMdReg); /* enable or disable hashing */ if (Enable) { MdReg |= XM_MD_ENA_HASH; @@ -1109,10 +1111,11 @@ SK_IOC IoC, /* IO context */ int Port) /* Port Index (MAC_1 + n) */ { SK_U32 MdReg; + SK_U32 *pMdReg = &MdReg; if (pAC->GIni.GIGenesis) { - XM_IN32(IoC, Port, XM_MODE, &MdReg); + XM_IN32(IoC, Port, XM_MODE, pMdReg); XM_OUT32(IoC, Port, XM_MODE, MdReg | XM_MD_FTF); } @@ -1139,10 +1142,11 @@ SK_IOC IoC, /* IO context */ int Port) /* Port Index (MAC_1 + n) */ { SK_U32 MdReg; + SK_U32 *pMdReg = &MdReg; if (pAC->GIni.GIGenesis) { - XM_IN32(IoC, Port, XM_MODE, &MdReg); + XM_IN32(IoC, Port, XM_MODE, pMdReg); XM_OUT32(IoC, Port, XM_MODE, MdReg | XM_MD_FRF); } @@ -1961,6 +1965,7 @@ int Port) /* Port Index (MAC_1 + n) */ { SK_GEPORT *pPrt; SK_U32 DWord; + SK_U32 *pDWord = &DWord; SK_U16 Word; pPrt = &pAC->GIni.GP[Port]; @@ -1984,7 +1989,7 @@ int Port) /* Port Index (MAC_1 + n) */ XM_OUT16(IoC, Port, XM_MMU_CMD, Word); - XM_IN32(IoC, Port, XM_MODE, &DWord); + XM_IN32(IoC, Port, XM_MODE, pDWord); if (pPrt->PFlowCtrlStatus == SK_FLOW_STAT_SYMMETRIC || pPrt->PFlowCtrlStatus == SK_FLOW_STAT_LOC_SEND) { @@ -4228,18 +4233,19 @@ SK_U64 *pStatus) /* ptr for return overflow status value */ { SK_U64 Status; /* Overflow status */ SK_U32 RegVal; + SK_U32 *pRegVal = &RegVal; Status = 0; if ((IStatus & XM_IS_RXC_OV) != 0) { - XM_IN32(IoC, Port, XM_RX_CNT_EV, &RegVal); + XM_IN32(IoC, Port, XM_RX_CNT_EV, pRegVal); Status |= (SK_U64)RegVal << 32; } if ((IStatus & XM_IS_TXC_OV) != 0) { - XM_IN32(IoC, Port, XM_TX_CNT_EV, &RegVal); + XM_IN32(IoC, Port, XM_TX_CNT_EV, pRegVal); Status |= (SK_U64)RegVal; }