]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 276831:
authorken <ken@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 3 Feb 2015 21:54:59 +0000 (21:54 +0000)
committerken <ken@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 3 Feb 2015 21:54:59 +0000 (21:54 +0000)
commit03b5cfbf65ca72fca1be2a906ac1d398cf3a593c
tree42cbf578613ac6b3eba24e3d32494a39adab61f0
parente37932bb2a9e028ee42a52528fb098d851cc9f7e
MFC 276831:

  r276831 | ken | 2015-01-08 09:27:56 -0700 (Thu, 08 Jan 2015) | 30 lines

  Fix a bug in the CAM SCSI probe code that caused changes in inquiry
  data to go undetected.

  The probe code does an MD5 checksum of the inquiry data (and page
  0x80 serial number if available) before doing a reprobe of an
  existing device, and then compares a checksum after the probe to
  see whether the device has changed.

  This check was broken in January, 2000 by change 56146 when the extended
  inquiry probe code was added.

  In the extended inquiry probe case, it was calculating the checksum
  a second time.  The second time it included the updated inquiry
  data from the short inquiry probe (first 36 bytes).  So it wouldn't
  catch cases where the vendor, product, revision, etc. changed.

  This change will have the effect that when a device's inquiry data is
  updated and a rescan is issued, it will disappear and then reappear.
  This is the appropriate action, because if the inquiry data or serial
  number changes, it is either a different device or the device
  configuration may have changed significantly.  (e.g. with updated
  firmware.)

  scsi_xpt.c: Don't calculate the initial MD5 checksum on
   standard inquiry data and the page 0x80 serial
   number if we have already calculated it.

Sponsored by: Spectra Logic

git-svn-id: svn://svn.freebsd.org/base/stable/10@278169 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/scsi/scsi_xpt.c