Commit 896392ef authored by Divy Le Ray's avatar Divy Le Ray Committed by Jeff Garzik

cxgb3 - manage sysfs attributes per port

sysfs attributes are now managed per port, no longer per adapter.
Signed-off-by: default avatarDivy Le Ray <divy@chelsio.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent d8d70caf
...@@ -434,27 +434,25 @@ static int setup_sge_qsets(struct adapter *adap) ...@@ -434,27 +434,25 @@ static int setup_sge_qsets(struct adapter *adap)
static ssize_t attr_show(struct device *d, struct device_attribute *attr, static ssize_t attr_show(struct device *d, struct device_attribute *attr,
char *buf, char *buf,
ssize_t(*format) (struct adapter *, char *)) ssize_t(*format) (struct net_device *, char *))
{ {
ssize_t len; ssize_t len;
struct adapter *adap = to_net_dev(d)->priv;
/* Synchronize with ioctls that may shut down the device */ /* Synchronize with ioctls that may shut down the device */
rtnl_lock(); rtnl_lock();
len = (*format) (adap, buf); len = (*format) (to_net_dev(d), buf);
rtnl_unlock(); rtnl_unlock();
return len; return len;
} }
static ssize_t attr_store(struct device *d, struct device_attribute *attr, static ssize_t attr_store(struct device *d, struct device_attribute *attr,
const char *buf, size_t len, const char *buf, size_t len,
ssize_t(*set) (struct adapter *, unsigned int), ssize_t(*set) (struct net_device *, unsigned int),
unsigned int min_val, unsigned int max_val) unsigned int min_val, unsigned int max_val)
{ {
char *endp; char *endp;
ssize_t ret; ssize_t ret;
unsigned int val; unsigned int val;
struct adapter *adap = to_net_dev(d)->priv;
if (!capable(CAP_NET_ADMIN)) if (!capable(CAP_NET_ADMIN))
return -EPERM; return -EPERM;
...@@ -464,7 +462,7 @@ static ssize_t attr_store(struct device *d, struct device_attribute *attr, ...@@ -464,7 +462,7 @@ static ssize_t attr_store(struct device *d, struct device_attribute *attr,
return -EINVAL; return -EINVAL;
rtnl_lock(); rtnl_lock();
ret = (*set) (adap, val); ret = (*set) (to_net_dev(d), val);
if (!ret) if (!ret)
ret = len; ret = len;
rtnl_unlock(); rtnl_unlock();
...@@ -472,8 +470,9 @@ static ssize_t attr_store(struct device *d, struct device_attribute *attr, ...@@ -472,8 +470,9 @@ static ssize_t attr_store(struct device *d, struct device_attribute *attr,
} }
#define CXGB3_SHOW(name, val_expr) \ #define CXGB3_SHOW(name, val_expr) \
static ssize_t format_##name(struct adapter *adap, char *buf) \ static ssize_t format_##name(struct net_device *dev, char *buf) \
{ \ { \
struct adapter *adap = dev->priv; \
return sprintf(buf, "%u\n", val_expr); \ return sprintf(buf, "%u\n", val_expr); \
} \ } \
static ssize_t show_##name(struct device *d, struct device_attribute *attr, \ static ssize_t show_##name(struct device *d, struct device_attribute *attr, \
...@@ -482,8 +481,10 @@ static ssize_t show_##name(struct device *d, struct device_attribute *attr, \ ...@@ -482,8 +481,10 @@ static ssize_t show_##name(struct device *d, struct device_attribute *attr, \
return attr_show(d, attr, buf, format_##name); \ return attr_show(d, attr, buf, format_##name); \
} }
static ssize_t set_nfilters(struct adapter *adap, unsigned int val) static ssize_t set_nfilters(struct net_device *dev, unsigned int val)
{ {
struct adapter *adap = dev->priv;
if (adap->flags & FULL_INIT_DONE) if (adap->flags & FULL_INIT_DONE)
return -EBUSY; return -EBUSY;
if (val && adap->params.rev == 0) if (val && adap->params.rev == 0)
...@@ -500,8 +501,10 @@ static ssize_t store_nfilters(struct device *d, struct device_attribute *attr, ...@@ -500,8 +501,10 @@ static ssize_t store_nfilters(struct device *d, struct device_attribute *attr,
return attr_store(d, attr, buf, len, set_nfilters, 0, ~0); return attr_store(d, attr, buf, len, set_nfilters, 0, ~0);
} }
static ssize_t set_nservers(struct adapter *adap, unsigned int val) static ssize_t set_nservers(struct net_device *dev, unsigned int val)
{ {
struct adapter *adap = dev->priv;
if (adap->flags & FULL_INIT_DONE) if (adap->flags & FULL_INIT_DONE)
return -EBUSY; return -EBUSY;
if (val > t3_mc5_size(&adap->mc5) - adap->params.mc5.nfilters) if (val > t3_mc5_size(&adap->mc5) - adap->params.mc5.nfilters)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment