RE: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups

2007-01-08 Thread Li Yang-r58472
 -Original Message-
 From: Ahmed S. Darwish [mailto:[EMAIL PROTECTED]
 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 [EMAIL PROTECTED]
 
 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
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups

2007-01-07 Thread Ahmed S. Darwish
On Mon, Jan 08, 2007 at 11:12:28AM +0800, Li Yang-r58472 wrote:
  From: Ahmed S. Darwish [mailto:[EMAIL PROTECTED]
  
  Hi,
  A kmalloc casting cleanup patch.
  Signed-off-by: Ahmed Darwish [EMAIL PROTECTED]

[..]

  -   (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
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups

2007-01-07 Thread Ahmed S. Darwish
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 [EMAIL PROTECTED]
---
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
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 2.6.20-rc3] UCC Ether driver: kmalloc casting cleanups

2007-01-07 Thread Li Yang-r58472
 -Original Message-
 From: Ahmed S. Darwish [mailto:[EMAIL PROTECTED]
 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:[EMAIL PROTECTED]
  
   Hi,
   A kmalloc casting cleanup patch.
   Signed-off-by: Ahmed Darwish [EMAIL PROTECTED]
 
 [..]
 
   - (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
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html