libata and software reset
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>, Niklas Cassel <Niklas.Cassel@xxxxxxx>, Hannes Reinecke <hare@xxxxxxx>
- Subject: libata and software reset
- From: John Garry <john.garry@xxxxxxxxxx>
- Date: Tue, 18 Oct 2022 14:24:00 +0100
- Cc: "linux-ide@xxxxxxxxxxxxxxx" <linux-ide@xxxxxxxxxxxxxxx>, linux-scsi <linux-scsi@xxxxxxxxxxxxxxx>, Xiang Chen <chenxiang66@xxxxxxxxxxxxx>
- User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1
Hi guys,
In the hisi_sas driver there are times in which we need to issue an ATA
software reset. For this we use hisi_sas_softreset_ata_disk() ->
sas_execute_ata_cmd() -> sas_execute_tmf(), which uses libsas "slow
task" mechanism to issue the command.
I would like if libata provided such a function to issue a software
reset, such that we can send the command as an ATA queued command.
The problem is that often when we would want to issue this software
reset the associated ata port is frozen, like in ATA EH, and so we
cannot issue ATA queued commands - internal or normal - at that time.
Is there any way to solve this? Or I am just misunderstanding how and
when ATA queued commands can and should be used?
I assume that ata_port_operations.softreset callback requires a method
to be able to issue the softreset directly from the driver, like
ahci_softreset() -> ahci_do_softreset() -> ahci_exec_polled_cmd().
Thanks,
John
[Index of Archives]
[Linux Filesystems]
[Linux SCSI]
[Linux RAID]
[Git]
[Kernel Newbies]
[Linux Newbie]
[Security]
[Netfilter]
[Bugtraq]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Samba]
[Device Mapper]