diff options
| -rw-r--r-- | drivers/net/sk98lin/skge.c | 12 | ||||
| -rw-r--r-- | drivers/net/sk98lin/skgesirq.c | 7 | ||||
| -rw-r--r-- | drivers/net/sk98lin/skrlmt.c | 3 | ||||
| -rw-r--r-- | 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 c815480f8..df764b459 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 106fe48c0..53229d289 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 2e7924d01..a178dff3c 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 e0ded42ba..2f7c0543f 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;  	} |