From owner-cvs-sys Sun Mar 23 17:46:18 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA17516 for cvs-sys-outgoing; Sun, 23 Mar 1997 17:46:18 -0800 (PST) Received: (from gibbs@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA17509; Sun, 23 Mar 1997 17:46:17 -0800 (PST) Date: Sun, 23 Mar 1997 17:46:17 -0800 (PST) From: "Justin T. Gibbs" Message-Id: <199703240146.RAA17509@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/scsi scsi_base.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk gibbs 97/03/23 17:46:16 Modified: sys/scsi scsi_base.c Log: free_xs must be called at splbio(). This is usually the case since the main caller is scsi_done which the controller interrupt handlers call. In the case of a non-buffer based transaction, the xs structure is freed by the process that initiated the transfer in scsi_scsi_cmd. In this case, an explicit splbio/splx pair around the call to free_xs is required. Without the splbio protection, the xs free list could be corrupted, and the type driver's start routine might run without spl protection. Submitted by: Tor Egge Obtained from: PR kern/2891 Revision Changes Path 1.47 +3 -1 src/sys/scsi/scsi_base.c