Loading Documentation/scsi/scsi_mid_low_api.txt +5 −26 Original line number Diff line number Diff line Loading @@ -375,7 +375,6 @@ Summary: scsi_add_device - creates new scsi device (lu) instance scsi_add_host - perform sysfs registration and set up transport class scsi_adjust_queue_depth - change the queue depth on a SCSI device scsi_assign_lock - replace default host_lock with given lock scsi_bios_ptable - return copy of block device's partition table scsi_block_requests - prevent further commands being queued to given host scsi_deactivate_tcq - turn off tag command queueing Loading Loading @@ -488,20 +487,6 @@ void scsi_adjust_queue_depth(struct scsi_device * sdev, int tagged, int tags) /** * scsi_assign_lock - replace default host_lock with given lock * @shost: a pointer to a scsi host instance * @lock: pointer to lock to replace host_lock for this host * * Returns nothing * * Might block: no * * Defined in: include/scsi/scsi_host.h . **/ void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) /** * scsi_bios_ptable - return copy of block device's partition table * @dev: pointer to block device Loading Loading @@ -1366,17 +1351,11 @@ Locks Each struct Scsi_Host instance has a spin_lock called struct Scsi_Host::default_lock which is initialized in scsi_host_alloc() [found in hosts.c]. Within the same function the struct Scsi_Host::host_lock pointer is initialized to point at default_lock with the scsi_assign_lock() function. Thereafter lock and unlock operations performed by the mid level use the struct Scsi_Host::host_lock pointer. LLDs can override the use of struct Scsi_Host::default_lock by using scsi_assign_lock(). The earliest opportunity to do this would be in the detect() function after it has invoked scsi_register(). It could be replaced by a coarser grain lock (e.g. per driver) or a lock of equal granularity (i.e. per host). Using finer grain locks (e.g. per SCSI device) may be possible by juggling locks in queuecommand(). is initialized to point at default_lock. Thereafter lock and unlock operations performed by the mid level use the struct Scsi_Host::host_lock pointer. Previously drivers could override the host_lock pointer but this is not allowed anymore. Autosense ========= Loading drivers/scsi/hosts.c +2 −2 Original line number Diff line number Diff line Loading @@ -301,8 +301,8 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize) if (!shost) return NULL; spin_lock_init(&shost->default_lock); scsi_assign_lock(shost, &shost->default_lock); shost->host_lock = &shost->default_lock; spin_lock_init(shost->host_lock); shost->shost_state = SHOST_CREATED; INIT_LIST_HEAD(&shost->__devices); INIT_LIST_HEAD(&shost->__targets); Loading include/scsi/scsi_host.h +0 −5 Original line number Diff line number Diff line Loading @@ -651,11 +651,6 @@ extern const char *scsi_host_state_name(enum scsi_host_state); extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *); static inline void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) { shost->host_lock = lock; } static inline struct device *scsi_get_device(struct Scsi_Host *shost) { return shost->shost_gendev.parent; Loading Loading
Documentation/scsi/scsi_mid_low_api.txt +5 −26 Original line number Diff line number Diff line Loading @@ -375,7 +375,6 @@ Summary: scsi_add_device - creates new scsi device (lu) instance scsi_add_host - perform sysfs registration and set up transport class scsi_adjust_queue_depth - change the queue depth on a SCSI device scsi_assign_lock - replace default host_lock with given lock scsi_bios_ptable - return copy of block device's partition table scsi_block_requests - prevent further commands being queued to given host scsi_deactivate_tcq - turn off tag command queueing Loading Loading @@ -488,20 +487,6 @@ void scsi_adjust_queue_depth(struct scsi_device * sdev, int tagged, int tags) /** * scsi_assign_lock - replace default host_lock with given lock * @shost: a pointer to a scsi host instance * @lock: pointer to lock to replace host_lock for this host * * Returns nothing * * Might block: no * * Defined in: include/scsi/scsi_host.h . **/ void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) /** * scsi_bios_ptable - return copy of block device's partition table * @dev: pointer to block device Loading Loading @@ -1366,17 +1351,11 @@ Locks Each struct Scsi_Host instance has a spin_lock called struct Scsi_Host::default_lock which is initialized in scsi_host_alloc() [found in hosts.c]. Within the same function the struct Scsi_Host::host_lock pointer is initialized to point at default_lock with the scsi_assign_lock() function. Thereafter lock and unlock operations performed by the mid level use the struct Scsi_Host::host_lock pointer. LLDs can override the use of struct Scsi_Host::default_lock by using scsi_assign_lock(). The earliest opportunity to do this would be in the detect() function after it has invoked scsi_register(). It could be replaced by a coarser grain lock (e.g. per driver) or a lock of equal granularity (i.e. per host). Using finer grain locks (e.g. per SCSI device) may be possible by juggling locks in queuecommand(). is initialized to point at default_lock. Thereafter lock and unlock operations performed by the mid level use the struct Scsi_Host::host_lock pointer. Previously drivers could override the host_lock pointer but this is not allowed anymore. Autosense ========= Loading
drivers/scsi/hosts.c +2 −2 Original line number Diff line number Diff line Loading @@ -301,8 +301,8 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize) if (!shost) return NULL; spin_lock_init(&shost->default_lock); scsi_assign_lock(shost, &shost->default_lock); shost->host_lock = &shost->default_lock; spin_lock_init(shost->host_lock); shost->shost_state = SHOST_CREATED; INIT_LIST_HEAD(&shost->__devices); INIT_LIST_HEAD(&shost->__targets); Loading
include/scsi/scsi_host.h +0 −5 Original line number Diff line number Diff line Loading @@ -651,11 +651,6 @@ extern const char *scsi_host_state_name(enum scsi_host_state); extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *); static inline void scsi_assign_lock(struct Scsi_Host *shost, spinlock_t *lock) { shost->host_lock = lock; } static inline struct device *scsi_get_device(struct Scsi_Host *shost) { return shost->shost_gendev.parent; Loading