qede: Add support for coalescing config read/update.
Hello Sudarsana Reddy Kalluru,
The patch d552fa84cb35: "qede: Add support for coalescing config read/update." from Jun 21, 2016, leads to the following static checker warning:
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:435 qede_get_coalesce() warn: passing casted pointer '&coal->rx_coalesce_usecs' to 'edev->ops->common->get_coalesce()' 32 vs 16.
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
429 static int qede_get_coalesce(struct net_device *dev,
430 struct ethtool_coalesce *coal)
431 {
432 struct qede_dev *edev = netdev_priv(dev);
433
434 memset(coal, 0, sizeof(struct ethtool_coalesce));
435 edev->ops->common->get_coalesce(edev->cdev,
436 (u16 *)&coal->rx_coalesce_usecs,
437 (u16 *)&coal->tx_coalesce_usecs);
This won't work on big endian systems. Fix it so the function takes a u32 or make ->rx_coalesce_usecs a u16.
438
439 return 0;
440 }
regards,
dan carpenter
Hi Dan carpenter,
Thanks for your mail. Will address it.
Thanks,
Sudarsana
-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: 28 June 2016 01:12
To: Sudarsana Kalluru <[email protected]>
Cc: [email protected]
Subject: re: qede: Add support for coalescing config read/update.
Hello Sudarsana Reddy Kalluru,
The patch d552fa84cb35: "qede: Add support for coalescing config read/update." from Jun 21, 2016, leads to the following static checker warning:
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:435 qede_get_coalesce() warn: passing casted pointer '&coal->rx_coalesce_usecs' to 'edev->ops->common->get_coalesce()' 32 vs 16.
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
429 static int qede_get_coalesce(struct net_device *dev,
430 struct ethtool_coalesce *coal)
431 {
432 struct qede_dev *edev = netdev_priv(dev);
433
434 memset(coal, 0, sizeof(struct ethtool_coalesce));
435 edev->ops->common->get_coalesce(edev->cdev,
436 (u16 *)&coal->rx_coalesce_usecs,
437 (u16 *)&coal->tx_coalesce_usecs);
This won't work on big endian systems. Fix it so the function takes a u32 or make ->rx_coalesce_usecs a u16.
438
439 return 0;
440 }
regards,
dan carpenter
Am 28.06.2016 06:41, schrieb Sudarsana Kalluru:
Quoted 31 lines
Hi Dan carpenter,
Thanks for your mail. Will address it.Thanks,
Sudarsana-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: 28 June 2016 01:12
To: Sudarsana Kalluru <[email protected]>
Cc: [email protected]
Subject: re: qede: Add support for coalescing config read/update.Hello Sudarsana Reddy Kalluru,
The patch
d552fa84cb35: "qede: Add support for coalescing config read/update." from Jun 21, 2016, leads to the following static checker warning:drivers/net/ethernet/qlogic/qede/qede_ethtool.c:435 qede_get_coalesce() warn: passing casted pointer '&coal->rx_coalesce_usecs' to 'edev->ops->common->get_coalesce()' 32 vs 16.
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
429 static int qede_get_coalesce(structnet_device*dev,
430 structethtool_coalesce*coal)431 { 432 struct qede_dev *edev = netdev_priv(dev); 433 434 memset(coal, 0, sizeof(struct ethtool_coalesce)); 435 edev->ops->common->get_coalesce(edev->cdev, 436 (u16 *)&coal->rx_coalesce_usecs, 437 (u16 *)&coal->tx_coalesce_usecs);
Quoted 3 lines
This won't work on big endian systems. Fix it so the function takes a u32 or make ->rx_coalesce_usecs a u16.
given you do a memset before, what are the chances that coal->rx_coalesce_usecs != 0 ? Is there a dynamic update in the background ?
re,
wh
Quoted 11 lines
438 439 return 0; 440 }regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 11 lines
Quoted 11 lines
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
429 static int qede_get_coalesce(structnet_device*dev,
430 structethtool_coalesce*coal)431 { 432 struct qede_dev *edev = netdev_priv(dev); 433 434 memset(coal, 0, sizeof(struct ethtool_coalesce)); 435 edev->ops->common->get_coalesce(edev->cdev, 436 (u16 *)&coal->rx_coalesce_usecs, 437 (u16 *)&coal->tx_coalesce_usecs);
Quoted 6 lines
Quoted 3 lines
This won't work on big endian systems. Fix it so the function takes a u32 or make ->rx_coalesce_usecs a u16.
given you do a memset before, what are the chances that coal-
Quoted 1 line
rx_coalesce_usecs!= 0 ?Is there a dynamic update in the background ?
It's a getter; The entire purpose of the `get_coalesce' function is to fill those fields with actual values.
[Although I noticed that the memset is clearing the `cmd' field, which isn't an intended result]
Am 28.06.2016 09:26, schrieb Yuval Mintz:
Quoted 14 lines
Quoted 14 lines
Quoted 14 lines
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
429 static int qede_get_coalesce(structnet_device*dev,
430 structethtool_coalesce*coal)431 { 432 struct qede_dev *edev = netdev_priv(dev); 433 434 memset(coal, 0, sizeof(struct ethtool_coalesce)); 435 edev->ops->common->get_coalesce(edev->cdev, 436 (u16 *)&coal->rx_coalesce_usecs, 437 (u16 *)&coal->tx_coalesce_usecs);This won't work on big endian systems. Fix it so the function takes a u32 or make ->rx_coalesce_usecs a u16.
Quoted 9 lines
Quoted 3 lines
given you do a memset before, what are the chances that coal-
Quoted 1 line
rx_coalesce_usecs!= 0 ?Is there a dynamic update in the background ?
It's a getter; The entire purpose of the `get_coalesce' function is to fill those fields with actual values.
[Although I noticed that the memset is clearing the `cmd' field, which isn't an intended result]
ok i understand, wrong direction :)
re,
wh