This gem is in scsi_scan.c in the documentation of that function's first argument. "need not be a scsi host" should read "it damn well better be a scsi host" otherwise that function will crash and burn! I'm trying to work out why the function: starget_for_each_device() in scsi.c does _not_ use that collection right in front of it (i.e. scsi_target::devices). Instead, it step up to the host level, and iterates over all devices (LUs) on that host and only calls the given function for those devices that match the channel and target numbers. That is bizarrely wasteful if scsi_target::devices could be iterated over instead. Anyone know why this is? Doug Gilbert