mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
RDMA: Convert sysfs device * show functions to use sysfs_emit()
Done with cocci script: @@ identifier d_show; identifier dev, attr, buf; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... return - sprintf(buf, + sysfs_emit(buf, ...); ...> } @@ identifier d_show; identifier dev, attr, buf; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... return - snprintf(buf, PAGE_SIZE, + sysfs_emit(buf, ...); ...> } @@ identifier d_show; identifier dev, attr, buf; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... return - scnprintf(buf, PAGE_SIZE, + sysfs_emit(buf, ...); ...> } @@ identifier d_show; identifier dev, attr, buf; expression chr; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... return - strcpy(buf, chr); + sysfs_emit(buf, chr); ...> } @@ identifier d_show; identifier dev, attr, buf; identifier len; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... len = - sprintf(buf, + sysfs_emit(buf, ...); ...> return len; } @@ identifier d_show; identifier dev, attr, buf; identifier len; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... len = - snprintf(buf, PAGE_SIZE, + sysfs_emit(buf, ...); ...> return len; } @@ identifier d_show; identifier dev, attr, buf; identifier len; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... len = - scnprintf(buf, PAGE_SIZE, + sysfs_emit(buf, ...); ...> return len; } @@ identifier d_show; identifier dev, attr, buf; identifier len; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { <... - len += scnprintf(buf + len, PAGE_SIZE - len, + len += sysfs_emit_at(buf, len, ...); ...> return len; } @@ identifier d_show; identifier dev, attr, buf; expression chr; @@ ssize_t d_show(struct device *dev, struct device_attribute *attr, char *buf) { ... - strcpy(buf, chr); - return strlen(buf); + return sysfs_emit(buf, chr); } Link: https://lore.kernel.org/r/7f406fa8e3aa2552c022bec680f621e38d1fe414.1602122879.git.joe@perches.com Signed-off-by: Joe Perches <joe@perches.com> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
676a80adba
commit
1c7fd72687
@ -1230,14 +1230,22 @@ static ssize_t node_type_show(struct device *device,
|
|||||||
struct ib_device *dev = rdma_device_to_ibdev(device);
|
struct ib_device *dev = rdma_device_to_ibdev(device);
|
||||||
|
|
||||||
switch (dev->node_type) {
|
switch (dev->node_type) {
|
||||||
case RDMA_NODE_IB_CA: return sprintf(buf, "%d: CA\n", dev->node_type);
|
case RDMA_NODE_IB_CA:
|
||||||
case RDMA_NODE_RNIC: return sprintf(buf, "%d: RNIC\n", dev->node_type);
|
return sysfs_emit(buf, "%d: CA\n", dev->node_type);
|
||||||
case RDMA_NODE_USNIC: return sprintf(buf, "%d: usNIC\n", dev->node_type);
|
case RDMA_NODE_RNIC:
|
||||||
case RDMA_NODE_USNIC_UDP: return sprintf(buf, "%d: usNIC UDP\n", dev->node_type);
|
return sysfs_emit(buf, "%d: RNIC\n", dev->node_type);
|
||||||
case RDMA_NODE_UNSPECIFIED: return sprintf(buf, "%d: unspecified\n", dev->node_type);
|
case RDMA_NODE_USNIC:
|
||||||
case RDMA_NODE_IB_SWITCH: return sprintf(buf, "%d: switch\n", dev->node_type);
|
return sysfs_emit(buf, "%d: usNIC\n", dev->node_type);
|
||||||
case RDMA_NODE_IB_ROUTER: return sprintf(buf, "%d: router\n", dev->node_type);
|
case RDMA_NODE_USNIC_UDP:
|
||||||
default: return sprintf(buf, "%d: <unknown>\n", dev->node_type);
|
return sysfs_emit(buf, "%d: usNIC UDP\n", dev->node_type);
|
||||||
|
case RDMA_NODE_UNSPECIFIED:
|
||||||
|
return sysfs_emit(buf, "%d: unspecified\n", dev->node_type);
|
||||||
|
case RDMA_NODE_IB_SWITCH:
|
||||||
|
return sysfs_emit(buf, "%d: switch\n", dev->node_type);
|
||||||
|
case RDMA_NODE_IB_ROUTER:
|
||||||
|
return sysfs_emit(buf, "%d: router\n", dev->node_type);
|
||||||
|
default:
|
||||||
|
return sysfs_emit(buf, "%d: <unknown>\n", dev->node_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(node_type);
|
static DEVICE_ATTR_RO(node_type);
|
||||||
@ -1247,11 +1255,12 @@ static ssize_t sys_image_guid_show(struct device *device,
|
|||||||
{
|
{
|
||||||
struct ib_device *dev = rdma_device_to_ibdev(device);
|
struct ib_device *dev = rdma_device_to_ibdev(device);
|
||||||
|
|
||||||
return sprintf(buf, "%04x:%04x:%04x:%04x\n",
|
return sysfs_emit(
|
||||||
be16_to_cpu(((__be16 *) &dev->attrs.sys_image_guid)[0]),
|
buf, "%04x:%04x:%04x:%04x\n",
|
||||||
be16_to_cpu(((__be16 *) &dev->attrs.sys_image_guid)[1]),
|
be16_to_cpu(((__be16 *)&dev->attrs.sys_image_guid)[0]),
|
||||||
be16_to_cpu(((__be16 *) &dev->attrs.sys_image_guid)[2]),
|
be16_to_cpu(((__be16 *)&dev->attrs.sys_image_guid)[1]),
|
||||||
be16_to_cpu(((__be16 *) &dev->attrs.sys_image_guid)[3]));
|
be16_to_cpu(((__be16 *)&dev->attrs.sys_image_guid)[2]),
|
||||||
|
be16_to_cpu(((__be16 *)&dev->attrs.sys_image_guid)[3]));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(sys_image_guid);
|
static DEVICE_ATTR_RO(sys_image_guid);
|
||||||
|
|
||||||
@ -1260,11 +1269,11 @@ static ssize_t node_guid_show(struct device *device,
|
|||||||
{
|
{
|
||||||
struct ib_device *dev = rdma_device_to_ibdev(device);
|
struct ib_device *dev = rdma_device_to_ibdev(device);
|
||||||
|
|
||||||
return sprintf(buf, "%04x:%04x:%04x:%04x\n",
|
return sysfs_emit(buf, "%04x:%04x:%04x:%04x\n",
|
||||||
be16_to_cpu(((__be16 *) &dev->node_guid)[0]),
|
be16_to_cpu(((__be16 *)&dev->node_guid)[0]),
|
||||||
be16_to_cpu(((__be16 *) &dev->node_guid)[1]),
|
be16_to_cpu(((__be16 *)&dev->node_guid)[1]),
|
||||||
be16_to_cpu(((__be16 *) &dev->node_guid)[2]),
|
be16_to_cpu(((__be16 *)&dev->node_guid)[2]),
|
||||||
be16_to_cpu(((__be16 *) &dev->node_guid)[3]));
|
be16_to_cpu(((__be16 *)&dev->node_guid)[3]));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(node_guid);
|
static DEVICE_ATTR_RO(node_guid);
|
||||||
|
|
||||||
@ -1273,7 +1282,7 @@ static ssize_t node_desc_show(struct device *device,
|
|||||||
{
|
{
|
||||||
struct ib_device *dev = rdma_device_to_ibdev(device);
|
struct ib_device *dev = rdma_device_to_ibdev(device);
|
||||||
|
|
||||||
return sprintf(buf, "%.64s\n", dev->node_desc);
|
return sysfs_emit(buf, "%.64s\n", dev->node_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t node_desc_store(struct device *device,
|
static ssize_t node_desc_store(struct device *device,
|
||||||
|
@ -1825,7 +1825,7 @@ static ssize_t show_abi_version(struct device *dev,
|
|||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
char *buf)
|
char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "%d\n", RDMA_USER_CM_ABI_VERSION);
|
return sysfs_emit(buf, "%d\n", RDMA_USER_CM_ABI_VERSION);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
|
static DEVICE_ATTR(abi_version, S_IRUGO, show_abi_version, NULL);
|
||||||
|
|
||||||
|
@ -1191,7 +1191,7 @@ static ssize_t ibdev_show(struct device *dev, struct device_attribute *attr,
|
|||||||
if (!port)
|
if (!port)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", dev_name(&port->ib_dev->dev));
|
return sysfs_emit(buf, "%s\n", dev_name(&port->ib_dev->dev));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(ibdev);
|
static DEVICE_ATTR_RO(ibdev);
|
||||||
|
|
||||||
@ -1203,7 +1203,7 @@ static ssize_t port_show(struct device *dev, struct device_attribute *attr,
|
|||||||
if (!port)
|
if (!port)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", port->port_num);
|
return sysfs_emit(buf, "%d\n", port->port_num);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(port);
|
static DEVICE_ATTR_RO(port);
|
||||||
|
|
||||||
|
@ -1046,7 +1046,7 @@ static ssize_t ibdev_show(struct device *device, struct device_attribute *attr,
|
|||||||
srcu_key = srcu_read_lock(&dev->disassociate_srcu);
|
srcu_key = srcu_read_lock(&dev->disassociate_srcu);
|
||||||
ib_dev = srcu_dereference(dev->ib_dev, &dev->disassociate_srcu);
|
ib_dev = srcu_dereference(dev->ib_dev, &dev->disassociate_srcu);
|
||||||
if (ib_dev)
|
if (ib_dev)
|
||||||
ret = sprintf(buf, "%s\n", dev_name(&ib_dev->dev));
|
ret = sysfs_emit(buf, "%s\n", dev_name(&ib_dev->dev));
|
||||||
srcu_read_unlock(&dev->disassociate_srcu, srcu_key);
|
srcu_read_unlock(&dev->disassociate_srcu, srcu_key);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -1065,7 +1065,7 @@ static ssize_t abi_version_show(struct device *device,
|
|||||||
srcu_key = srcu_read_lock(&dev->disassociate_srcu);
|
srcu_key = srcu_read_lock(&dev->disassociate_srcu);
|
||||||
ib_dev = srcu_dereference(dev->ib_dev, &dev->disassociate_srcu);
|
ib_dev = srcu_dereference(dev->ib_dev, &dev->disassociate_srcu);
|
||||||
if (ib_dev)
|
if (ib_dev)
|
||||||
ret = sprintf(buf, "%u\n", ib_dev->ops.uverbs_abi_ver);
|
ret = sysfs_emit(buf, "%u\n", ib_dev->ops.uverbs_abi_ver);
|
||||||
srcu_read_unlock(&dev->disassociate_srcu, srcu_key);
|
srcu_read_unlock(&dev->disassociate_srcu, srcu_key);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -608,7 +608,7 @@ static ssize_t hw_rev_show(struct device *device, struct device_attribute *attr,
|
|||||||
struct bnxt_re_dev *rdev =
|
struct bnxt_re_dev *rdev =
|
||||||
rdma_device_to_drv_device(device, struct bnxt_re_dev, ibdev);
|
rdma_device_to_drv_device(device, struct bnxt_re_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "0x%x\n", rdev->en_dev->pdev->vendor);
|
return sysfs_emit(buf, "0x%x\n", rdev->en_dev->pdev->vendor);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -618,7 +618,7 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
struct bnxt_re_dev *rdev =
|
struct bnxt_re_dev *rdev =
|
||||||
rdma_device_to_drv_device(device, struct bnxt_re_dev, ibdev);
|
rdma_device_to_drv_device(device, struct bnxt_re_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s\n", rdev->ibdev.node_desc);
|
return sysfs_emit(buf, "%s\n", rdev->ibdev.node_desc);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
|
@ -322,8 +322,9 @@ static ssize_t hw_rev_show(struct device *dev,
|
|||||||
rdma_device_to_drv_device(dev, struct c4iw_dev, ibdev);
|
rdma_device_to_drv_device(dev, struct c4iw_dev, ibdev);
|
||||||
|
|
||||||
pr_debug("dev 0x%p\n", dev);
|
pr_debug("dev 0x%p\n", dev);
|
||||||
return sprintf(buf, "%d\n",
|
return sysfs_emit(
|
||||||
CHELSIO_CHIP_RELEASE(c4iw_dev->rdev.lldi.adapter_type));
|
buf, "%d\n",
|
||||||
|
CHELSIO_CHIP_RELEASE(c4iw_dev->rdev.lldi.adapter_type));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -337,7 +338,7 @@ static ssize_t hca_type_show(struct device *dev,
|
|||||||
|
|
||||||
pr_debug("dev 0x%p\n", dev);
|
pr_debug("dev 0x%p\n", dev);
|
||||||
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
||||||
return sprintf(buf, "%s\n", info.driver);
|
return sysfs_emit(buf, "%s\n", info.driver);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
@ -348,8 +349,8 @@ static ssize_t board_id_show(struct device *dev, struct device_attribute *attr,
|
|||||||
rdma_device_to_drv_device(dev, struct c4iw_dev, ibdev);
|
rdma_device_to_drv_device(dev, struct c4iw_dev, ibdev);
|
||||||
|
|
||||||
pr_debug("dev 0x%p\n", dev);
|
pr_debug("dev 0x%p\n", dev);
|
||||||
return sprintf(buf, "%x.%x\n", c4iw_dev->rdev.lldi.pdev->vendor,
|
return sysfs_emit(buf, "%x.%x\n", c4iw_dev->rdev.lldi.pdev->vendor,
|
||||||
c4iw_dev->rdev.lldi.pdev->device);
|
c4iw_dev->rdev.lldi.pdev->device);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -500,7 +500,7 @@ static ssize_t hw_rev_show(struct device *device, struct device_attribute *attr,
|
|||||||
struct hfi1_ibdev *dev =
|
struct hfi1_ibdev *dev =
|
||||||
rdma_device_to_drv_device(device, struct hfi1_ibdev, rdi.ibdev);
|
rdma_device_to_drv_device(device, struct hfi1_ibdev, rdi.ibdev);
|
||||||
|
|
||||||
return sprintf(buf, "%x\n", dd_from_dev(dev)->minrev);
|
return sysfs_emit(buf, "%x\n", dd_from_dev(dev)->minrev);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -515,7 +515,7 @@ static ssize_t board_id_show(struct device *device,
|
|||||||
if (!dd->boardname)
|
if (!dd->boardname)
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
else
|
else
|
||||||
ret = scnprintf(buf, PAGE_SIZE, "%s\n", dd->boardname);
|
ret = sysfs_emit(buf, "%s\n", dd->boardname);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
@ -528,7 +528,7 @@ static ssize_t boardversion_show(struct device *device,
|
|||||||
struct hfi1_devdata *dd = dd_from_dev(dev);
|
struct hfi1_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
/* The string printed here is already newline-terminated. */
|
/* The string printed here is already newline-terminated. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s", dd->boardversion);
|
return sysfs_emit(buf, "%s", dd->boardversion);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(boardversion);
|
static DEVICE_ATTR_RO(boardversion);
|
||||||
|
|
||||||
@ -545,9 +545,9 @@ static ssize_t nctxts_show(struct device *device,
|
|||||||
* and a receive context, so returning the smaller of the two counts
|
* and a receive context, so returning the smaller of the two counts
|
||||||
* give a more accurate picture of total contexts available.
|
* give a more accurate picture of total contexts available.
|
||||||
*/
|
*/
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
return sysfs_emit(buf, "%u\n",
|
||||||
min(dd->num_user_contexts,
|
min(dd->num_user_contexts,
|
||||||
(u32)dd->sc_sizes[SC_USER].count));
|
(u32)dd->sc_sizes[SC_USER].count));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(nctxts);
|
static DEVICE_ATTR_RO(nctxts);
|
||||||
|
|
||||||
@ -559,7 +559,7 @@ static ssize_t nfreectxts_show(struct device *device,
|
|||||||
struct hfi1_devdata *dd = dd_from_dev(dev);
|
struct hfi1_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
/* Return the number of free user ports (contexts) available. */
|
/* Return the number of free user ports (contexts) available. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n", dd->freectxts);
|
return sysfs_emit(buf, "%u\n", dd->freectxts);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(nfreectxts);
|
static DEVICE_ATTR_RO(nfreectxts);
|
||||||
|
|
||||||
@ -570,7 +570,7 @@ static ssize_t serial_show(struct device *device,
|
|||||||
rdma_device_to_drv_device(device, struct hfi1_ibdev, rdi.ibdev);
|
rdma_device_to_drv_device(device, struct hfi1_ibdev, rdi.ibdev);
|
||||||
struct hfi1_devdata *dd = dd_from_dev(dev);
|
struct hfi1_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s", dd->serial);
|
return sysfs_emit(buf, "%s", dd->serial);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(serial);
|
static DEVICE_ATTR_RO(serial);
|
||||||
|
|
||||||
|
@ -2062,7 +2062,7 @@ static ssize_t hw_rev_show(struct device *dev,
|
|||||||
rdma_device_to_drv_device(dev, struct i40iw_ib_device, ibdev);
|
rdma_device_to_drv_device(dev, struct i40iw_ib_device, ibdev);
|
||||||
u32 hw_rev = iwibdev->iwdev->sc_dev.hw_rev;
|
u32 hw_rev = iwibdev->iwdev->sc_dev.hw_rev;
|
||||||
|
|
||||||
return sprintf(buf, "%x\n", hw_rev);
|
return sysfs_emit(buf, "%x\n", hw_rev);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -2072,7 +2072,7 @@ static DEVICE_ATTR_RO(hw_rev);
|
|||||||
static ssize_t hca_type_show(struct device *dev,
|
static ssize_t hca_type_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "I40IW\n");
|
return sysfs_emit(buf, "I40IW\n");
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
@ -2082,7 +2082,7 @@ static DEVICE_ATTR_RO(hca_type);
|
|||||||
static ssize_t board_id_show(struct device *dev,
|
static ssize_t board_id_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "%.*s\n", 32, "I40IW Board ID");
|
return sysfs_emit(buf, "%.*s\n", 32, "I40IW Board ID");
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -2024,7 +2024,7 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
{
|
{
|
||||||
struct mlx4_ib_dev *dev =
|
struct mlx4_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
||||||
return sprintf(buf, "MT%d\n", dev->dev->persist->pdev->device);
|
return sysfs_emit(buf, "MT%d\n", dev->dev->persist->pdev->device);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
@ -2033,7 +2033,7 @@ static ssize_t hw_rev_show(struct device *device,
|
|||||||
{
|
{
|
||||||
struct mlx4_ib_dev *dev =
|
struct mlx4_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
||||||
return sprintf(buf, "%x\n", dev->dev->rev_id);
|
return sysfs_emit(buf, "%x\n", dev->dev->rev_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -2043,8 +2043,7 @@ static ssize_t board_id_show(struct device *device,
|
|||||||
struct mlx4_ib_dev *dev =
|
struct mlx4_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx4_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%.*s\n", MLX4_BOARD_ID_LEN,
|
return sysfs_emit(buf, "%.*s\n", MLX4_BOARD_ID_LEN, dev->dev->board_id);
|
||||||
dev->dev->board_id);
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ static ssize_t show_admin_alias_guid(struct device *dev,
|
|||||||
mlx4_ib_iov_dentry->entry_num,
|
mlx4_ib_iov_dentry->entry_num,
|
||||||
port->num);
|
port->num);
|
||||||
|
|
||||||
return sprintf(buf, "%llx\n", be64_to_cpu(sysadmin_ag_val));
|
return sysfs_emit(buf, "%llx\n", be64_to_cpu(sysadmin_ag_val));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* store_admin_alias_guid stores the (new) administratively assigned value of that GUID.
|
/* store_admin_alias_guid stores the (new) administratively assigned value of that GUID.
|
||||||
@ -123,15 +123,15 @@ static ssize_t show_port_gid(struct device *dev,
|
|||||||
mlx4_ib_iov_dentry->entry_num, &gid, 1);
|
mlx4_ib_iov_dentry->entry_num, &gid, 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
ret = sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
ret = sysfs_emit(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[0]),
|
be16_to_cpu(((__be16 *)gid.raw)[0]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[1]),
|
be16_to_cpu(((__be16 *)gid.raw)[1]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[2]),
|
be16_to_cpu(((__be16 *)gid.raw)[2]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[3]),
|
be16_to_cpu(((__be16 *)gid.raw)[3]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[4]),
|
be16_to_cpu(((__be16 *)gid.raw)[4]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[5]),
|
be16_to_cpu(((__be16 *)gid.raw)[5]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[6]),
|
be16_to_cpu(((__be16 *)gid.raw)[6]),
|
||||||
be16_to_cpu(((__be16 *) gid.raw)[7]));
|
be16_to_cpu(((__be16 *)gid.raw)[7]));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ static ssize_t show_phys_port_pkey(struct device *dev,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return sprintf(buf, "0x%04x\n", pkey);
|
return sysfs_emit(buf, "0x%04x\n", pkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DENTRY_REMOVE(_dentry) \
|
#define DENTRY_REMOVE(_dentry) \
|
||||||
@ -545,9 +545,9 @@ static ssize_t sysfs_show_smi_enabled(struct device *dev,
|
|||||||
ssize_t len = 0;
|
ssize_t len = 0;
|
||||||
|
|
||||||
if (mlx4_vf_smi_enabled(p->dev->dev, p->slave, p->port_num))
|
if (mlx4_vf_smi_enabled(p->dev->dev, p->slave, p->port_num))
|
||||||
len = sprintf(buf, "%d\n", 1);
|
len = sysfs_emit(buf, "%d\n", 1);
|
||||||
else
|
else
|
||||||
len = sprintf(buf, "%d\n", 0);
|
len = sysfs_emit(buf, "%d\n", 0);
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
@ -561,9 +561,9 @@ static ssize_t sysfs_show_enable_smi_admin(struct device *dev,
|
|||||||
ssize_t len = 0;
|
ssize_t len = 0;
|
||||||
|
|
||||||
if (mlx4_vf_get_enable_smi_admin(p->dev->dev, p->slave, p->port_num))
|
if (mlx4_vf_get_enable_smi_admin(p->dev->dev, p->slave, p->port_num))
|
||||||
len = sprintf(buf, "%d\n", 1);
|
len = sysfs_emit(buf, "%d\n", 1);
|
||||||
else
|
else
|
||||||
len = sprintf(buf, "%d\n", 0);
|
len = sysfs_emit(buf, "%d\n", 0);
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
@ -2628,7 +2628,7 @@ static ssize_t fw_pages_show(struct device *device,
|
|||||||
struct mlx5_ib_dev *dev =
|
struct mlx5_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", dev->mdev->priv.fw_pages);
|
return sysfs_emit(buf, "%d\n", dev->mdev->priv.fw_pages);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(fw_pages);
|
static DEVICE_ATTR_RO(fw_pages);
|
||||||
|
|
||||||
@ -2638,7 +2638,7 @@ static ssize_t reg_pages_show(struct device *device,
|
|||||||
struct mlx5_ib_dev *dev =
|
struct mlx5_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", atomic_read(&dev->mdev->priv.reg_pages));
|
return sysfs_emit(buf, "%d\n", atomic_read(&dev->mdev->priv.reg_pages));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(reg_pages);
|
static DEVICE_ATTR_RO(reg_pages);
|
||||||
|
|
||||||
@ -2648,7 +2648,7 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
struct mlx5_ib_dev *dev =
|
struct mlx5_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "MT%d\n", dev->mdev->pdev->device);
|
return sysfs_emit(buf, "MT%d\n", dev->mdev->pdev->device);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
@ -2658,7 +2658,7 @@ static ssize_t hw_rev_show(struct device *device,
|
|||||||
struct mlx5_ib_dev *dev =
|
struct mlx5_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%x\n", dev->mdev->rev_id);
|
return sysfs_emit(buf, "%x\n", dev->mdev->rev_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -2668,8 +2668,8 @@ static ssize_t board_id_show(struct device *device,
|
|||||||
struct mlx5_ib_dev *dev =
|
struct mlx5_ib_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mlx5_ib_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%.*s\n", MLX5_BOARD_ID_LEN,
|
return sysfs_emit(buf, "%.*s\n", MLX5_BOARD_ID_LEN,
|
||||||
dev->mdev->board_id);
|
dev->mdev->board_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -961,7 +961,7 @@ static ssize_t hw_rev_show(struct device *device,
|
|||||||
struct mthca_dev *dev =
|
struct mthca_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mthca_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mthca_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%x\n", dev->rev_id);
|
return sysfs_emit(buf, "%x\n", dev->rev_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -973,16 +973,16 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
|
|
||||||
switch (dev->pdev->device) {
|
switch (dev->pdev->device) {
|
||||||
case PCI_DEVICE_ID_MELLANOX_TAVOR:
|
case PCI_DEVICE_ID_MELLANOX_TAVOR:
|
||||||
return sprintf(buf, "MT23108\n");
|
return sysfs_emit(buf, "MT23108\n");
|
||||||
case PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT:
|
case PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT:
|
||||||
return sprintf(buf, "MT25208 (MT23108 compat mode)\n");
|
return sysfs_emit(buf, "MT25208 (MT23108 compat mode)\n");
|
||||||
case PCI_DEVICE_ID_MELLANOX_ARBEL:
|
case PCI_DEVICE_ID_MELLANOX_ARBEL:
|
||||||
return sprintf(buf, "MT25208\n");
|
return sysfs_emit(buf, "MT25208\n");
|
||||||
case PCI_DEVICE_ID_MELLANOX_SINAI:
|
case PCI_DEVICE_ID_MELLANOX_SINAI:
|
||||||
case PCI_DEVICE_ID_MELLANOX_SINAI_OLD:
|
case PCI_DEVICE_ID_MELLANOX_SINAI_OLD:
|
||||||
return sprintf(buf, "MT25204\n");
|
return sysfs_emit(buf, "MT25204\n");
|
||||||
default:
|
default:
|
||||||
return sprintf(buf, "unknown\n");
|
return sysfs_emit(buf, "unknown\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
@ -993,7 +993,7 @@ static ssize_t board_id_show(struct device *device,
|
|||||||
struct mthca_dev *dev =
|
struct mthca_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct mthca_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct mthca_dev, ib_dev);
|
||||||
|
|
||||||
return sprintf(buf, "%.*s\n", MTHCA_BOARD_ID_LEN, dev->board_id);
|
return sysfs_emit(buf, "%.*s\n", MTHCA_BOARD_ID_LEN, dev->board_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ static ssize_t hw_rev_show(struct device *device,
|
|||||||
struct ocrdma_dev *dev =
|
struct ocrdma_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct ocrdma_dev, ibdev);
|
rdma_device_to_drv_device(device, struct ocrdma_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "0x%x\n", dev->nic_info.pdev->vendor);
|
return sysfs_emit(buf, "0x%x\n", dev->nic_info.pdev->vendor);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
struct ocrdma_dev *dev =
|
struct ocrdma_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct ocrdma_dev, ibdev);
|
rdma_device_to_drv_device(device, struct ocrdma_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s\n", &dev->model_number[0]);
|
return sysfs_emit(buf, "%s\n", &dev->model_number[0]);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ static ssize_t hw_rev_show(struct device *device, struct device_attribute *attr,
|
|||||||
struct qedr_dev *dev =
|
struct qedr_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct qedr_dev, ibdev);
|
rdma_device_to_drv_device(device, struct qedr_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "0x%x\n", dev->attr.hw_ver);
|
return sysfs_emit(buf, "0x%x\n", dev->attr.hw_ver);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -134,10 +134,9 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
struct qedr_dev *dev =
|
struct qedr_dev *dev =
|
||||||
rdma_device_to_drv_device(device, struct qedr_dev, ibdev);
|
rdma_device_to_drv_device(device, struct qedr_dev, ibdev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "FastLinQ QL%x %s\n",
|
return sysfs_emit(buf, "FastLinQ QL%x %s\n", dev->pdev->device,
|
||||||
dev->pdev->device,
|
rdma_protocol_iwarp(&dev->ibdev, 1) ? "iWARP" :
|
||||||
rdma_protocol_iwarp(&dev->ibdev, 1) ?
|
"RoCE");
|
||||||
"iWARP" : "RoCE");
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
|
@ -565,7 +565,7 @@ static ssize_t hw_rev_show(struct device *device, struct device_attribute *attr,
|
|||||||
struct qib_ibdev *dev =
|
struct qib_ibdev *dev =
|
||||||
rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev);
|
rdma_device_to_drv_device(device, struct qib_ibdev, rdi.ibdev);
|
||||||
|
|
||||||
return sprintf(buf, "%x\n", dd_from_dev(dev)->minrev);
|
return sysfs_emit(buf, "%x\n", dd_from_dev(dev)->minrev);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
@ -580,7 +580,7 @@ static ssize_t hca_type_show(struct device *device,
|
|||||||
if (!dd->boardname)
|
if (!dd->boardname)
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
else
|
else
|
||||||
ret = scnprintf(buf, PAGE_SIZE, "%s\n", dd->boardname);
|
ret = sysfs_emit(buf, "%s\n", dd->boardname);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
@ -590,7 +590,7 @@ static ssize_t version_show(struct device *device,
|
|||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
/* The string printed here is already newline-terminated. */
|
/* The string printed here is already newline-terminated. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s", (char *)ib_qib_version);
|
return sysfs_emit(buf, "%s", (char *)ib_qib_version);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(version);
|
static DEVICE_ATTR_RO(version);
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ static ssize_t boardversion_show(struct device *device,
|
|||||||
struct qib_devdata *dd = dd_from_dev(dev);
|
struct qib_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
/* The string printed here is already newline-terminated. */
|
/* The string printed here is already newline-terminated. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s", dd->boardversion);
|
return sysfs_emit(buf, "%s", dd->boardversion);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(boardversion);
|
static DEVICE_ATTR_RO(boardversion);
|
||||||
|
|
||||||
@ -614,7 +614,7 @@ static ssize_t localbus_info_show(struct device *device,
|
|||||||
struct qib_devdata *dd = dd_from_dev(dev);
|
struct qib_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
/* The string printed here is already newline-terminated. */
|
/* The string printed here is already newline-terminated. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s", dd->lbus_info);
|
return sysfs_emit(buf, "%s", dd->lbus_info);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(localbus_info);
|
static DEVICE_ATTR_RO(localbus_info);
|
||||||
|
|
||||||
@ -628,9 +628,10 @@ static ssize_t nctxts_show(struct device *device,
|
|||||||
/* Return the number of user ports (contexts) available. */
|
/* Return the number of user ports (contexts) available. */
|
||||||
/* The calculation below deals with a special case where
|
/* The calculation below deals with a special case where
|
||||||
* cfgctxts is set to 1 on a single-port board. */
|
* cfgctxts is set to 1 on a single-port board. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
return sysfs_emit(buf, "%u\n",
|
||||||
(dd->first_user_ctxt > dd->cfgctxts) ? 0 :
|
(dd->first_user_ctxt > dd->cfgctxts) ?
|
||||||
(dd->cfgctxts - dd->first_user_ctxt));
|
0 :
|
||||||
|
(dd->cfgctxts - dd->first_user_ctxt));
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(nctxts);
|
static DEVICE_ATTR_RO(nctxts);
|
||||||
|
|
||||||
@ -642,7 +643,7 @@ static ssize_t nfreectxts_show(struct device *device,
|
|||||||
struct qib_devdata *dd = dd_from_dev(dev);
|
struct qib_devdata *dd = dd_from_dev(dev);
|
||||||
|
|
||||||
/* Return the number of free user ports (contexts) available. */
|
/* Return the number of free user ports (contexts) available. */
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n", dd->freectxts);
|
return sysfs_emit(buf, "%u\n", dd->freectxts);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(nfreectxts);
|
static DEVICE_ATTR_RO(nfreectxts);
|
||||||
|
|
||||||
@ -703,12 +704,11 @@ static ssize_t tempsense_show(struct device *device,
|
|||||||
regvals[idx] = ret;
|
regvals[idx] = ret;
|
||||||
}
|
}
|
||||||
if (idx == 8)
|
if (idx == 8)
|
||||||
ret = scnprintf(buf, PAGE_SIZE, "%d %d %02X %02X %d %d\n",
|
ret = sysfs_emit(buf, "%d %d %02X %02X %d %d\n",
|
||||||
*(signed char *)(regvals),
|
*(signed char *)(regvals),
|
||||||
*(signed char *)(regvals + 1),
|
*(signed char *)(regvals + 1), regvals[2],
|
||||||
regvals[2], regvals[3],
|
regvals[3], *(signed char *)(regvals + 5),
|
||||||
*(signed char *)(regvals + 5),
|
*(signed char *)(regvals + 7));
|
||||||
*(signed char *)(regvals + 7));
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(tempsense);
|
static DEVICE_ATTR_RO(tempsense);
|
||||||
|
@ -57,7 +57,7 @@ static ssize_t board_id_show(struct device *device,
|
|||||||
subsystem_device_id = us_ibdev->pdev->subsystem_device;
|
subsystem_device_id = us_ibdev->pdev->subsystem_device;
|
||||||
mutex_unlock(&us_ibdev->usdev_lock);
|
mutex_unlock(&us_ibdev->usdev_lock);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%hu\n", subsystem_device_id);
|
return sysfs_emit(buf, "%hu\n", subsystem_device_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
@ -132,8 +132,7 @@ iface_show(struct device *device, struct device_attribute *attr, char *buf)
|
|||||||
struct usnic_ib_dev *us_ibdev =
|
struct usnic_ib_dev *us_ibdev =
|
||||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s\n",
|
return sysfs_emit(buf, "%s\n", netdev_name(us_ibdev->netdev));
|
||||||
netdev_name(us_ibdev->netdev));
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(iface);
|
static DEVICE_ATTR_RO(iface);
|
||||||
|
|
||||||
@ -143,8 +142,7 @@ max_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
|||||||
struct usnic_ib_dev *us_ibdev =
|
struct usnic_ib_dev *us_ibdev =
|
||||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%u\n",
|
return sysfs_emit(buf, "%u\n", kref_read(&us_ibdev->vf_cnt));
|
||||||
kref_read(&us_ibdev->vf_cnt));
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(max_vf);
|
static DEVICE_ATTR_RO(max_vf);
|
||||||
|
|
||||||
@ -158,8 +156,7 @@ qp_per_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
|||||||
qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ],
|
qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ],
|
||||||
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]);
|
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE,
|
return sysfs_emit(buf, "%d\n", qp_per_vf);
|
||||||
"%d\n", qp_per_vf);
|
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(qp_per_vf);
|
static DEVICE_ATTR_RO(qp_per_vf);
|
||||||
|
|
||||||
@ -169,8 +166,8 @@ cq_per_vf_show(struct device *device, struct device_attribute *attr, char *buf)
|
|||||||
struct usnic_ib_dev *us_ibdev =
|
struct usnic_ib_dev *us_ibdev =
|
||||||
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct usnic_ib_dev, ib_dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%d\n",
|
return sysfs_emit(buf, "%d\n",
|
||||||
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ]);
|
us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ]);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(cq_per_vf);
|
static DEVICE_ATTR_RO(cq_per_vf);
|
||||||
|
|
||||||
|
@ -68,21 +68,21 @@ static int pvrdma_del_gid(const struct ib_gid_attr *attr, void **context);
|
|||||||
static ssize_t hca_type_show(struct device *device,
|
static ssize_t hca_type_show(struct device *device,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "VMW_PVRDMA-%s\n", DRV_VERSION);
|
return sysfs_emit(buf, "VMW_PVRDMA-%s\n", DRV_VERSION);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hca_type);
|
static DEVICE_ATTR_RO(hca_type);
|
||||||
|
|
||||||
static ssize_t hw_rev_show(struct device *device,
|
static ssize_t hw_rev_show(struct device *device,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "%d\n", PVRDMA_REV_ID);
|
return sysfs_emit(buf, "%d\n", PVRDMA_REV_ID);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(hw_rev);
|
static DEVICE_ATTR_RO(hw_rev);
|
||||||
|
|
||||||
static ssize_t board_id_show(struct device *device,
|
static ssize_t board_id_show(struct device *device,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
return sprintf(buf, "%d\n", PVRDMA_BOARD_ID);
|
return sysfs_emit(buf, "%d\n", PVRDMA_BOARD_ID);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(board_id);
|
static DEVICE_ATTR_RO(board_id);
|
||||||
|
|
||||||
|
@ -1042,7 +1042,7 @@ static ssize_t parent_show(struct device *device,
|
|||||||
struct rxe_dev *rxe =
|
struct rxe_dev *rxe =
|
||||||
rdma_device_to_drv_device(device, struct rxe_dev, ib_dev);
|
rdma_device_to_drv_device(device, struct rxe_dev, ib_dev);
|
||||||
|
|
||||||
return scnprintf(buf, PAGE_SIZE, "%s\n", rxe_parent_name(rxe, 1));
|
return sysfs_emit(buf, "%s\n", rxe_parent_name(rxe, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR_RO(parent);
|
static DEVICE_ATTR_RO(parent);
|
||||||
|
@ -1514,9 +1514,9 @@ static ssize_t show_mode(struct device *d, struct device_attribute *attr,
|
|||||||
struct ipoib_dev_priv *priv = ipoib_priv(dev);
|
struct ipoib_dev_priv *priv = ipoib_priv(dev);
|
||||||
|
|
||||||
if (test_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags))
|
if (test_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags))
|
||||||
return sprintf(buf, "connected\n");
|
return sysfs_emit(buf, "connected\n");
|
||||||
else
|
else
|
||||||
return sprintf(buf, "datagram\n");
|
return sysfs_emit(buf, "datagram\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t set_mode(struct device *d, struct device_attribute *attr,
|
static ssize_t set_mode(struct device *d, struct device_attribute *attr,
|
||||||
|
@ -2266,7 +2266,7 @@ static ssize_t show_pkey(struct device *dev,
|
|||||||
struct net_device *ndev = to_net_dev(dev);
|
struct net_device *ndev = to_net_dev(dev);
|
||||||
struct ipoib_dev_priv *priv = ipoib_priv(ndev);
|
struct ipoib_dev_priv *priv = ipoib_priv(ndev);
|
||||||
|
|
||||||
return sprintf(buf, "0x%04x\n", priv->pkey);
|
return sysfs_emit(buf, "0x%04x\n", priv->pkey);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(pkey, S_IRUGO, show_pkey, NULL);
|
static DEVICE_ATTR(pkey, S_IRUGO, show_pkey, NULL);
|
||||||
|
|
||||||
@ -2276,7 +2276,8 @@ static ssize_t show_umcast(struct device *dev,
|
|||||||
struct net_device *ndev = to_net_dev(dev);
|
struct net_device *ndev = to_net_dev(dev);
|
||||||
struct ipoib_dev_priv *priv = ipoib_priv(ndev);
|
struct ipoib_dev_priv *priv = ipoib_priv(ndev);
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", test_bit(IPOIB_FLAG_UMCAST, &priv->flags));
|
return sysfs_emit(buf, "%d\n",
|
||||||
|
test_bit(IPOIB_FLAG_UMCAST, &priv->flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ipoib_set_umcast(struct net_device *ndev, int umcast_val)
|
void ipoib_set_umcast(struct net_device *ndev, int umcast_val)
|
||||||
@ -2446,7 +2447,7 @@ static ssize_t dev_id_show(struct device *dev,
|
|||||||
"\"%s\" wants to know my dev_id. Should it look at dev_port instead? See Documentation/ABI/testing/sysfs-class-net for more info.\n",
|
"\"%s\" wants to know my dev_id. Should it look at dev_port instead? See Documentation/ABI/testing/sysfs-class-net for more info.\n",
|
||||||
current->comm);
|
current->comm);
|
||||||
|
|
||||||
return sprintf(buf, "%#x\n", ndev->dev_id);
|
return sysfs_emit(buf, "%#x\n", ndev->dev_id);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(dev_id);
|
static DEVICE_ATTR_RO(dev_id);
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ static ssize_t show_parent(struct device *d, struct device_attribute *attr,
|
|||||||
struct net_device *dev = to_net_dev(d);
|
struct net_device *dev = to_net_dev(d);
|
||||||
struct ipoib_dev_priv *priv = ipoib_priv(dev);
|
struct ipoib_dev_priv *priv = ipoib_priv(dev);
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", priv->parent->name);
|
return sysfs_emit(buf, "%s\n", priv->parent->name);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR(parent, S_IRUGO, show_parent, NULL);
|
static DEVICE_ATTR(parent, S_IRUGO, show_parent, NULL);
|
||||||
|
|
||||||
|
@ -52,7 +52,8 @@ static ssize_t max_reconnect_attempts_show(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct rtrs_clt *clt = container_of(dev, struct rtrs_clt, dev);
|
struct rtrs_clt *clt = container_of(dev, struct rtrs_clt, dev);
|
||||||
|
|
||||||
return sprintf(page, "%d\n", rtrs_clt_get_max_reconnect_attempts(clt));
|
return sysfs_emit(page, "%d\n",
|
||||||
|
rtrs_clt_get_max_reconnect_attempts(clt));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t max_reconnect_attempts_store(struct device *dev,
|
static ssize_t max_reconnect_attempts_store(struct device *dev,
|
||||||
@ -95,11 +96,13 @@ static ssize_t mpath_policy_show(struct device *dev,
|
|||||||
|
|
||||||
switch (clt->mp_policy) {
|
switch (clt->mp_policy) {
|
||||||
case MP_POLICY_RR:
|
case MP_POLICY_RR:
|
||||||
return sprintf(page, "round-robin (RR: %d)\n", clt->mp_policy);
|
return sysfs_emit(page, "round-robin (RR: %d)\n",
|
||||||
|
clt->mp_policy);
|
||||||
case MP_POLICY_MIN_INFLIGHT:
|
case MP_POLICY_MIN_INFLIGHT:
|
||||||
return sprintf(page, "min-inflight (MI: %d)\n", clt->mp_policy);
|
return sysfs_emit(page, "min-inflight (MI: %d)\n",
|
||||||
|
clt->mp_policy);
|
||||||
default:
|
default:
|
||||||
return sprintf(page, "Unknown (%d)\n", clt->mp_policy);
|
return sysfs_emit(page, "Unknown (%d)\n", clt->mp_policy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,9 +141,10 @@ static DEVICE_ATTR_RW(mpath_policy);
|
|||||||
static ssize_t add_path_show(struct device *dev,
|
static ssize_t add_path_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *page)
|
struct device_attribute *attr, char *page)
|
||||||
{
|
{
|
||||||
return scnprintf(page, PAGE_SIZE,
|
return sysfs_emit(
|
||||||
"Usage: echo [<source addr>@]<destination addr> > %s\n\n*addr ::= [ ip:<ipv4|ipv6> | gid:<gid> ]\n",
|
page,
|
||||||
attr->attr.name);
|
"Usage: echo [<source addr>@]<destination addr> > %s\n\n*addr ::= [ ip:<ipv4|ipv6> | gid:<gid> ]\n",
|
||||||
|
attr->attr.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t add_path_store(struct device *dev,
|
static ssize_t add_path_store(struct device *dev,
|
||||||
|
@ -2896,7 +2896,7 @@ static ssize_t show_id_ext(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "0x%016llx\n", be64_to_cpu(target->id_ext));
|
return sysfs_emit(buf, "0x%016llx\n", be64_to_cpu(target->id_ext));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_ioc_guid(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_ioc_guid(struct device *dev, struct device_attribute *attr,
|
||||||
@ -2904,7 +2904,7 @@ static ssize_t show_ioc_guid(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "0x%016llx\n", be64_to_cpu(target->ioc_guid));
|
return sysfs_emit(buf, "0x%016llx\n", be64_to_cpu(target->ioc_guid));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_service_id(struct device *dev,
|
static ssize_t show_service_id(struct device *dev,
|
||||||
@ -2914,8 +2914,8 @@ static ssize_t show_service_id(struct device *dev,
|
|||||||
|
|
||||||
if (target->using_rdma_cm)
|
if (target->using_rdma_cm)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
return sprintf(buf, "0x%016llx\n",
|
return sysfs_emit(buf, "0x%016llx\n",
|
||||||
be64_to_cpu(target->ib_cm.service_id));
|
be64_to_cpu(target->ib_cm.service_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_pkey(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_pkey(struct device *dev, struct device_attribute *attr,
|
||||||
@ -2925,7 +2925,7 @@ static ssize_t show_pkey(struct device *dev, struct device_attribute *attr,
|
|||||||
|
|
||||||
if (target->using_rdma_cm)
|
if (target->using_rdma_cm)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
return sprintf(buf, "0x%04x\n", be16_to_cpu(target->ib_cm.pkey));
|
return sysfs_emit(buf, "0x%04x\n", be16_to_cpu(target->ib_cm.pkey));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_sgid(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_sgid(struct device *dev, struct device_attribute *attr,
|
||||||
@ -2933,7 +2933,7 @@ static ssize_t show_sgid(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%pI6\n", target->sgid.raw);
|
return sysfs_emit(buf, "%pI6\n", target->sgid.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
|
||||||
@ -2944,7 +2944,7 @@ static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
|
|||||||
|
|
||||||
if (target->using_rdma_cm)
|
if (target->using_rdma_cm)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
return sprintf(buf, "%pI6\n", ch->ib_cm.path.dgid.raw);
|
return sysfs_emit(buf, "%pI6\n", ch->ib_cm.path.dgid.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_orig_dgid(struct device *dev,
|
static ssize_t show_orig_dgid(struct device *dev,
|
||||||
@ -2954,7 +2954,7 @@ static ssize_t show_orig_dgid(struct device *dev,
|
|||||||
|
|
||||||
if (target->using_rdma_cm)
|
if (target->using_rdma_cm)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
return sprintf(buf, "%pI6\n", target->ib_cm.orig_dgid.raw);
|
return sysfs_emit(buf, "%pI6\n", target->ib_cm.orig_dgid.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_req_lim(struct device *dev,
|
static ssize_t show_req_lim(struct device *dev,
|
||||||
@ -2968,7 +2968,7 @@ static ssize_t show_req_lim(struct device *dev,
|
|||||||
ch = &target->ch[i];
|
ch = &target->ch[i];
|
||||||
req_lim = min(req_lim, ch->req_lim);
|
req_lim = min(req_lim, ch->req_lim);
|
||||||
}
|
}
|
||||||
return sprintf(buf, "%d\n", req_lim);
|
return sysfs_emit(buf, "%d\n", req_lim);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_zero_req_lim(struct device *dev,
|
static ssize_t show_zero_req_lim(struct device *dev,
|
||||||
@ -2976,7 +2976,7 @@ static ssize_t show_zero_req_lim(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", target->zero_req_lim);
|
return sysfs_emit(buf, "%d\n", target->zero_req_lim);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_local_ib_port(struct device *dev,
|
static ssize_t show_local_ib_port(struct device *dev,
|
||||||
@ -2984,7 +2984,7 @@ static ssize_t show_local_ib_port(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", target->srp_host->port);
|
return sysfs_emit(buf, "%d\n", target->srp_host->port);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_local_ib_device(struct device *dev,
|
static ssize_t show_local_ib_device(struct device *dev,
|
||||||
@ -2992,8 +2992,8 @@ static ssize_t show_local_ib_device(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%s\n",
|
return sysfs_emit(buf, "%s\n",
|
||||||
dev_name(&target->srp_host->srp_dev->dev->dev));
|
dev_name(&target->srp_host->srp_dev->dev->dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_ch_count(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_ch_count(struct device *dev, struct device_attribute *attr,
|
||||||
@ -3001,7 +3001,7 @@ static ssize_t show_ch_count(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", target->ch_count);
|
return sysfs_emit(buf, "%d\n", target->ch_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_comp_vector(struct device *dev,
|
static ssize_t show_comp_vector(struct device *dev,
|
||||||
@ -3009,7 +3009,7 @@ static ssize_t show_comp_vector(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", target->comp_vector);
|
return sysfs_emit(buf, "%d\n", target->comp_vector);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_tl_retry_count(struct device *dev,
|
static ssize_t show_tl_retry_count(struct device *dev,
|
||||||
@ -3017,7 +3017,7 @@ static ssize_t show_tl_retry_count(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", target->tl_retry_count);
|
return sysfs_emit(buf, "%d\n", target->tl_retry_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_cmd_sg_entries(struct device *dev,
|
static ssize_t show_cmd_sg_entries(struct device *dev,
|
||||||
@ -3025,7 +3025,7 @@ static ssize_t show_cmd_sg_entries(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", target->cmd_sg_cnt);
|
return sysfs_emit(buf, "%u\n", target->cmd_sg_cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_allow_ext_sg(struct device *dev,
|
static ssize_t show_allow_ext_sg(struct device *dev,
|
||||||
@ -3033,7 +3033,7 @@ static ssize_t show_allow_ext_sg(struct device *dev,
|
|||||||
{
|
{
|
||||||
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
struct srp_target_port *target = host_to_target(class_to_shost(dev));
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", target->allow_ext_sg ? "true" : "false");
|
return sysfs_emit(buf, "%s\n", target->allow_ext_sg ? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(id_ext, S_IRUGO, show_id_ext, NULL);
|
static DEVICE_ATTR(id_ext, S_IRUGO, show_id_ext, NULL);
|
||||||
@ -3893,7 +3893,7 @@ static ssize_t show_ibdev(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_host *host = container_of(dev, struct srp_host, dev);
|
struct srp_host *host = container_of(dev, struct srp_host, dev);
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", dev_name(&host->srp_dev->dev->dev));
|
return sysfs_emit(buf, "%s\n", dev_name(&host->srp_dev->dev->dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(ibdev, S_IRUGO, show_ibdev, NULL);
|
static DEVICE_ATTR(ibdev, S_IRUGO, show_ibdev, NULL);
|
||||||
@ -3903,7 +3903,7 @@ static ssize_t show_port(struct device *dev, struct device_attribute *attr,
|
|||||||
{
|
{
|
||||||
struct srp_host *host = container_of(dev, struct srp_host, dev);
|
struct srp_host *host = container_of(dev, struct srp_host, dev);
|
||||||
|
|
||||||
return sprintf(buf, "%d\n", host->port);
|
return sysfs_emit(buf, "%d\n", host->port);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(port, S_IRUGO, show_port, NULL);
|
static DEVICE_ATTR(port, S_IRUGO, show_port, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user