2 questions about SCSI initialization

Pete Zaitcev (zaitcev@redhat.com)
Thu, 21 Mar 2002 00:05:53 -0500


Hello:

I've got two questions which I cannot answer just by reading
the code, so I need to refer to the institutional memory of
the hackerdom (Doug G. - I need your memory, too :)

The context is that I got a bug with oops by someone with 68 SCSI
disks, traceable to a scsi_build_commandblocks failure, with a
subsequent oops because the error patch calls scsi_unregister_device,
and scsi_unregister_device aborts with module reference check.

Now the questions:

#1: Why does scsi_build_commandblocks() allocate memory with
GFP_ATOMIC? It's not called from an interrupt or from a swap I/O
path as far as I can see.

#2: What does if (GET_USE_COUNT(tpnt->module) != 0) do in
scsi_unregister_device? The circomstances are truly bizzare:
a) the error code is NEVER used
b) it can be called either from module unload.
I would like to kill that check.

Thanks,
-- Pete
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/