mirror of
https://github.com/torvalds/linux.git
synced 2025-12-01 07:26:02 +07:00
scsi: core: Add counters for New Media and Power On/Reset UNIT ATTENTIONs
The purpose of the counters is to enable all ULDs attached to a device to find out that a New Media or/and Power On/Reset Unit Attentions has/have been set, even if another ULD catches the Unit Attention as response to a SCSI command. The ULDs can read the counters and see if the values have changed from the previous check. Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi> Link: https://lore.kernel.org/r/20250120194925.44432-3-Kai.Makisara@kolumbus.fi Reviewed-by: John Meneghini <jmeneghi@redhat.com> Tested-by: John Meneghini <jmeneghi@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
7081dc75df
commit
a5d518cd4e
@@ -547,6 +547,18 @@ enum scsi_disposition scsi_check_sense(struct scsi_cmnd *scmd)
|
||||
|
||||
scsi_report_sense(sdev, &sshdr);
|
||||
|
||||
if (sshdr.sense_key == UNIT_ATTENTION) {
|
||||
/*
|
||||
* Increment the counters for Power on/Reset or New Media so
|
||||
* that all ULDs interested in these can see that those have
|
||||
* happened, even if someone else gets the sense data.
|
||||
*/
|
||||
if (sshdr.asc == 0x28)
|
||||
scmd->device->ua_new_media_ctr++;
|
||||
else if (sshdr.asc == 0x29)
|
||||
scmd->device->ua_por_ctr++;
|
||||
}
|
||||
|
||||
if (scsi_sense_is_deferred(&sshdr))
|
||||
return NEEDS_RETRY;
|
||||
|
||||
|
||||
@@ -247,6 +247,9 @@ struct scsi_device {
|
||||
unsigned int queue_stopped; /* request queue is quiesced */
|
||||
bool offline_already; /* Device offline message logged */
|
||||
|
||||
unsigned int ua_new_media_ctr; /* Counter for New Media UNIT ATTENTIONs */
|
||||
unsigned int ua_por_ctr; /* Counter for Power On / Reset UAs */
|
||||
|
||||
atomic_t disk_events_disable_depth; /* disable depth for disk events */
|
||||
|
||||
DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */
|
||||
|
||||
Reference in New Issue
Block a user