2013-07-24 18:53:27

by Tony Luck

[permalink] [raw]
Subject: scsi scan: INQUIRY result too short (5), using 36

v3.10 used to boot on this machine, linus latest doesn't. git bisect
points to this commit.

commit e73823f7a2c921dcf068d34ea03bd682498d9e42
Author: James Bottomley <[email protected]>
Date: Tue May 7 15:38:18 2013 -0700

[SCSI] libsas: implement > 16 byte CDB support

See attached console log for all the gory details.

Let me know if you need any other information about
this machine or its config that isn't easily deducible
from the console log.

-Tony


Attachments:
dmesg (111.26 kB)

2013-07-24 19:02:25

by Tony Luck

[permalink] [raw]
Subject: Re: scsi scan: INQUIRY result too short (5), using 36

Oops ... forgot final step. That commit does revert cleanly (at least
git did not grumble when I asked it to revert). The resulting kernel
builds cleanly and boots without seeing this problem.

-Tony

2013-07-24 19:43:22

by James Bottomley

[permalink] [raw]
Subject: Re: scsi scan: INQUIRY result too short (5), using 36

On Wed, 2013-07-24 at 11:53 -0700, Tony Luck wrote:
> v3.10 used to boot on this machine, linus latest doesn't. git bisect
> points to this commit.
>
> commit e73823f7a2c921dcf068d34ea03bd682498d9e42
> Author: James Bottomley <[email protected]>
> Date: Tue May 7 15:38:18 2013 -0700
>
> [SCSI] libsas: implement > 16 byte CDB support
>
> See attached console log for all the gory details.
>
> Let me know if you need any other information about
> this machine or its config that isn't easily deducible
> from the console log.

Oops, apparently no-one I cc'd at intel actually bothered to check the
patch for the isci driver. The looks to be that sci_swab32_cpy needs
multiples of four, so for commands that aren't that, it's rounding the
wrong way. Does this fix it?

James

---

diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
index 7b08215..99d2930 100644
--- a/drivers/scsi/isci/request.c
+++ b/drivers/scsi/isci/request.c
@@ -185,7 +185,7 @@ static void sci_io_request_build_ssp_command_iu(struct isci_request *ireq)
cmd_iu->_r_c = 0;

sci_swab32_cpy(&cmd_iu->cdb, task->ssp_task.cmd->cmnd,
- task->ssp_task.cmd->cmd_len / sizeof(u32));
+ (task->ssp_task.cmd->cmd_len+3) / sizeof(u32));
}

static void sci_task_request_build_ssp_task_iu(struct isci_request *ireq)

2013-07-24 20:14:34

by Tony Luck

[permalink] [raw]
Subject: Re: scsi scan: INQUIRY result too short (5), using 36

On Wed, Jul 24, 2013 at 12:43 PM, James Bottomley
<[email protected]> wrote:
> Oops, apparently no-one I cc'd at intel actually bothered to check the
> patch for the isci driver. The looks to be that sci_swab32_cpy needs
> multiples of four, so for commands that aren't that, it's rounding the
> wrong way. Does this fix it?

Yes. That fixes it.

Wrap whichever of:

Reported-by: Tony Luck <[email protected]>

and/or

Tested-by: Tony Luck <[email protected]>

around that patch and ship it!

Thanks for the fast fix.

-Tony