On Thu, Feb 01, 2018 at 06:15:46PM +0200, Stanislav Nijnikov wrote:
> +#define UFS_LUN_ATTRIBUTE(_name, _uname)                                     
>  \
> +static ssize_t _name##_attribute_show(struct device *dev,                    
>  \
> +     struct device_attribute *attr, char *buf)                             \
> +{                                                                            
>  \
> +     u32 value;                                                            \
> +     struct scsi_device *sdev = to_scsi_device(dev);                       \
> +     struct ufs_hba *hba = shost_priv(sdev->host);                         \
> +     u8 lun = ufshcd_scsi_to_upiu_lun(sdev->lun);                          \
> +     if (ufshcd_query_attr(hba, UPIU_QUERY_OPCODE_READ_ATTR,               \
> +             QUERY_ATTR_IDN##_uname, lun, 0, &value))                      \
> +             return -EINVAL;                                               \
> +     return sprintf(buf, "0x%08X\n", value);                               \
> +}                                                                            
>  \
> +static DEVICE_ATTR_RO(_name##_attribute)
> +
> +UFS_LUN_ATTRIBUTE(dyn_cap_needed, _DYN_CAP_NEEDED);

Why create a macro when you only have one instance of its use?

thanks,

greg k-h

Reply via email to