Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2 |
|
#
aec00d32 |
| 05-Apr-2019 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - quiet repeated DA/CD probes for removable devices
* Don't print errors when repeated probes for cards in sdcard readers fail, beyond the first instance.
* Fixes console spam when usb car
kernel - quiet repeated DA/CD probes for removable devices
* Don't print errors when repeated probes for cards in sdcard readers fail, beyond the first instance.
* Fixes console spam when usb card readers are plugged in.
show more ...
|
#
cec957e9 |
| 04-Mar-2019 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Change callout in struct ccb_hdr
* Change the callout declaration in struct ccb_hdr from an embedded structure to a pointer, add padding to get the whole structure to its original size
kernel - Change callout in struct ccb_hdr
* Change the callout declaration in struct ccb_hdr from an embedded structure to a pointer, add padding to get the whole structure to its original size (prior to the recent callout patch).
* This removes an improper ABI dependency on the kernel struct callout structure which was causing 'camcontrol', and 'smartctl' (from smartmontools) to fail.
Testing: dillon, tuxillo
show more ...
|
#
fcf6efef |
| 02-Mar-2019 |
Sascha Wildner <saw@online.de> |
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them agai
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them again for where crit_*() are no longer used.
I had to adjust some files that were relying on thread2.h or headers that it includes coming in via other headers that it was removed from.
show more ...
|
Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc |
|
#
a9f09b75 |
| 04-Feb-2018 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix CAM peripheral error handling
* cam_periph.c was bcopy()ing the *ENTIRE* saved ccb back to the original when working through certain error results. This completely destroys linked
kernel - Fix CAM peripheral error handling
* cam_periph.c was bcopy()ing the *ENTIRE* saved ccb back to the original when working through certain error results. This completely destroys linked list entry fields.
* Refactor by hacking a restore_ccb() function which does not copy over the link list entry fields or the callout structure.
* Fixes panics with CDs, particularly audio CDs, and can also fix other panics.
Panics are related to situations where an AHCI error or errors occur while multiple CCBs are queued.
* Also always initialize the state tracking field for various scsi periphals to ensure that stale data does not result in improper processing in scsi/*.c's *done() functions.
Reported-by: htse
show more ...
|
Revision tags: v5.0.2 |
|
#
4a2f1c82 |
| 02-Dec-2017 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix CAM unit allocation race
* Fix an issue where multiple targets can sometimes allocate the same unit when probed asynchronously. The search and insertion functions were being indepe
kernel - Fix CAM unit allocation race
* Fix an issue where multiple targets can sometimes allocate the same unit when probed asynchronously. The search and insertion functions were being independently locked.
show more ...
|
Revision tags: v5.0.1, v5.0.0, v5.0.0rc2 |
|
#
8158299a |
| 30-Sep-2017 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Remove B_MALLOC
* Remove B_MALLOC buffer support. All primary buffer cache buffer operations should now use pages. B_VMIO is required for all vnode-centric operations like allocbuf(),
kernel - Remove B_MALLOC
* Remove B_MALLOC buffer support. All primary buffer cache buffer operations should now use pages. B_VMIO is required for all vnode-centric operations like allocbuf(), but does not have to be set for nominal I/O.
* Remove vm_hold_load_pages() and vm_hold_free_pages(). This code was used to support mapping ad-hoc data buffers into buf structures, but the only remaining use case in the CAM periph code can just use getpbuf_mem() instead. So this code is no longer used.
show more ...
|
Revision tags: v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc |
|
#
2bf3efbc |
| 22-Feb-2017 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Add missing bus lock to CAM
* cam_periph_alloc() was missing a bus lock / unlock sequence around a list operation.
|
#
1647c7bd |
| 16-Feb-2017 |
Sascha Wildner <saw@online.de> |
kernel: Fix the type of 'cmd' in various ioctl functions (int -> u_long).
These were all found by clang's -Wswitch option.
|
#
43931787 |
| 27-Jan-2017 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Remove direct mapping of user buffers to CAM
* Remove direct mappings, always bounce. Nothing uses this code any more and vmapbuf/vunmapbuf are about to go away, so just bounce.
|
Revision tags: v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3 |
|
#
f86988f7 |
| 14-Jan-2015 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
cam: Disable verbose "Unretryable error" log for probe pseudo device.
Discussed-with: swildner@
|
Revision tags: v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0 |
|
#
30a6375a |
| 05-Jan-2013 |
François Tigeot <ftigeot@wolfpond.org> |
kernel: Sync resource_string_value() with FreeBSD
|
Revision tags: v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3 |
|
#
d83666e0 |
| 22-Mar-2012 |
François Tigeot <ftigeot@wolfpond.org> |
Kernel - Completely remove DFLTPHYS
* There is no need to have two different macros define the maximum allowed IO size for low-level operations; replace DFLTPHYS by MAXPHYS in the entire kernel.
Kernel - Completely remove DFLTPHYS
* There is no need to have two different macros define the maximum allowed IO size for low-level operations; replace DFLTPHYS by MAXPHYS in the entire kernel.
* Old drivers typically used DFLTPHYS without a second thought, assuming it would always be the same value; they may have hard limitations and break if bigger I/O sizes are suddenly used. Be sure to explicitely limit their maximum allowed I/O size to 64KB and keep them working.
show more ...
|
Revision tags: v3.0.2, v3.0.1, v3.1.0, v3.0.0 |
|
#
86d7f5d3 |
| 26-Nov-2011 |
John Marino <draco@marino.st> |
Initial import of binutils 2.22 on the new vendor branch
Future versions of binutils will also reside on this branch rather than continuing to create new binutils branches for each new version.
|
Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1 |
|
#
f627566b |
| 30-Sep-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
CAM - Fix missing SIM lock in cam_periph_release()
* When releasing the last reference on a CAM peripheral which has been marked invalid, the peripheral is then freed. Freeing the peripheral re
CAM - Fix missing SIM lock in cam_periph_release()
* When releasing the last reference on a CAM peripheral which has been marked invalid, the peripheral is then freed. Freeing the peripheral requires the SIM lock.
Go through necessary tribulations to acquire the SIM lock. The lock order is important (SIM lock first, XPT lock second), and the SIM lock may or may not already be held by the thread.
* The bug could cause a crash after burning a CD as the CD becomes invalid after the burn completes in order to reload its state.
show more ...
|
Revision tags: v2.5.0, v2.4.0, v2.3.2 |
|
#
c6a64e8b |
| 25-Jun-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
CAM - Auto unit number start based on device
If no SCSI devices are wired CAM now automatically starts any umass sim attachments at unit #8 instead of unit #0. This reduces interference between usb
CAM - Auto unit number start based on device
If no SCSI devices are wired CAM now automatically starts any umass sim attachments at unit #8 instead of unit #0. This reduces interference between usb mass storage attachments and ahci/sili attachments. Otherwise the usb mass storage can steal "da0" away from ahci/sili.
show more ...
|
Revision tags: v2.3.1, v2.2.1, v2.2.0, v2.3.0 |
|
#
969f6a6d |
| 16-Jan-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
Add code similar to what was done in physio to use a bounce buffer if user data supplied to the CAM pass-throug device is not 16-byte aligned. The user data was previously unconditionally vmapbuf()'d
Add code similar to what was done in physio to use a bounce buffer if user data supplied to the CAM pass-throug device is not 16-byte aligned. The user data was previously unconditionally vmapbuf()'d and the unaligned pointer passed through to the device layer, causing NATA to barf badly on SATA devices.
This fixes numerous dvd burning issues on SATA-based DVD burners.
Reported-by: Hasso Tepper <hasso@estpak.ee>
show more ...
|
Revision tags: v2.1.1, v2.0.1 |
|
#
2d19cdd3 |
| 18-Jul-2008 |
Matthew Dillon <dillon@dragonflybsd.org> |
Fix multiple bugs in CAM related devices which go away unexpectedly. This fixes numerous panics when pulling a USB mass media device in the midst of heavy I/O.
* The SIM lock was being unlocked via
Fix multiple bugs in CAM related devices which go away unexpectedly. This fixes numerous panics when pulling a USB mass media device in the midst of heavy I/O.
* The SIM lock was being unlocked via the periph->sim path after periph was unheld. periph can become free and blow up the unlock, so get the sim into a local variable first, then release periph.
* The code which waits for CCB completion needs to be a while loop, not an if. It worked anyway, but wasn't very robust.
* Add CAM_SIM_DEREGISTERED to flag when a sim is undergoing deregistration.
* Beef up cam_dead_sim so it works more like a real sim.
* Properly install &cam_dead_sim in the device and periph structures related to a SCSI bus, when deregistering the bus.
* Disallow the addition of new devices when deregistering a bus.
* NULL out periph->softc when freeing it.
show more ...
|
#
1c8b7a9a |
| 18-May-2008 |
Peter Avalos <pavalos@dragonflybsd.org> |
Sync CAM with FreeBSD using lockmgr locks instead of mutexes. Note: This is mostly a code sync with FreeBSD which improves stability in addition to the items listed below. This provides a framework
Sync CAM with FreeBSD using lockmgr locks instead of mutexes. Note: This is mostly a code sync with FreeBSD which improves stability in addition to the items listed below. This provides a framework for releasing the mplock, but for now it's still there.
Add an xpt_print function to reduce most of the xpt_print_path/printf pairs. Convert the core code to use it.
Initial cut at Basic Domain Validation.
Make cam_xpt's pronouncements match camcontrol (Tagged -> Command) Queueing.
Pay attention to return value from xpt_bus_register in xpt_init.
Add an xpt_rescan function and a thread that will field rescan requests. The purpose of this is to allow a SIM (or other entities) to request a bus rescan and have it then fielded in a different (process) context from the caller.
Check the return value from cam_periph_acquire.
Drop the periph/sim lock when calling disk_destroy().
Drop the topology lock before calling the periph oninvalidate and dtor vectors.
For the XPT_SASYNC_CB operation, only decouple the broadcast to the bus and device lists instead of decoupling the whole operation. This avoids problems with SIMs going away.
Split the camisr into per-SIM done queues. This optimizes the locking a little bit and allows for direct dispatch of the doneq from certain contexts that would otherwise face recursive locking problems.
Zero the CCBs when mallocing them.
Only schedule the xpt_finishconfig_task once.
Eliminate the use of M_TEMP.
Add a helper function for registering async callbacks.
Release the bus reference that is acquired when doing a CAMIOCOMMAND ioctl.
Zero scsi_readcapacity allocations so we can really tell if there has been data returned.
Remove duplicate includes and fix typos.
Add a bunch of definitions and structures to support newer drivers.
When probing a newly found device, don't automatically assume that the device supports retrieving a serial number. Instead, first query the list of VPD pages it does support, and only query the serial number if it's supported, else silently move on. This eliminates a lot of noise during verbose booting, and will likely eliminate the need for most NOSERIAL quirks.
Reduce diffs from FreeBSD.
Obtained-from: FreeBSD
show more ...
|
#
ebf745a7 |
| 02-Dec-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
Put a bit of hysteresis into both BUSY SCSI status returns and CAM_RESRC_UNAVAIL returns. Delay a tunable amount for either between retries.
This came up because the MPT IOC was returning "IOC out o
Put a bit of hysteresis into both BUSY SCSI status returns and CAM_RESRC_UNAVAIL returns. Delay a tunable amount for either between retries.
This came up because the MPT IOC was returning "IOC out of resources" for some FreeBSD users and this caused a CAM_RESRC_UNAVAIL return. Putting a bit of delay between retries helped them out.
Obtained-from: FreeBSD
show more ...
|
#
baa93599 |
| 01-Dec-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
There should be no need to retry when the CCB status code is CAM_LUN_INVALID or CAM_TID_INVALID.
This avoids crashes in camisr() when umass devices are unplugged during probing.
Obtained-from: Free
There should be no need to retry when the CCB status code is CAM_LUN_INVALID or CAM_TID_INVALID.
This avoids crashes in camisr() when umass devices are unplugged during probing.
Obtained-from: FreeBSD
show more ...
|
#
bc6e3c73 |
| 01-Dec-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
Fine-grained malloc statistics - replace some M_DEVBUF with module-specific types.
Obtained-from: FreeBSD
|
#
1495c68b |
| 28-Nov-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
Fix typo in comment.
Obtained-from: FreeBSD
|
#
dfd7c4a6 |
| 26-Nov-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
Don't be so chatty when performing manual sense.
Obtained-from: FreeBSD
|
#
7a367ab7 |
| 26-Nov-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
In camperiphdone(), make sure we check for fatal errors and bail out instead of retrying them blindly.
Obtained-from: FreeBSD
|
#
a3429859 |
| 26-Nov-2007 |
Peter Avalos <pavalos@dragonflybsd.org> |
(camperiphdone): When the cam_periph layer performs sense recovery, completion of recovery is indicated by positioning the CAM_AUTOSNS_VALID bit in the status field of the CCB, not in the flags fie
(camperiphdone): When the cam_periph layer performs sense recovery, 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.
Obtained-from: FreeBSD
show more ...
|