<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/cam, branch release/4.9.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F4.9.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F4.9.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2003-10-21T22:26:11Z</updated>
<entry>
<title>MFC rev. 1.86:</title>
<updated>2003-10-21T22:26:11Z</updated>
<author>
<name>Thomas Quinot</name>
<email>thomas@FreeBSD.org</email>
</author>
<published>2003-10-21T22:26:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a13293f19f7400c87ee08b43b4032405b13cb843'/>
<id>urn:sha1:a13293f19f7400c87ee08b43b4032405b13cb843</id>
<content type='text'>
(cdcleanup,cdsysctlinit): Defend against calling sysctl_ctx_free on an
 uninitialized sysctl_ctx.

Approved by:	re (murray)
</content>
</entry>
<entry>
<title>MFC rev. 1.160:</title>
<updated>2003-10-21T22:18:19Z</updated>
<author>
<name>Thomas Quinot</name>
<email>thomas@FreeBSD.org</email>
</author>
<published>2003-10-21T22:18:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c35dd190545ce061a664b91f96e6ddae494f20d0'/>
<id>urn:sha1:c35dd190545ce061a664b91f96e6ddae494f20d0</id>
<content type='text'>
(dacleanup, dasysctlinit): Defend against calling sysctl_ctx_free on
 an uninitialized sysctl_ctx.

Approved by:	re (murray)
</content>
</entry>
<entry>
<title>MFC:  Move dynamic sysctl(8) variable creation for the cd(4) and da(4)</title>
<updated>2003-09-10T00:40:40Z</updated>
<author>
<name>Kenneth D. Merry</name>
<email>ken@FreeBSD.org</email>
</author>
<published>2003-09-10T00:40:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7606d9e6af4d9639029a58d4bc8e78bac8f65573'/>
<id>urn:sha1:7606d9e6af4d9639029a58d4bc8e78bac8f65573</id>
<content type='text'>
drivers out of cdregister() and daregister(), which are run from interrupt
context.

Files/revisions merged:

scsi_da.c:		1.157, 1.158
scsi_cd.c:		1.81
subr_taskqueue.c:	1.17
taskqueue.h:		1.8
cd.4:			1.33
da.4:			1.42
cd.9:			1.18
not merged:		taskqueue.9 rev 1.7, 1.8 (not in RELENG_4)

This code is necessarily a little bit different than the version committed
to -current, mainly in the area of mutexes.  (Which become splfoo() in
-stable.)

The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.  (And causes a panic for people
running with INVARIANTS turned on.)

The eventual fix for this issue will involve moving the CAM probe process
inside a kernel thread.  For now, though, I have fixed the issue by moving
dynamic sysctl variable creation for these two drivers to a task queue
running in a kernel thread.

The existing task queue in -stable (taskqueue_swi) runs in software interrupt
handlers, which wouldn't fix the problem at hand.  So I have created a new
task queue, taskqueue_thread, that runs inside a kernel thread.

scsi_cd.c:	Remove sysctl variable creation code from cdregister(), and
		move it to a new function, cdsysctlinit().  Queue
		cdsysctlinit() to the taskqueue_thread taskqueue once we
		have fully registered the cd(4) driver instance.

scsi_da.c:	Remove sysctl variable creation code from daregister(), and
		move it to move it to a new function, dasysctlinit().
		Queue dasysctlinit() to the taskqueue_thread taskqueue once
		we have fully registered the da(4) instance.

taskqueue.h:	Declare the new taskqueue_thread taskqueue, update some
		comments.

subr_taskqueue.c:
		Create the new kernel thread taskqueue.

cd.4:		Update the cd(4) man page to talk about the minimum command
		size sysctl/loader tunable.  Also note that the changer
		variables are available as loader tunables as well.

da.4:		Update the da(4) man page to cover the retry_count,
		default_timeout and minimum_cmd_size sysctl variables/loader
		tunables.  Remove references to /dev/r???, they aren't used
		any longer.

cd.9:		Update the cd(9) man page to describe the CD_Q_10_BYTE_ONLY
		quirk.

Approved by:	re (scottl, murray)
</content>
</entry>
<entry>
<title>More vm_offset_t -&gt; vm_paddr_t conversions in kernel dump related code.</title>
<updated>2003-08-31T00:16:28Z</updated>
<author>
<name>Luoqi Chen</name>
<email>luoqi@FreeBSD.org</email>
</author>
<published>2003-08-31T00:16:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=99915acc7d68da75de2439d76036420a0c3cd29c'/>
<id>urn:sha1:99915acc7d68da75de2439d76036420a0c3cd29c</id>
<content type='text'>
This is functionally a no-op. If you have 4G or more memory, most likely
you will still have problem with dumping since PCI device windows are
not currently excluded.

Approved by:	re
</content>
</entry>
<entry>
<title>Sort quirks.  MFC IntelligentStick quirk.  At this point, all da(4) quirks</title>
<updated>2003-08-25T18:28:28Z</updated>
<author>
<name>Nate Lawson</name>
<email>njl@FreeBSD.org</email>
</author>
<published>2003-08-25T18:28:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=08a80c797e2e54d63f7c5154858b9dc6bb1f9137'/>
<id>urn:sha1:08a80c797e2e54d63f7c5154858b9dc6bb1f9137</id>
<content type='text'>
are the same for -current and -stable.

