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: Christoph Hellwig <hch@lst.de> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
3e1ee734ab
commit
6f09eae3b5
@@ -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);
|
|||||||
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[];
|
|||||||
* 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[];
|
|||||||
.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
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user