Re: [PATCH v2 2/3] acornscsi: remove tagged queuing vestiges

From: John Garry
Date: Thu Sep 30 2021 - 04:15:04 EST


On 30/09/2021 08:21, Arnd Bergmann wrote:
On Wed, Sep 15, 2021 at 11:16 AM John Garry<john.garry@xxxxxxxxxx> wrote:
From: Hannes Reinecke<hare@xxxxxxx>

The acornscsi driver has a config option to enable tagged queuing,
but this option gets disabled in the driver itself with the comment
'needs to be debugged'.
As this is a_really_ old driver I doubt anyone will be wanting to
invest time here, so remove the tagged queue vestiges and make
our live easier.

Signed-off-by: Hannes Reinecke<hare@xxxxxxx>
jpg: Use scsi_cmd_to_rq()
Signed-off-by: John Garry<john.garry@xxxxxxxxxx>
A few thousand randconfig builds later, I actually came across
building this driver.

@@ -1821,7 +1776,7 @@ int acornscsi_reconnect_finish(AS_Host *host)
host->scsi.disconnectable = 0;
if (host->SCpnt->device->id == host->scsi.reconnected.target &&
host->SCpnt->device->lun == host->scsi.reconnected.lun &&
- host->SCpnt->tag == host->scsi.reconnected.tag) {
+ scsi_cmd_to_tag(host->SCpnt) == host->scsi.reconnected.tag) {
#if (DEBUG & (DEBUG_QUEUES|DEBUG_DISCON))
DBG(host->SCpnt, printk("scsi%d.%c: reconnected",
host->host->host_no, acornscsi_target(host)));
drivers/scsi/arm/acornscsi.c: In function 'acornscsi_reconnect_finish':
drivers/scsi/arm/acornscsi.c:1779:6: error: implicit declaration of
function 'scsi_cmd_to_tag'; did you mean 'scsi_cmd_to_rq'?
[-Werror=implicit-function-declaration]
scsi_cmd_to_tag(host->SCpnt) == host->scsi.reconnected.tag) {
^~~~~~~~~~~~~~~
scsi_cmd_to_rq

I have no idea what this is meant to do instead, but scsi_cmd_to_tag()
does not appear to be defined in any kernel I can find.

Hannes added new function scsi_cmd_to_tag() in v1 series, but I removed it when I reposted the v2 series. But then missed this reference.

I think the build fix should be as follows:

--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -1776,7 +1776,7 @@ int acornscsi_reconnect_finish(AS_Host *host)
host->scsi.disconnectable = 0;
if (host->SCpnt->device->id == host->scsi.reconnected.target &&
host->SCpnt->device->lun == host->scsi.reconnected.lun &&
- scsi_cmd_to_tag(host->SCpnt) == host->scsi.reconnected.tag) {
+ scsi_cmd_to_rq(host->SCpnt)->tag == host->scsi.reconnected.tag) {

Let me know if you want us to post a patch for this.

Thanks,
John