From owner-freebsd-scsi Thu Nov 16 09:42:37 1995 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id JAA01297 for freebsd-scsi-outgoing; Thu, 16 Nov 1995 09:42:37 -0800 Received: from localhost.cdrom.com (localhost.cdrom.com [127.0.0.1]) by freefall.freebsd.org (8.6.12/8.6.6) with SMTP id JAA01290 ; Thu, 16 Nov 1995 09:42:35 -0800 Message-Id: <199511161742.JAA01290@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: Host localhost.cdrom.com didn't use HELO protocol To: joerg_wunsch@interface-business.de (Joerg Wunsch) cc: freebsd-scsi@freebsd.org Subject: Re: SCSI reprobe In-reply-to: Your message of "Thu, 16 Nov 1995 15:21:50 +0100." <199511161421.PAA00329@ida.interface-business.de> Date: Thu, 16 Nov 1995 09:42:34 -0800 From: "Justin T. Gibbs" Sender: owner-freebsd-scsi@freebsd.org Precedence: bulk >This basically fixes the problem, but opens up another can of worms >whenever the reprobe actually finds a new device, and wants to wire >this one into the system. In my case, the reprobe found a new tape >drive, and these lines in st.c: > >errval >stattach(struct scsi_link *sc_link) >{ >... > if (st_mode_sense(unit, SCSI_NOSLEEP | SCSI_NOMASK | SCSI_SILENT, > ^^^^^^^^^^^^^^^^^^^^^^^^^^ >...caused it to hang again. I assume this is a basic problem also >inside the other device-specific driver, and gave up by now. Perhaps >there's a better solution to base the decision of polled >vs. intterupt-controlled mode on? Well, its even worse than this. The ahc driver, since it uses the eisa/pc interrupt registration routines, has access to its interrupt even during the first attach phase. If you look closely at the code, it masks its interrupt (or in the case of the Eisa probe doesn't turn it on) until after the attach because it knows the SCSI code is going to send the stupid NOSLEEP, NOMASK flags. The only time that the NOSLEEP flag is of any interrest is for the areas of the driver that may use tsleep during an interrupt, but even then, the SCSI code only guesses if interrupts are disabled or not. The NOMASK flag is bogus. I'll experiment with ignoring, and always relying on interrupts, when I get some time. >-- >J"org Wunsch Unix support engineer >joerg_wunsch@interface-business.de > [private: http://www.sax.de/~joerg/] -- Justin T. Gibbs =========================================== FreeBSD: Turning PCs into workstations ===========================================