From: John Garry <john.garry@huawei.com>
To: Damien Le Moal <damien.lemoal@opensource.wdc.com>,
Niklas Cassel <Niklas.Cassel@wdc.com>,
Hannes Reinecke <hare@suse.de>
Cc: "linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>,
Xiang Chen <chenxiang66@hisilicon.com>
Subject: libata and software reset
Date: Tue, 18 Oct 2022 14:24:00 +0100 [thread overview]
Message-ID: <046e86d2-17e1-e85d-08a1-744ef975171c@huawei.com> (raw)
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
next reply other threads:[~2022-10-18 13:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-18 13:24 John Garry [this message]
2022-10-18 15:04 ` libata and software reset Niklas Cassel
2022-10-19 9:32 ` John Garry
2022-10-19 9:56 ` Damien Le Moal
2022-10-19 10:15 ` John Garry
2022-10-19 5:03 ` Damien Le Moal
2022-10-19 5:04 ` Damien Le Moal
2022-10-19 9:42 ` John Garry
2022-10-19 9:53 ` Damien Le Moal
2022-10-19 10:15 ` Damien Le Moal
2022-10-19 10:34 ` John Garry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=046e86d2-17e1-e85d-08a1-744ef975171c@huawei.com \
--to=john.garry@huawei.com \
--cc=Niklas.Cassel@wdc.com \
--cc=chenxiang66@hisilicon.com \
--cc=damien.lemoal@opensource.wdc.com \
--cc=hare@suse.de \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox