Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Apr 1997 22:25:18 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        freebsd-scsi@freebsd.org, freebsd-bugs@freebsd.org
Subject:   Panic in sys/scsi/scsiconf.c - Please Help...
Message-ID:  <XFMail.970423223607.Shimon@i-Connect.Net>

next in thread | raw e-mail | index | archive | help
I think I posted this before, but now I am stuck, and with no answers so
far.  So here it is again:

I am calling scsi_attachdevs() from a device driver and getting PANIC:

extend_set: entry 1 already has storage
panic:  scsi-attachdevs: malloc.

Upon close examination one sees the lines:

if(scbus == 0 || scbus->sc_link == 0
           || extend_set(scbusses, scsibus, scbus) == 0) {
                panic("scsi_attachdevs: malloc");
...

When one examins the extend_set erorr message one sees quickly that it
returns zero (NULL) when it discovers that the storage being extended is
already extended.

I am a bit confused abouth this as if storage is already allocated, why
would extend_set try to extend it before checking?  Also, why would it
return ZERO if there IS storage.

I am a bit confused.

BTW, this happens only on the 176th device on the SCSI bus, so it is a bit
difficult to see on most systems.

I have disabled the return 0 in extend_set for now, but really need someone
who understands this code to tell me which is the proper way of handling
it.

Thanx, Simon

us->sc_link == 0
           || extend_set(scbusses, scsibus, scbus) == 0) {
                panic("scsi_attachdevs: malloc");
...

When one examins the extend_set erorr message one sees quickly that it
returns zero (NULL) when 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970423223607.Shimon>