Commit 6f09eae3 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Jens Axboe

ata: expose ncq_enable_prio sysfs attribute only on NCQ capable hosts

There is no point in exposing ncq_enable_prio sysfs attribute for
devices on PATA and non-NCQ capable SATA hosts so:

* remove dev_attr_ncq_prio_enable from ata_common_sdev_attrs[]

* add ata_ncq_sdev_attrs[]

* update ATA_NCQ_SHT() macro to use ata_ncq_sdev_attrs[]
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 3e1ee734
...@@ -463,11 +463,17 @@ EXPORT_SYMBOL_GPL(dev_attr_sw_activity); ...@@ -463,11 +463,17 @@ EXPORT_SYMBOL_GPL(dev_attr_sw_activity);
struct device_attribute *ata_common_sdev_attrs[] = { struct device_attribute *ata_common_sdev_attrs[] = {
&dev_attr_unload_heads, &dev_attr_unload_heads,
&dev_attr_ncq_prio_enable,
NULL NULL
}; };
EXPORT_SYMBOL_GPL(ata_common_sdev_attrs); EXPORT_SYMBOL_GPL(ata_common_sdev_attrs);
struct device_attribute *ata_ncq_sdev_attrs[] = {
&dev_attr_unload_heads,
&dev_attr_ncq_prio_enable,
NULL
};
EXPORT_SYMBOL_GPL(ata_ncq_sdev_attrs);
/** /**
* ata_std_bios_param - generic bios head/sector/cylinder calculator used by sd. * ata_std_bios_param - generic bios head/sector/cylinder calculator used by sd.
* @sdev: SCSI device for which BIOS geometry is to be determined * @sdev: SCSI device for which BIOS geometry is to be determined
......
...@@ -1334,6 +1334,7 @@ extern int ata_link_nr_enabled(struct ata_link *link); ...@@ -1334,6 +1334,7 @@ extern int ata_link_nr_enabled(struct ata_link *link);
extern const struct ata_port_operations ata_base_port_ops; extern const struct ata_port_operations ata_base_port_ops;
extern const struct ata_port_operations sata_port_ops; extern const struct ata_port_operations sata_port_ops;
extern struct device_attribute *ata_common_sdev_attrs[]; extern struct device_attribute *ata_common_sdev_attrs[];
extern struct device_attribute *ata_ncq_sdev_attrs[];
/* /*
* All sht initializers (BASE, PIO, BMDMA, NCQ) must be instantiated * All sht initializers (BASE, PIO, BMDMA, NCQ) must be instantiated
...@@ -1341,7 +1342,7 @@ extern struct device_attribute *ata_common_sdev_attrs[]; ...@@ -1341,7 +1342,7 @@ extern struct device_attribute *ata_common_sdev_attrs[];
* edge driver's module reference, otherwise the driver can be unloaded * edge driver's module reference, otherwise the driver can be unloaded
* even if the scsi_device is being accessed. * even if the scsi_device is being accessed.
*/ */
#define ATA_BASE_SHT(drv_name) \ #define __ATA_BASE_SHT(drv_name) \
.module = THIS_MODULE, \ .module = THIS_MODULE, \
.name = drv_name, \ .name = drv_name, \
.ioctl = ata_scsi_ioctl, \ .ioctl = ata_scsi_ioctl, \
...@@ -1355,11 +1356,15 @@ extern struct device_attribute *ata_common_sdev_attrs[]; ...@@ -1355,11 +1356,15 @@ extern struct device_attribute *ata_common_sdev_attrs[];
.slave_configure = ata_scsi_slave_config, \ .slave_configure = ata_scsi_slave_config, \
.slave_destroy = ata_scsi_slave_destroy, \ .slave_destroy = ata_scsi_slave_destroy, \
.bios_param = ata_std_bios_param, \ .bios_param = ata_std_bios_param, \
.unlock_native_capacity = ata_scsi_unlock_native_capacity, \ .unlock_native_capacity = ata_scsi_unlock_native_capacity
#define ATA_BASE_SHT(drv_name) \
__ATA_BASE_SHT(drv_name), \
.sdev_attrs = ata_common_sdev_attrs .sdev_attrs = ata_common_sdev_attrs
#define ATA_NCQ_SHT(drv_name) \ #define ATA_NCQ_SHT(drv_name) \
ATA_BASE_SHT(drv_name), \ __ATA_BASE_SHT(drv_name), \
.sdev_attrs = ata_ncq_sdev_attrs, \
.change_queue_depth = ata_scsi_change_queue_depth .change_queue_depth = ata_scsi_change_queue_depth
/* /*
......
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