cvs commit: src/sys/bus/cam cam_queue.c cam_queue.h cam_sim.c cam_sim.h cam_xpt.c src/sys/bus/cam/scsi scsi_low.c src/sys/dev/disk/advansys advansys.c adwcam.c src/sys/dev/disk/aha aha.c src/sys/dev/disk/ahb ahb.c src/sys/dev/disk/aic aic.c ...

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Mar 14 17:11:19 PST 2004


dillon      2004/03/14 17:10:45 PST

DragonFly src repository

  Modified files:
    sys/bus/cam          cam_queue.c cam_queue.h cam_sim.c 
                         cam_sim.h cam_xpt.c 
    sys/bus/cam/scsi     scsi_low.c 
    sys/dev/disk/advansys advansys.c adwcam.c 
    sys/dev/disk/aha     aha.c 
    sys/dev/disk/ahb     ahb.c 
    sys/dev/disk/aic     aic.c 
    sys/dev/disk/aic7xxx ahc_eisa.c ahc_pci.c ahd_pci.c aic79xx.c 
                         aic79xx_osm.c aic7xxx.c aic7xxx_osm.c 
    sys/dev/disk/amd     amd.c 
    sys/dev/disk/ata     ata-all.c ata-disk.c atapi-all.c 
                         atapi-cam.c 
    sys/dev/disk/buslogic bt.c 
    sys/dev/disk/ccd     ccd.c 
    sys/dev/disk/fd      fd.c 
    sys/dev/disk/i386/bs bsfunc.c bsif.c 
    sys/dev/disk/isp     isp_freebsd.c isp_pci.c 
    sys/dev/disk/ispfw   ispfw.c 
    sys/dev/disk/mpt     mpt_freebsd.c 
    sys/dev/disk/ncr     ncr.c 
    sys/dev/disk/sbp     sbp.c 
    sys/dev/disk/simos   simos.c 
    sys/dev/disk/sym     sym_hipd.c 
    sys/dev/disk/trm     trm.c 
    sys/dev/disk/vpo     immio.c vpo.c vpoio.c 
    sys/dev/usbmisc/uhid uhid.c 
    sys/dev/usbmisc/ukbd ukbd.c 
    sys/dev/usbmisc/umass umass.c 
    sys/dev/usbmisc/umct umct.c 
    sys/dev/usbmisc/ums  ums.c 
  Log:
  The cam_sim structure was being deallocated unconditionally by device
  driver detach routines.  The problem with this is that part of the CAM
  bus structure may still be active (for example, with pending timeout()'s),
  and even though the bus, target, and device is freed, since the sim IS
  freed any accesses through the sim will hit 0xdeadc0de.  This case most often
  occurs with USB UMASS devices.
  
  The CAM_XPT and CAM_SIM layer has been revamped.  CAM_DEV_UNCONFIGURED is now
  accounted for in the device->refcount, and the cam_sim structure is now
  ref-counted as well.  Additionally, the cam_simq* code which handles the
  device queues has been revamped to refcount as well, so shared device queues
  (raid and multi-channel devices) are not free()'d before all references have
  gone away.
  
  scsi_low free'd its cam_sim twice.  Fixed.
  
  USB was improperly using M_NOWAIT.  All M_NOWAIT instances have been renamed
  to M_INTWAIT.
  
  Revision  Changes    Path
  1.5       +13 -4     src/sys/bus/cam/cam_queue.c
  1.3       +4 -4      src/sys/bus/cam/cam_queue.h
  1.6       +41 -7     src/sys/bus/cam/cam_sim.c
  1.4       +9 -4      src/sys/bus/cam/cam_sim.h
  1.11      +49 -42    src/sys/bus/cam/cam_xpt.c
  1.9       +7 -6      src/sys/bus/cam/scsi/scsi_low.c
  1.4       +4 -15     src/sys/dev/disk/advansys/advansys.c
  1.5       +6 -25     src/sys/dev/disk/advansys/adwcam.c
  1.6       +6 -14     src/sys/dev/disk/aha/aha.c
  1.5       +5 -19     src/sys/dev/disk/ahb/ahb.c
  1.5       +5 -16     src/sys/dev/disk/aic/aic.c
  1.4       +1 -3      src/sys/dev/disk/aic7xxx/ahc_eisa.c
  1.5       +1 -3      src/sys/dev/disk/aic7xxx/ahc_pci.c
  1.5       +1 -3      src/sys/dev/disk/aic7xxx/ahd_pci.c
  1.5       +11 -55    src/sys/dev/disk/aic7xxx/aic79xx.c
  1.4       +7 -19     src/sys/dev/disk/aic7xxx/aic79xx_osm.c
  1.5       +10 -48    src/sys/dev/disk/aic7xxx/aic7xxx.c
  1.4       +10 -22    src/sys/dev/disk/aic7xxx/aic7xxx_osm.c
  1.4       +3 -3      src/sys/dev/disk/amd/amd.c
  1.14      +11 -4     src/sys/dev/disk/ata/ata-all.c
  1.14      +3 -0      src/sys/dev/disk/ata/ata-disk.c
  1.10      +3 -11     src/sys/dev/disk/ata/atapi-all.c
  1.6       +6 -8      src/sys/dev/disk/ata/atapi-cam.c
  1.6       +5 -9      src/sys/dev/disk/buslogic/bt.c
  1.14      +4 -14     src/sys/dev/disk/ccd/ccd.c
  1.14      +3 -8      src/sys/dev/disk/fd/fd.c
  1.6       +1 -9      src/sys/dev/disk/i386/bs/bsfunc.c
  1.6       +4 -9      src/sys/dev/disk/i386/bs/bsif.c
  1.8       +8 -13     src/sys/dev/disk/isp/isp_freebsd.c
  1.4       +2 -12     src/sys/dev/disk/isp/isp_pci.c
  1.5       +1 -4      src/sys/dev/disk/ispfw/ispfw.c
  1.4       +5 -17     src/sys/dev/disk/mpt/mpt_freebsd.c
  1.7       +6 -17     src/sys/dev/disk/ncr/ncr.c
  1.10      +15 -32    src/sys/dev/disk/sbp/sbp.c
  1.5       +3 -3      src/sys/dev/disk/simos/simos.c
  1.6       +6 -7      src/sys/dev/disk/sym/sym_hipd.c
  1.5       +3 -3      src/sys/dev/disk/trm/trm.c
  1.5       +2 -5      src/sys/dev/disk/vpo/immio.c
  1.4       +2 -2      src/sys/dev/disk/vpo/vpo.c
  1.5       +2 -5      src/sys/dev/disk/vpo/vpoio.c
  1.10      +3 -7      src/sys/dev/usbmisc/uhid/uhid.c
  1.7       +5 -8      src/sys/dev/usbmisc/ukbd/ukbd.c
  1.9       +13 -6     src/sys/dev/usbmisc/umass/umass.c
  1.2       +1 -3      src/sys/dev/usbmisc/umct/umct.c
  1.9       +2 -12     src/sys/dev/usbmisc/ums/ums.c


http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_queue.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_queue.h.diff?r1=1.2&r2=1.3&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_sim.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_sim.h.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_xpt.c.diff?r1=1.10&r2=1.11&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/scsi/scsi_low.c.diff?r1=1.8&r2=1.9&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/advansys/advansys.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/advansys/adwcam.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aha/aha.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ahb/ahb.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic/aic.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/ahc_eisa.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/ahc_pci.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/ahd_pci.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/aic79xx.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/aic79xx_osm.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/aic7xxx.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/aic7xxx/aic7xxx_osm.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/amd/amd.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/ata-all.c.diff?r1=1.13&r2=1.14&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/ata-disk.c.diff?r1=1.13&r2=1.14&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/atapi-all.c.diff?r1=1.9&r2=1.10&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/atapi-cam.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/buslogic/bt.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ccd/ccd.c.diff?r1=1.13&r2=1.14&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/fd/fd.c.diff?r1=1.13&r2=1.14&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/i386/bs/bsfunc.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/i386/bs/bsif.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/isp/isp_freebsd.c.diff?r1=1.7&r2=1.8&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/isp/isp_pci.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ispfw/ispfw.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/mpt/mpt_freebsd.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ncr/ncr.c.diff?r1=1.6&r2=1.7&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/sbp/sbp.c.diff?r1=1.9&r2=1.10&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/simos/simos.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/sym/sym_hipd.c.diff?r1=1.5&r2=1.6&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/trm/trm.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/vpo/immio.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/vpo/vpo.c.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/vpo/vpoio.c.diff?r1=1.4&r2=1.5&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/usbmisc/uhid/uhid.c.diff?r1=1.9&r2=1.10&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/usbmisc/ukbd/ukbd.c.diff?r1=1.6&r2=1.7&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/usbmisc/umass/umass.c.diff?r1=1.8&r2=1.9&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/usbmisc/umct/umct.c.diff?r1=1.1&r2=1.2&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/usbmisc/ums/ums.c.diff?r1=1.8&r2=1.9&f=h





More information about the Commits mailing list