[U-Boot] [PATCH] sk98lin: fix compile warnings

Wolfgang Denk wd at denx.de
Fri Sep 11 11:18:21 CEST 2009


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 <wd at denx.de>
Cc: Ben Warren <biggerbadderben at gmail.com>
---
 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 c815480..df764b4 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; i<pAC->GIni.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 106fe48..53229d2 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 2e7924d..a178dff 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 e0ded42..2f7c054 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;
 	}
 
-- 
1.6.0.6



More information about the U-Boot mailing list