LKML Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
@ 2007-01-06 13:18 Ahmed S. Darwish
  2007-01-08  3:12 ` Li Yang-r58472
  0 siblings, 1 reply; 5+ messages in thread
From: Ahmed S. Darwish @ 2007-01-06 13:18 UTC (permalink / raw)
  To: leoli; +Cc: linux-kernel

[Please inform me if you are not the maintaner cause I'm not sure:)]

Hi,
A kmalloc casting cleanup patch.

I wasn't able to compile the file drivers/net/ucc_geth.c cause of
some not found headers (asm/of_platform.h, asm/qe.h, and others )

Signed-off-by: Ahmed Darwish <darwish.07@gmail.com>

diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 8243150..001109e 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -2864,8 +2864,8 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 			if (UCC_GETH_TX_BD_RING_ALIGNMENT > 4)
 				align = UCC_GETH_TX_BD_RING_ALIGNMENT;
 			ugeth->tx_bd_ring_offset[j] =
-				(u32) (kmalloc((u32) (length + align),
-				GFP_KERNEL));
+				kmalloc((u32) (length + align), GFP_KERNEL);
+					 
 			if (ugeth->tx_bd_ring_offset[j] != 0)
 				ugeth->p_tx_bd_ring[j] =
 					(void*)((ugeth->tx_bd_ring_offset[j] +
@@ -2900,7 +2900,7 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 			if (UCC_GETH_RX_BD_RING_ALIGNMENT > 4)
 				align = UCC_GETH_RX_BD_RING_ALIGNMENT;
 			ugeth->rx_bd_ring_offset[j] =
-			    (u32) (kmalloc((u32) (length + align), GFP_KERNEL));
+				kmalloc((u32) (length + align), GFP_KERNEL);
 			if (ugeth->rx_bd_ring_offset[j] != 0)
 				ugeth->p_rx_bd_ring[j] =
 					(void*)((ugeth->rx_bd_ring_offset[j] +
@@ -2926,10 +2926,9 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	/* Init Tx bds */
 	for (j = 0; j < ug_info->numQueuesTx; j++) {
 		/* Setup the skbuff rings */
-		ugeth->tx_skbuff[j] =
-		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *) *
-					       ugeth->ug_info->bdRingLenTx[j],
-					       GFP_KERNEL);
+		ugeth->tx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
+					      ugeth->ug_info->bdRingLenTx[j],
+					      GFP_KERNEL);
 
 		if (ugeth->tx_skbuff[j] == NULL) {
 			ugeth_err("%s: Could not allocate tx_skbuff",
@@ -2958,10 +2957,9 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	/* Init Rx bds */
 	for (j = 0; j < ug_info->numQueuesRx; j++) {
 		/* Setup the skbuff rings */
-		ugeth->rx_skbuff[j] =
-		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *) *
-					       ugeth->ug_info->bdRingLenRx[j],
-					       GFP_KERNEL);
+		ugeth->rx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
+					      ugeth->ug_info->bdRingLenRx[j],
+					      GFP_KERNEL);
 
 		if (ugeth->rx_skbuff[j] == NULL) {
 			ugeth_err("%s: Could not allocate rx_skbuff",
@@ -3452,8 +3450,7 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	 * allocated resources can be released when the channel is freed.
 	 */
 	if (!(ugeth->p_init_enet_param_shadow =
-	     (struct ucc_geth_init_pram *) kmalloc(sizeof(struct ucc_geth_init_pram),
-					      GFP_KERNEL))) {
+	      kmalloc(sizeof(struct ucc_geth_init_pram), GFP_KERNEL))) {
 		ugeth_err
 		    ("%s: Can not allocate memory for"
 			" p_UccInitEnetParamShadows.", __FUNCTION__);

-- 
Ahmed S. Darwish
http://darwish-07.blogspot.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
  2007-01-06 13:18 [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups Ahmed S. Darwish
@ 2007-01-08  3:12 ` Li Yang-r58472
  2007-01-08  4:26   ` Ahmed S. Darwish
  2007-01-08  4:54   ` Ahmed S. Darwish
  0 siblings, 2 replies; 5+ messages in thread
