X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=net%2Fethtool%2Fcommon.c;fp=net%2Fethtool%2Fcommon.c;h=6b2a360dcdf069218becaf8cbd79ad3faefbcf90;hb=fb6e30a72539ce28c1323aef4190d35aac106f6f;hp=11d8797f63f666faac7c5033e446415faab46f5d;hpb=c3f687d8dfeb33cffbb8f47c30002babfc4895d2;p=linux-2.6-microblaze.git diff --git a/net/ethtool/common.c b/net/ethtool/common.c index 11d8797f63f6..6b2a360dcdf0 100644 --- a/net/ethtool/common.c +++ b/net/ethtool/common.c @@ -589,8 +589,8 @@ err_free_info: int ethtool_get_max_rxfh_channel(struct net_device *dev, u32 *max) { + struct ethtool_rxfh_param rxfh = {}; u32 dev_size, current_max = 0; - u32 *indir; int ret; if (!dev->ethtool_ops->get_rxfh_indir_size || @@ -600,21 +600,21 @@ int ethtool_get_max_rxfh_channel(struct net_device *dev, u32 *max) if (dev_size == 0) return -EOPNOTSUPP; - indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER); - if (!indir) + rxfh.indir = kcalloc(dev_size, sizeof(rxfh.indir[0]), GFP_USER); + if (!rxfh.indir) return -ENOMEM; - ret = dev->ethtool_ops->get_rxfh(dev, indir, NULL, NULL); + ret = dev->ethtool_ops->get_rxfh(dev, &rxfh); if (ret) goto out; while (dev_size--) - current_max = max(current_max, indir[dev_size]); + current_max = max(current_max, rxfh.indir[dev_size]); *max = current_max; out: - kfree(indir); + kfree(rxfh.indir); return ret; }