Commit 2b9c7581 authored by stephen hemminger's avatar stephen hemminger Committed by David S. Miller

net: make queue attributes ro_after_init

The XPS queue attributes can be ro_after_init.
Also use __ATTR_RX macros to simplify initialization.
Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 170c658a
...@@ -1010,8 +1010,7 @@ static const struct sysfs_ops netdev_queue_sysfs_ops = { ...@@ -1010,8 +1010,7 @@ static const struct sysfs_ops netdev_queue_sysfs_ops = {
.store = netdev_queue_attr_store, .store = netdev_queue_attr_store,
}; };
static ssize_t show_trans_timeout(struct netdev_queue *queue, static ssize_t tx_timeout_show(struct netdev_queue *queue, char *buf)
char *buf)
{ {
unsigned long trans_timeout; unsigned long trans_timeout;
...@@ -1033,7 +1032,7 @@ static unsigned int get_netdev_queue_index(struct netdev_queue *queue) ...@@ -1033,7 +1032,7 @@ static unsigned int get_netdev_queue_index(struct netdev_queue *queue)
return i; return i;
} }
static ssize_t show_traffic_class(struct netdev_queue *queue, static ssize_t traffic_class_show(struct netdev_queue *queue,
char *buf) char *buf)
{ {
struct net_device *dev = queue->dev; struct net_device *dev = queue->dev;
...@@ -1047,14 +1046,14 @@ static ssize_t show_traffic_class(struct netdev_queue *queue, ...@@ -1047,14 +1046,14 @@ static ssize_t show_traffic_class(struct netdev_queue *queue,
} }
#ifdef CONFIG_XPS #ifdef CONFIG_XPS
static ssize_t show_tx_maxrate(struct netdev_queue *queue, static ssize_t tx_maxrate_show(struct netdev_queue *queue,
char *buf) char *buf)
{ {
return sprintf(buf, "%lu\n", queue->tx_maxrate); return sprintf(buf, "%lu\n", queue->tx_maxrate);
} }
static ssize_t set_tx_maxrate(struct netdev_queue *queue, static ssize_t tx_maxrate_store(struct netdev_queue *queue,
const char *buf, size_t len) const char *buf, size_t len)
{ {
struct net_device *dev = queue->dev; struct net_device *dev = queue->dev;
int err, index = get_netdev_queue_index(queue); int err, index = get_netdev_queue_index(queue);
...@@ -1079,16 +1078,15 @@ static ssize_t set_tx_maxrate(struct netdev_queue *queue, ...@@ -1079,16 +1078,15 @@ static ssize_t set_tx_maxrate(struct netdev_queue *queue,
return err; return err;
} }
static struct netdev_queue_attribute queue_tx_maxrate = static struct netdev_queue_attribute queue_tx_maxrate __ro_after_init
__ATTR(tx_maxrate, S_IRUGO | S_IWUSR, = __ATTR_RW(tx_maxrate);
show_tx_maxrate, set_tx_maxrate);
#endif #endif
static struct netdev_queue_attribute queue_trans_timeout = static struct netdev_queue_attribute queue_trans_timeout __ro_after_init
__ATTR(tx_timeout, S_IRUGO, show_trans_timeout, NULL); = __ATTR_RO(tx_timeout);
static struct netdev_queue_attribute queue_traffic_class = static struct netdev_queue_attribute queue_traffic_class __ro_after_init
__ATTR(traffic_class, S_IRUGO, show_traffic_class, NULL); = __ATTR_RO(traffic_class);
#ifdef CONFIG_BQL #ifdef CONFIG_BQL
/* /*
...@@ -1196,8 +1194,8 @@ static const struct attribute_group dql_group = { ...@@ -1196,8 +1194,8 @@ static const struct attribute_group dql_group = {
#endif /* CONFIG_BQL */ #endif /* CONFIG_BQL */
#ifdef CONFIG_XPS #ifdef CONFIG_XPS
static ssize_t show_xps_map(struct netdev_queue *queue, static ssize_t xps_cpus_show(struct netdev_queue *queue,
char *buf) char *buf)
{ {
struct net_device *dev = queue->dev; struct net_device *dev = queue->dev;
int cpu, len, num_tc = 1, tc = 0; int cpu, len, num_tc = 1, tc = 0;
...@@ -1243,8 +1241,8 @@ static ssize_t show_xps_map(struct netdev_queue *queue, ...@@ -1243,8 +1241,8 @@ static ssize_t show_xps_map(struct netdev_queue *queue,
return len < PAGE_SIZE ? len : -EINVAL; return len < PAGE_SIZE ? len : -EINVAL;
} }
static ssize_t store_xps_map(struct netdev_queue *queue, static ssize_t xps_cpus_store(struct netdev_queue *queue,
const char *buf, size_t len) const char *buf, size_t len)
{ {
struct net_device *dev = queue->dev; struct net_device *dev = queue->dev;
unsigned long index; unsigned long index;
...@@ -1272,11 +1270,11 @@ static ssize_t store_xps_map(struct netdev_queue *queue, ...@@ -1272,11 +1270,11 @@ static ssize_t store_xps_map(struct netdev_queue *queue,
return err ? : len; return err ? : len;
} }
static struct netdev_queue_attribute xps_cpus_attribute = static struct netdev_queue_attribute xps_cpus_attribute __ro_after_init
__ATTR(xps_cpus, S_IRUGO | S_IWUSR, show_xps_map, store_xps_map); = __ATTR_RW(xps_cpus);
#endif /* CONFIG_XPS */ #endif /* CONFIG_XPS */
static struct attribute *netdev_queue_default_attrs[] = { static struct attribute *netdev_queue_default_attrs[] __ro_after_init = {
&queue_trans_timeout.attr, &queue_trans_timeout.attr,
&queue_traffic_class.attr, &queue_traffic_class.attr,
#ifdef CONFIG_XPS #ifdef CONFIG_XPS
...@@ -1306,7 +1304,7 @@ static const void *netdev_queue_namespace(struct kobject *kobj) ...@@ -1306,7 +1304,7 @@ static const void *netdev_queue_namespace(struct kobject *kobj)
return ns; return ns;
} }
static struct kobj_type netdev_queue_ktype = { static struct kobj_type netdev_queue_ktype __ro_after_init = {
.sysfs_ops = &netdev_queue_sysfs_ops, .sysfs_ops = &netdev_queue_sysfs_ops,
.release = netdev_queue_release, .release = netdev_queue_release,
.default_attrs = netdev_queue_default_attrs, .default_attrs = netdev_queue_default_attrs,
......
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