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>