From owner-freebsd-hackers Fri Jun 22 10:39:15 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from probity.mcc.ac.uk (probity.mcc.ac.uk [130.88.200.94]) by hub.freebsd.org (Postfix) with ESMTP id C23B637B401 for ; Fri, 22 Jun 2001 10:39:11 -0700 (PDT) (envelope-from jcm@freebsd-uk.eu.org) Received: from dogma.freebsd-uk.eu.org ([130.88.200.97] ident=root) by probity.mcc.ac.uk with esmtp (Exim 2.05 #7) id 15DUti-000HKY-00 for freebsd-hackers@freebsd.org; Fri, 22 Jun 2001 18:39:10 +0100 Received: (from jcm@localhost) by dogma.freebsd-uk.eu.org (8.11.3/8.11.1) id f5MHdAG60341 for freebsd-hackers@freebsd.org; Fri, 22 Jun 2001 18:39:10 +0100 (BST) (envelope-from jcm) Date: Fri, 22 Jun 2001 18:39:09 +0100 From: j mckitrick To: freebsd-hackers@freebsd.org Subject: how to invalidate scsi connection to driver module Message-ID: <20010622183909.A60256@dogma.freebsd-uk.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Here is the code for a scsi removable media drive. If this is to become a module, the cam/scsi attachment must be removed. I have tried calling cam_sim_free() and xpt_bus_deregister() but when the module is reloaded, the cam system assigns the next higher minor device number, and then crashes when accessed. Any ideas here how to reset cam to a state where it knows nothing about the device? /* ** Now tell the generic SCSI layer ** about our bus. */ devq = cam_simq_alloc(/*maxopenings*/1); /* XXX What about low-level detach on error? */ if (devq == NULL) return (ENXIO); vpo->sim = cam_sim_alloc(vpo_action, vpo_poll, "vpo", vpo, device_get_unit(dev), /*untagged*/1, /*tagged*/0, devq); if (vpo->sim == NULL) { cam_simq_free(devq); return (ENXIO); } if (xpt_bus_register(vpo->sim, /*bus*/0) != CAM_SUCCESS) { cam_sim_free(vpo->sim, /*free_devq*/TRUE); return (ENXIO); } /* all went ok */ vpo_cam_rescan(vpo); /* have CAM rescan the bus */ return (0); Jonathon -- Microsoft complaining about the source license used by Linux is like the event horizon calling the kettle black. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message