[U-Boot] [PATCH] drivers/net/mvgbe.c: Fix GCC 4.6 warnings
Fix: mvgbe.c: In function 'mvgbe_send': mvgbe.c:555:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] mvgbe.c: In function 'mvgbe_recv': mvgbe.c:640:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] Signed-off-by: Anatolij Gustschin Cc: Prafulla Wadaskar --- drivers/net/mvgbe.c |9 ++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c index fd13428..de7cdd7 100644 --- a/drivers/net/mvgbe.c +++ b/drivers/net/mvgbe.c @@ -531,6 +531,7 @@ static int mvgbe_send(struct eth_device *dev, void *dataptr, struct mvgbe_txdesc *p_txdesc = dmvgbe->p_txdesc; void *p = (void *)dataptr; u32 cmd_sts; + u32 txuq0_reg_addr; /* Copy buffer if it's misaligned */ if ((u32) dataptr & 0x07) { @@ -552,7 +553,8 @@ static int mvgbe_send(struct eth_device *dev, void *dataptr, p_txdesc->byte_cnt = datasize; /* Set this tc desc as zeroth TXUQ */ - MVGBE_REG_WR(regs->tcqdp[TXUQ], (u32) p_txdesc); + txuq0_reg_addr = (u32)®s->tcqdp[TXUQ]; + writel((u32) p_txdesc, txuq0_reg_addr); /* ensure tx desc writes above are performed before we start Tx DMA */ isb(); @@ -583,6 +585,7 @@ static int mvgbe_recv(struct eth_device *dev) struct mvgbe_rxdesc *p_rxdesc_curr = dmvgbe->p_rxdesc_curr; u32 cmd_sts; u32 timeout = 0; + u32 rxdesc_curr_addr; /* wait untill rx packet available or timeout */ do { @@ -637,8 +640,8 @@ static int mvgbe_recv(struct eth_device *dev) p_rxdesc_curr->buf_size = PKTSIZE_ALIGN; p_rxdesc_curr->byte_cnt = 0; - writel((unsigned)p_rxdesc_curr->nxtdesc_p, - (u32) &dmvgbe->p_rxdesc_curr); + rxdesc_curr_addr = (u32)&dmvgbe->p_rxdesc_curr; + writel((unsigned)p_rxdesc_curr->nxtdesc_p, rxdesc_curr_addr); return 0; } -- 1.7.5.4 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] drivers/net/mvgbe.c: Fix GCC 4.6 warnings
Dear Anatolij Gustschin, In message <1321729176-5520-1-git-send-email-ag...@denx.de> you wrote: > Fix: > mvgbe.c: In function 'mvgbe_send': > mvgbe.c:555:2: warning: dereferencing type-punned pointer will > break strict-aliasing rules [-Wstrict-aliasing] > mvgbe.c: In function 'mvgbe_recv': > mvgbe.c:640:2: warning: dereferencing type-punned pointer will > break strict-aliasing rules [-Wstrict-aliasing] > > Signed-off-by: Anatolij Gustschin > Cc: Prafulla Wadaskar > --- > drivers/net/mvgbe.c |9 ++--- > 1 files changed, 6 insertions(+), 3 deletions(-) Applied, thanks. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Your csh still thinks true is false. Write to your vendor today and tell them that next year Configure ought to "rm /bin/csh" unless they fix their blasted shell. :-) - Larry Wall in Configure from the perl distribution ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] drivers/net/mvgbe.c: Fix GCC 4.6 warnings
> -Original Message- > From: Anatolij Gustschin [mailto:ag...@denx.de] > Sent: Sunday, November 20, 2011 12:30 AM > To: u-boot@lists.denx.de > Cc: Prafulla Wadaskar > Subject: [PATCH] drivers/net/mvgbe.c: Fix GCC 4.6 warnings > > Fix: > mvgbe.c: In function 'mvgbe_send': > mvgbe.c:555:2: warning: dereferencing type-punned pointer will > break strict-aliasing rules [-Wstrict-aliasing] > mvgbe.c: In function 'mvgbe_recv': > mvgbe.c:640:2: warning: dereferencing type-punned pointer will > break strict-aliasing rules [-Wstrict-aliasing] > > Signed-off-by: Anatolij Gustschin > Cc: Prafulla Wadaskar > --- > drivers/net/mvgbe.c |9 ++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c > index fd13428..de7cdd7 100644 > --- a/drivers/net/mvgbe.c > +++ b/drivers/net/mvgbe.c > @@ -531,6 +531,7 @@ static int mvgbe_send(struct eth_device > *dev, void *dataptr, > struct mvgbe_txdesc *p_txdesc = dmvgbe->p_txdesc; > void *p = (void *)dataptr; > u32 cmd_sts; > + u32 txuq0_reg_addr; > > /* Copy buffer if it's misaligned */ > if ((u32) dataptr & 0x07) { > @@ -552,7 +553,8 @@ static int mvgbe_send(struct eth_device > *dev, void *dataptr, > p_txdesc->byte_cnt = datasize; > > /* Set this tc desc as zeroth TXUQ */ > - MVGBE_REG_WR(regs->tcqdp[TXUQ], (u32) p_txdesc); > + txuq0_reg_addr = (u32)®s->tcqdp[TXUQ]; > + writel((u32) p_txdesc, txuq0_reg_addr); > > /* ensure tx desc writes above are performed before we > start Tx DMA */ > isb(); > @@ -583,6 +585,7 @@ static int mvgbe_recv(struct eth_device > *dev) > struct mvgbe_rxdesc *p_rxdesc_curr = dmvgbe->p_rxdesc_curr; > u32 cmd_sts; > u32 timeout = 0; > + u32 rxdesc_curr_addr; > > /* wait untill rx packet available or timeout */ > do { > @@ -637,8 +640,8 @@ static int mvgbe_recv(struct eth_device > *dev) > p_rxdesc_curr->buf_size = PKTSIZE_ALIGN; > p_rxdesc_curr->byte_cnt = 0; > > - writel((unsigned)p_rxdesc_curr->nxtdesc_p, > - (u32) &dmvgbe->p_rxdesc_curr); > + rxdesc_curr_addr = (u32)&dmvgbe->p_rxdesc_curr; > + writel((unsigned)p_rxdesc_curr->nxtdesc_p, > rxdesc_curr_addr); > > return 0; > } Acked-By: Prafulla Wadaskar Regards.. Prafulla . . > -- > 1.7.5.4 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot