| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This reduces the 90+ lines boot output of spewage GEOM does for my
Plextor SCSI burner.
Submitted by: scottl
Approved by: scottl
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
thread being waken up. The thread waken up can run at a priority as
high as after tsleep().
- Replace selwakeup()s with selwakeuppri()s and pass appropriate
priorities.
- Add cv_broadcastpri() which raises the priority of the broadcast
threads. Used by selwakeuppri() if collision occurs.
Not objected in: -arch, -current
|
|
|
|
| |
SCSI drivers.
|
|
|
|
| |
devices a lot more quiet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of retrying them blindly.
This should fix some of the problems people have been having with cdrom
drives taking a long time to probe. This should also eliminate the need
for the initial TUR in cdsize().
cam_periph.c: Don't keep retrying if the error we get back is a fatal
error. This should help us detect the transition from
"Logical unit not ready, cause not reportable" to "Medium
not present" in the "TUR many" handler. (The TUR many
handler gets triggered for Logical unit not ready, cause
not reportable errors.)
scsi_cd.c: Remove the initial test unit ready in cdsize(). Hopefully
it isn't necessary after the above change.
Submitted by: gibbs (mostly)
Tested by: peter
MFC After: 2 weeks
|
| |
|
|
|
|
| |
get close to DEV_STRATEGY() which is the only place it is relevant.
|
|
|
|
|
|
|
|
| |
an uninitialized sysctl_ctx, using flag DA_FLAG_SCTX_INIT. This
prevents a panic encoutered with some umass units that probe correctly
but fail to attach. Same problem, and same fix, as scsi_cd.c rev. 1.86.
Reviewed by: njl, ken
|
|
|
|
|
|
|
|
|
|
|
| |
has been initialized.
(cdsysctlinit): Set flag CD_FLAG_SCTX_INIT after sysctl_ctx has been
initialized.
This resolves a panic encountered when a cd drive is sucessfully probed
but fails to attach.
Reviewed by: ken
|
|
|
|
| |
Add short tempered TUR to cdsize() as a workaround.
|
| |
|
|
|
|
| |
- Call cam_periph_invalidate() only if the periph is found.
|
| |
|
| |
|
|
|
|
| |
Reviewed by: ken
|
|
|
|
|
|
|
|
| |
completion of recovery is indicated by positioning the CAM_AUTOSNS_VALID
bit in the status field of the CCB, not in the flags field.
This fixes an endless loop of sense recovery actions.
Reviewed by: ken
|
|
|
|
| |
if we've recorded in our softc that we should set it.
|
|
|
|
|
|
|
|
|
|
| |
This commit puts the relevant code snippets under #ifdef GONE_IN_5
(rather than #ifndef BURN_BRIDGES) thereby disabling the code now.
The code wil be entirely removed before 5.2 unless we find reasons
why this would be a bad idea.
Approach suggested by: imp
|
|
|
|
| |
Submitted by: tegge
|
|
|
|
|
|
|
|
|
|
|
| |
For the floppy driver, use fdcontrol to manipulate density selection.
For the CD drivers, the 'a' and 'c' suffix is without actual effect and
any applications insisting on it can be satisfied with a symlink:
ln -s /dev/cd0 /dev/cd0a
Ongoing discussion may result in these pieces of code being removed before
the 5-stable branch as opposed to after.
|
|
|
|
|
|
|
|
| |
into targreadfilt(). Unlock around calls to notify_user(). If an application
is sending CCBs while the endpoint is shutting down, this may result in
incomplete disable. A more complete solution will come with a "dying" flag.
Submitted by: simokawa
|
|
|
|
|
|
| |
softc on exit.
Submitted by: simokawa
|
|
|
|
|
|
|
|
|
|
|
| |
working without the quirk.
PR:
Submitted by: guido
Reviewed by:
Approved by:
Obtained from:
MFC after: 30 days
|
|
|
|
| |
Pointy Hat to: ken
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
out of cdregister() and daregister(), which are run from interrupt context.
The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.
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 queues (taskqueue_swi and taskqueue_swi_giant) run 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. (It also runs outside of Giant -- clients must explicitly acquire
and release Giant in their taskqueue functions.)
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. This taskqueue
runs outside of Giant, so any functions queued to it would
need to explicitly acquire/release Giant if they need it.
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.
taskqueue.9: Update the taskqueue(9) man page to describe the new thread
task queue, and the taskqueue_swi_giant queue.
MFC after: 3 days
|
|
|
|
|
|
|
| |
that it works without the quirk. This and any other quirk changes will be
MFCd after the release unless they fix a known problem.
MFC after: 1 month
|
| |
|
|
|
|
|
|
|
|
|
| |
commands. Add a quirk for the Creative Nomad MuVo USB device that uses
it as well as NO_SYNCHRONIZE_CACHE.
PR: kern/53094
Submitted by: Richard Nyberg <rnyberg@it.su.se>
MFC after: 3 days
|
|
|
|
|
|
|
|
| |
NO_SYNCHRONIZE_CACHE.
PR: kern/54737
Submitted by: David Thiel <lx@redundancy.redundancy.org>
MFC after: 3 days
|
|
|
|
|
|
| |
PR: kern/51675
Submitted by: Nicolas Jombart <ecu@ipv42.net>
MFC after: 3 days
|
|
|
|
|
|
|
| |
needed. Other USB quirks remain in hopes that user testing will reveal
which ones are also no longer needed.
Courtesy of: USENIX lunch break
|
|
|
|
| |
MFC after: 1 day
|
|
|
|
| |
Pointed out by: bde
|
|
|
|
|
|
|
| |
to such devices. If a device fails due to this commit, add:
options DA_OLD_QUIRKS
to the kernel config and recompile. Then send the output of "camcontrol
inquiry da0" to scsi@freebsd.org so the quirk can be re-enabled.
|
|
|
|
|
|
|
|
|
|
| |
receive 6 byte commands. Add a check for this flag to da(4) and cd(4) so
that they honor it. This is a quick workaround for many devices (especially
USB) that require da(4) quirks to operate. The more complete approach is
to finish the new transport code which will be aware of the SCSI version a
transport implements.
MFC after: 1 day
|
|
|
|
| |
PR: kern/53005
|
|
|
|
|
|
|
| |
Reported by Samuel Tardieu <sam@rfc1149.net>.
Reviewed by: roberto
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Devices below may experience a change in geometry.
* Due to a bug, aic(4) never used extended geometry. Changes all drives
>1G to now use extended translation.
* sbp(4) drives exactly 1 GB in size now no longer use extended geometry.
* umass(4) drives exactly 1 GB in size now no longer use extended geometry.
For all other controllers in this commit, this should be a no-op.
Looked over by: scottl
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Devices below may experience a change in geometry.
* Due to a bug, aic(4) never used extended geometry. Changes all drives
>1G to now use extended translation.
* sbp(4) drives exactly 1 GB in size now no longer use extended geometry.
* umass(4) drives exactly 1 GB in size now no longer use extended geometry.
For all other controllers in this commit, this should be a no-op.
PR:
Submitted by:
Looked over by: scottl
Approved by:
Obtained from:
MFC after:
|
| |
|
| |
|
|
|
|
|
|
| |
Clarify that the implicit fallthrough was *not* intentional (thanks, Poul!)
and reorganize the code so a correct fallthrough (with /* FALLTHROUGH */)
occurs.
|
|
|
|
|
|
|
| |
Remove break after return.
Add XXX comment where intent is unclear.
Found by: FlexeLint
|
|
|
|
| |
Found by: FlexeLint
|
|
|
|
|
|
|
| |
Move /* FALLTHROUGH */ to correct location.
Remove unused variable(s).
Found by: FlexeLint
|
|
|
|
|
|
|
| |
Remove unused variable(s).
Order switch in canonical order.
Found by: FlexeLint
|
|
|
|
| |
Found by: FlexeLint
|
|
|
|
|
|
| |
Use arrays instead of relying on struct packing.
Identical md5(scsi_ch.o).
|
|
|
|
| |
Found by: FlexeLint
|