Re: [PATCH] SCSI: export sas_hash_addr()

James Bottomley
2007-09-30T16:56:13Z

On Thu, 2007-09-27 at 21:01 -0400, Jeff Garzik wrote:
> James Bottomley wrote:
> > On Wed, 2007-09-26 at 03:35 -0400, Jeff Garzik wrote:
> >> sas_hash_addr() is the spec-defined standard hashing function. Make it
> >> available to drivers that need it.
> >
> > I'm not opposed in principle to exporting this, but I have a hard time
> > understanding why a driver would need it.
> >
> > The hashed address is a property of the constructed SAS frames, which is
> > done in libsas. The driver shouldn't really be calculating its own hash
> > instead of using what libsas provides ... or is this because the hashed
> > self address isn't calculated by the HBA so it needs to be programmed or
> > something?
>
> It is needed to build the SSP frame header.
>
> If there is common code that does that, I will definitely use that, but
> do not see any such code.

The way you're supposed to build the frame header is in
lldd_execute_task(). Here, if you need the hashed address of the
destination, you copy it out of the domain_device (dev field of struct
sas_task).

James