Re: [PATCH] scsi: isci: initialize shost fully before calling scsi_add_host()

From: John Garry
Date: Wed Jan 16 2019 - 09:45:04 EST


On 16/01/2019 02:54, Martin K. Petersen wrote:

Hi John,


Hi Martin,

So in this case I think that accessor functions are actually better
because they allow us to print a big fat warning when you twiddle
something you shouldn't post-initialization. So that's something I think
we could--and should--improve.

Sure, this is an alternative, but I would rather make it obvious when
these parameters should be set so that this would not be required.

I would like to have a mechanism in place that warns if you twiddle
things that break assumptions made at host registration time.

Yes, something more robust would be good.

That's not
a scenario the old registration interface was designed to handle.

I am not sure I agree with your assertion that setting these masks in
the struct prior to scsi_add_host() makes this ordering requirement much
more obvious.
It is not like you are passing in a list of parameters and
then receiving a separately instantiated immutable scsi_host object. You
are performing an operation on something you already have and own.

That's why I commented that the current intersection between
compile-time static host template, dynamically discovered
pre-registration scsi_host parameters, and the registered runtime
scsi_host struct is somewhat messy.

Btw. I have no attachment to the prot wrappers whatsoever. The reason
they exist is that the SCSI integrity support was optional. And
therefore we had stub functions so things could be compiled without any
of the integrity fields being present in the various SCSI structs.

I never noticed stubs for setting/getting Scsi_host.prot_{capabilities,guard_type}

So I
don't have any problem killing the wrappers except they may actually be
handy for regressions like this one where you could #error if the driver
writer violates the ordering requirement.


We set many Scsi_host parameters without such safeguarding, and I don't know what's special about these protection-related members.

Thanks,
John