From: Li Yang-r58472 @ 2007-01-08  3:12 UTC (permalink / raw)
  To: Ahmed S. Darwish; +Cc: linux-kernel, netdev

> -----Original Message-----
> From: Ahmed S. Darwish [mailto:darwish.07@gmail.com]
> Sent: Saturday, January 06, 2007 9:19 PM
> To: Li Yang-r58472
> Cc: linux-kernel@vger.kernel.org
> Subject: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
> 
> [Please inform me if you are not the maintaner cause I'm not sure:)]
> 
> Hi,
> A kmalloc casting cleanup patch.
> 
> I wasn't able to compile the file drivers/net/ucc_geth.c cause of
> some not found headers (asm/of_platform.h, asm/qe.h, and others )

You need to use ARCH=powerpc to compile this driver.  I don't know how
you could select this driver without using powerpc arch.

> 
> Signed-off-by: Ahmed Darwish <darwish.07@gmail.com>
> 
> diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
> index 8243150..001109e 100644
> --- a/drivers/net/ucc_geth.c
> +++ b/drivers/net/ucc_geth.c
> @@ -2864,8 +2864,8 @@ static int ucc_geth_startup(struct
ucc_geth_private *ugeth)
>  			if (UCC_GETH_TX_BD_RING_ALIGNMENT > 4)
>  				align = UCC_GETH_TX_BD_RING_ALIGNMENT;
>  			ugeth->tx_bd_ring_offset[j] =
> -				(u32) (kmalloc((u32) (length + align),
> -				GFP_KERNEL));
> +				kmalloc((u32) (length + align),
GFP_KERNEL);
> +
>  			if (ugeth->tx_bd_ring_offset[j] != 0)
>  				ugeth->p_tx_bd_ring[j] =
>
(void*)((ugeth->tx_bd_ring_offset[j] +
> @@ -2900,7 +2900,7 @@ static int ucc_geth_startup(struct
ucc_geth_private *ugeth)
>  			if (UCC_GETH_RX_BD_RING_ALIGNMENT > 4)
>  				align = UCC_GETH_RX_BD_RING_ALIGNMENT;
>  			ugeth->rx_bd_ring_offset[j] =
> -			    (u32) (kmalloc((u32) (length + align),
GFP_KERNEL));
> +				kmalloc((u32) (length + align),
GFP_KERNEL);

NACK about the 2 clean-ups above.  Cast from pointer to integer is
required here.

>  			if (ugeth->rx_bd_ring_offset[j] != 0)
>  				ugeth->p_rx_bd_ring[j] =
>
(void*)((ugeth->rx_bd_ring_offset[j] +
> @@ -2926,10 +2926,9 @@ static int ucc_geth_startup(struct
ucc_geth_private *ugeth)
>  	/* Init Tx bds */
>  	for (j = 0; j < ug_info->numQueuesTx; j++) {
>  		/* Setup the skbuff rings */
> -		ugeth->tx_skbuff[j] =
> -		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *)
*
> -
ugeth->ug_info->bdRingLenTx[j],
> -					       GFP_KERNEL);
> +		ugeth->tx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
> +
ugeth->ug_info->bdRingLenTx[j],
> +					      GFP_KERNEL);
> 
>  		if (ugeth->tx_skbuff[j] == NULL) {
>  			ugeth_err("%s: Could not allocate tx_skbuff",
> @@ -2958,10 +2957,9 @@ static int ucc_geth_startup(struct
ucc_geth_private *ugeth)
>  	/* Init Rx bds */
>  	for (j = 0; j < ug_info->numQueuesRx; j++) {
>  		/* Setup the skbuff rings */
> -		ugeth->rx_skbuff[j] =
> -		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *)
*
> -
ugeth->ug_info->bdRingLenRx[j],
> -					       GFP_KERNEL);
> +		ugeth->rx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
> +
ugeth->ug_info->bdRingLenRx[j],
> +					      GFP_KERNEL);
> 
>  		if (ugeth->rx_skbuff[j] == NULL) {
>  			ugeth_err("%s: Could not allocate rx_skbuff",
> @@ -3452,8 +3450,7 @@ static int ucc_geth_startup(struct
ucc_geth_private *ugeth)
>  	 * allocated resources can be released when the channel is
freed.
>  	 */
>  	if (!(ugeth->p_init_enet_param_shadow =
> -	     (struct ucc_geth_init_pram *) kmalloc(sizeof(struct
> ucc_geth_init_pram),
> -					      GFP_KERNEL))) {
> +	      kmalloc(sizeof(struct ucc_geth_init_pram), GFP_KERNEL))) {
>  		ugeth_err
>  		    ("%s: Can not allocate memory for"
>  			" p_UccInitEnetParamShadows.", __FUNCTION__);
> 
> --
> Ahmed S. Darwish
> http://darwish-07.blogspot.com

- Leo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
  2007-01-08  3:12 ` Li Yang-r58472
@ 2007-01-08  4:26   ` Ahmed S. Darwish
  2007-01-08  7:28     ` Li Yang-r58472
  2007-01-08  4:54   ` Ahmed S. Darwish
  1 sibling, 1 reply; 5+ messages in thread
From: Ahmed S. Darwish @ 2007-01-08  4:26 UTC (permalink / raw)
  To: Li Yang-r58472; +Cc: linux-kernel, netdev

On Mon, Jan 08, 2007 at 11:12:28AM +0800, Li Yang-r58472 wrote:
> > From: Ahmed S. Darwish [mailto:darwish.07@gmail.com]
> > 
> > Hi,
> > A kmalloc casting cleanup patch.
> > Signed-off-by: Ahmed Darwish <darwish.07@gmail.com>

[..]

> > -				(u32) (kmalloc((u32) (length + align),
> > -				GFP_KERNEL));
> > +				kmalloc((u32) (length + align), GFP_KERNEL);
> > +
> >  			if (ugeth->tx_bd_ring_offset[j] != 0)
> >  				ugeth->p_tx_bd_ring[j] =

[..]

> > -			    (u32) (kmalloc((u32) (length + align), GFP_KERNEL));
> > +				kmalloc((u32) (length + align), GFP_KERNEL);
> 
> NACK about the 2 clean-ups above.  Cast from pointer to integer is
> required here.

Are the casts from pointer to integer just needed to suppress gcc 
warnings or there's something technically important about them ?

I'll send the modified patch without the NACKed parts in minutes ..

-- 
Ahmed S. Darwish
http://darwish-07.blogspot.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
  2007-01-08  3:12 ` Li Yang-r58472
  2007-01-08  4:26   ` Ahmed S. Darwish
@ 2007-01-08  4:54   ` Ahmed S. Darwish
  1 sibling, 0 replies; 5+ messages in thread
From: Ahmed S. Darwish @ 2007-01-08  4:54 UTC (permalink / raw)
  To: Li Yang-r58472; +Cc: linux-kernel, netdev

On Mon, Jan 08, 2007 at 11:12:28AM +0800, Li Yang-r58472 wrote:
>
> NACK about the 2 clean-ups above.  Cast from pointer to integer is
> required here.
> 

Hi, here's the modified patch.

A patch to switch kmalloc to kzalloc and clean some redundant kmalloc
casts.

Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
---
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 8243150..0f58f5f 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -2926,10 +2926,9 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	/* Init Tx bds */
 	for (j = 0; j < ug_info->numQueuesTx; j++) {
 		/* Setup the skbuff rings */
-		ugeth->tx_skbuff[j] =
-		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *) *
-					       ugeth->ug_info->bdRingLenTx[j],
-					       GFP_KERNEL);
+		ugeth->tx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
+					      ugeth->ug_info->bdRingLenTx[j],
+					      GFP_KERNEL);
 
 		if (ugeth->tx_skbuff[j] == NULL) {
 			ugeth_err("%s: Could not allocate tx_skbuff",
@@ -2958,10 +2957,9 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	/* Init Rx bds */
 	for (j = 0; j < ug_info->numQueuesRx; j++) {
 		/* Setup the skbuff rings */
-		ugeth->rx_skbuff[j] =
-		    (struct sk_buff **)kmalloc(sizeof(struct sk_buff *) *
-					       ugeth->ug_info->bdRingLenRx[j],
-					       GFP_KERNEL);
+		ugeth->rx_skbuff[j] = kmalloc(sizeof(struct sk_buff *) *
+					      ugeth->ug_info->bdRingLenRx[j],
+					      GFP_KERNEL);
 
 		if (ugeth->rx_skbuff[j] == NULL) {
 			ugeth_err("%s: Could not allocate rx_skbuff",
@@ -3450,19 +3448,16 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
 	 * resource.
 	 * This shadow structure keeps a copy of what was done so that the
 	 * allocated resources can be released when the channel is freed.
+	 * *p_init_enet_param_shadow is zeroed by kzalloc
 	 */
-	if (!(ugeth->p_init_enet_param_shadow =
-	     (struct ucc_geth_init_pram *) kmalloc(sizeof(struct ucc_geth_init_pram),
-					      GFP_KERNEL))) {
+	if (!(ugeth->p_init_enet_param_shadow = 
+	      kzalloc(sizeof(struct ucc_geth_init_pram), GFP_KERNEL))) {
 		ugeth_err
 		    ("%s: Can not allocate memory for"
 			" p_UccInitEnetParamShadows.", __FUNCTION__);
 		ucc_geth_memclean(ugeth);
 		return -ENOMEM;
 	}
-	/* Zero out *p_init_enet_param_shadow */
-	memset((char *)ugeth->p_init_enet_param_shadow,
-	       0, sizeof(struct ucc_geth_init_pram));
 
 	/* Fill shadow InitEnet command parameter structure */
 


-- 
Ahmed S. Darwish
http://darwish-07.blogspot.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups
  2007-01-08  4:26   ` Ahmed S. Darwish
@ 2007-01-08  7:28     ` Li Yang-r58472
  0 siblings, 0 replies; 5+ messages in thread
From: Li Yang-r58472 @ 2007-01-08  7:28 UTC (permalink / raw)
  To: Ahmed S. Darwish; +Cc: linux-kernel, netdev

> -----Original Message-----
> From: Ahmed S. Darwish [mailto:darwish.07@gmail.com]
> Sent: Monday, January 08, 2007 12:27 PM
> To: Li Yang-r58472
> Cc: linux-kernel@vger.kernel.org; netdev@vger.kernel.org
> Subject: Re: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting
cleanups
> 
> On Mon, Jan 08, 2007 at 11:12:28AM +0800, Li Yang-r58472 wrote:
> > > From: Ahmed S. Darwish [mailto:darwish.07@gmail.com]
> > >
> > > Hi,
> > > A kmalloc casting cleanup patch.
> > > Signed-off-by: Ahmed Darwish <darwish.07@gmail.com>
> 
> [..]
> 
> > > -				(u32) (kmalloc((u32) (length + align),
> > > -				GFP_KERNEL));
> > > +				kmalloc((u32) (length + align),
GFP_KERNEL);
> > > +
> > >  			if (ugeth->tx_bd_ring_offset[j] != 0)
> > >  				ugeth->p_tx_bd_ring[j] =
> 
> [..]
> 
> > > -			    (u32) (kmalloc((u32) (length + align),
GFP_KERNEL));
> > > +				kmalloc((u32) (length + align),
GFP_KERNEL);
> >
> > NACK about the 2 clean-ups above.  Cast from pointer to integer is
> > required here.
> 
> Are the casts from pointer to integer just needed to suppress gcc
> warnings or there's something technically important about them ?

It is to suppress the warnings.  IMHO, most type casts are not
technically important but for sanity check.

- Leo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-06 13:18 [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups Ahmed S. Darwish
2007-01-08  3:12 ` Li Yang-r58472
2007-01-08  4:26   ` Ahmed S. Darwish
2007-01-08  7:28     ` Li Yang-r58472
2007-01-08  4:54   ` Ahmed S. Darwish

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lkml.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lkml.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lkml.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lkml.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lkml.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lkml.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lkml.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lkml.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lkml.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lkml.kernel.org/lkml/9 lkml/git/9.git
	git clone --mirror https://lkml.kernel.org/lkml/10 lkml/git/10.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lkml.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git