m68k: lvalues abuse in mac8390
PATCH 17/36 m68k: lvalues abuse in mac8390
From: Al Viro <[email protected]>
Date: 1133437188 -0500
cast is not an lvalue
Signed-off-by Al Viro <[email protected]>
---
drivers/net/mac8390.c | 31 ++++++++++++++----------------- 1 files changed, 14 insertions(+), 17 deletions(-)
5e92b04f842396d3347b16327c12406884784e94
drivers/net/mac8390.c +14 -17
@@ -559,55 +559,52 @@ static void mac8390_no_reset(struct net_/* directly from daynaport.c by Alan Cox */ static void dayna_memcpy_fromcard (struct net_device *dev,void *to,int from,int count) { -volatile unsigned short *ptr; -unsigned short *target=to; +volatile unsigned char *ptr; +unsigned char *target=to; from<<=1 ;/* word, skip overhead */ - ptr=(unsigned short *)(dev->mem_start+from); + ptr=(unsigned char *)(dev->mem_start+from);/* Leading byte? */ if (from&2 ) { - *((char *)target)++ = *(((char *)ptr++)-1 ); + *target++ = ptr[-1 ]; + ptr +=2 ; count--; }while (count>=2 ) { - *target++=*ptr++;/* Copy and */ - ptr++;/* skip cruft */ + *(unsigned short *)target = *(unsigned short volatile *)ptr; + ptr +=4 ;/* skip cruft */ + target +=2 ; count-=2 ; }/* Trailing byte? */ if (count) - { -/* Big endian */ -unsigned short v=*ptr; - *((char *)target)=v>>8 ; - } + *target = *ptr; }static void dayna_memcpy_tocard (struct net_device *dev,int to,const void *from,int count) {volatile unsigned short *ptr; -const unsigned short *src=from; +const unsigned char *src=from; to<<=1 ;/* word, skip overhead */ ptr=(unsigned short *)(dev->mem_start+to);/* Leading byte? */ if (to&2 ) {/* avoid a byte write (stomps on other data) */ - ptr[-1 ] = (ptr[-1 ]&0xFF00 )|*((unsigned char *)src)++; + ptr[-1 ] = (ptr[-1 ]&0xFF00 )|*src++; ptr++; count--; }while (count>=2 ) { - *ptr++=*src++;/* Copy and */ + *ptr++=*(unsigned short *)src;/* Copy and */ ptr++;/* skip cruft */ + src +=2 ; count-=2 ; }/* Trailing byte? */ if (count) { -/* Big endian */ -unsigned short v=*src;/* card doesn't like byte writes */ - *ptr=(*ptr&0x00FF )|(v&0xFF00 ); + *ptr=(*ptr&0x00FF )|(*src <<8 ); } }
Signature · 1 line
0.99.9.GIT