Also, temporarily re-enable all USB floppy quirks for 4.9R.  Although I
received no input whether or not these devices work without the quirks,
installs often depend on USB floppies and it is unacceptable for them to
be broken for a release.  They will be disabled again after the release.
</content>
</entry>
<entry>
<title>Remove all USB 6-byte quirks as the da(4) driver no longer generates</title>
<updated>2003-08-25T18:08:38Z</updated>
<author>
<name>Nate Lawson</name>
<email>njl@FreeBSD.org</email>
</author>
<published>2003-08-25T18:08:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=acbcee657ca4eafa6b3c6e5f5e354ab6eebfb040'/>
<id>urn:sha1:acbcee657ca4eafa6b3c6e5f5e354ab6eebfb040</id>
<content type='text'>
6-byte commands for umass(4) devices.
</content>
</entry>
<entry>
<title>MFC USB device quirks: rev 1.152, 1.153, 1.154</title>
<updated>2003-08-25T17:49:55Z</updated>
<author>
<name>Nate Lawson</name>
<email>njl@FreeBSD.org</email>
</author>
<published>2003-08-25T17:49:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c356194bfc382e81538af9f6ec97fe7e51883b0b'/>
<id>urn:sha1:c356194bfc382e81538af9f6ec97fe7e51883b0b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC:  Fix ATAPI/USB/Firewire CDROM drive handling in cd(4) and hopefully</title>
<updated>2003-08-24T03:26:38Z</updated>
<author>
<name>Kenneth D. Merry</name>
<email>ken@FreeBSD.org</email>
</author>
<published>2003-08-24T03:26:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=403611e3ccb8e5455f28f8e480e6ba98435c04a5'/>
<id>urn:sha1:403611e3ccb8e5455f28f8e480e6ba98435c04a5</id>
<content type='text'>
fix a number of related problems along the way.

Files/revisions merged:

scsi_cd.c:	1.72, 1.77, 1.80
scsi_all.c:	1.39 (partial)
scsi_all.h:	1.22
scsi_cd.h:	1.7
scsi_da.c:	1.139
atapi-cam.c:	1.13
not merged:	umass.c rev 1.76 (doesn't apply to -stable)

Because of the differences between -current and -stable, some of these
changes are not identical to the ones in -current.

Most notably, cd(4) in -stable uses the slice code, whereas cd(4) in
-current has no disklabel support at all.  So there is extra code in the
-stable version of these patches to handle that.

 - Automatically detect CDROM drives that can't handle 6 byte mode
   sense and mode select, and adjust our command size accordingly.
   We have to handle this in the cd(4) driver (where the buffers are
   allocated), since the parameter list length is different for the
   6 and 10 byte mode sense commands.

 - Remove MODE_SENSE and MODE_SELECT translation in ATAPICAM, since
   there's no way for that to work properly.

 - Merge support for sending a path inquiry CCB to see if the SIM has set
   the PIM_NO_6_BYTE flag. (scsi_cd.c rev 1.80)

 - Add a quirk entry for CDROM drives that just hang when they get a 6
   byte mode sense or mode select.  The reason for the quirk must be
   documented in a PR, and all quirks must be approved by
   ken@FreeBSD.org.  This is to make sure that we fully understand why
   each quirk is needed.  In most cases, the PIM_NO_6_BYTE flag set by the
   SIM driver should eliminate the need for a quirk.

 - Change the way the da(4) handles the no_6_byte sysctl.  There is
   now a per-drive sysctl to set the minimum command size for that
   particular disk.  (Since you could have multiple disks with
   multiple requirements in one system.)

 - Loader tunable support for all the sysctls in the da(4) and cd(4)
   drivers.

 - Add a CDIOCCLOSE ioctl for cd(4) (bde pointed this out a long
   time ago).

 - Add a media validation routine (cdcheckmedia()) to the cd(4)
   driver, to fix some problems bde pointed out a long time ago.  For
   -stable, open() will still fail if there is no media in the drive.  This
   is because of issues with the slice code handling media changing
   underneath it.  If bde and I can get those issues worked out, there is
   basic code in this set of patches to handle allowing the CDIOCCLOSE and
   CDIOCEJECT ioctls without media in the drive.

 - The media validation routine also reads the table of contents off
   the drive.  We use the table of contents to implement the
   CDIOCPLAYTRACKS ioctl using the PLAY AUDIO MSF command.  The
   PLAY AUDIO TRACK INDEX command that we previously used was
   deprecated after SCSI-2.  It works in every SCSI CDROM I've tried,
   but doesn't seem to work on ATAPI CDROM drives.  We still use the
   play audio track index command if we don't have a valid TOC, but
   I suppose it'll fail anyway in that case.

 - Add _len() versions of scsi_mode_sense() and scsi_mode_select() so
   that we can specify the minimum command length.

Approved by:	re
</content>
</entry>
<entry>
<title>[MFC]</title>
<updated>2003-08-09T06:18:30Z</updated>
<author>
<name>Noriaki Mitsunaga</name>
<email>non@FreeBSD.org</email>
</author>
<published>2003-08-09T06:18:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0c79aa1f4a73ead3c65046d8295694f07b8c93b6'/>
<id>urn:sha1:0c79aa1f4a73ead3c65046d8295694f07b8c93b6</id>
<content type='text'>
We do not need `\n' for panic().

cam/scsi/scsi_low.c:	1.15 -&gt; 1.16
dev/ct/ct.c:		1.5  -&gt; 1.6
</content>
</entry>
<entry>
<title>MFC 1.150: Remove unused cmd6workaround() calls.</title>
<updated>2003-08-07T18:24:35Z</updated>
<author>
<name>Nate Lawson</name>
<email>njl@FreeBSD.org</email>
</author>
<published>2003-08-07T18:24:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1d75a7cae219d3a20e50f878cc83bf8a84a21256'/>
<id>urn:sha1:1d75a7cae219d3a20e50f878cc83bf8a84a21256</id>
<content type='text'>
</content>
</entry>
</feed>
