Hasso Tepper [Thu, 29 Nov 2007 09:28:38 +0000 (09:28 +0000)]
Add support for Intel 7221's and 845M GMCH controllers.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 03:57:25 +0000 (03:57 +0000)]
Fixing a memory leak in xpt_release_device().
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 03:40:09 +0000 (03:40 +0000)]
Do not initialize path variable with useless value just before
xpt_create_path overwrites it anyway.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 03:31:15 +0000 (03:31 +0000)]
Make sure we look at the correct sub op codes when
deciding whether it's an operation we can perform
via the control device.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 03:10:24 +0000 (03:10 +0000)]
Protect against dividing by zero.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 02:56:42 +0000 (02:56 +0000)]
avoid use after free
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 02:41:21 +0000 (02:41 +0000)]
avoid use after free
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 02:32:43 +0000 (02:32 +0000)]
Fix a problem with the cd(4) driver -- the CAMGETPASSTHRU ioctl wouldn't
succeed if there was no media in the drive.
For now, check the ioctl group to decide whether to check for media or not.
(We only need to check for media on CD-specific ioctls.)
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 01:57:29 +0000 (01:57 +0000)]
Add "report only" functionality to 'camcontrol format', so users can get a
report on the status of a format already running on a drive.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 01:48:15 +0000 (01:48 +0000)]
Fix a place where we were referencing a pointer after it had been freed.
Obtained-from: FreeBSD
Peter Avalos [Thu, 29 Nov 2007 01:32:16 +0000 (01:32 +0000)]
Restore queue depth settings across tag disable events. The system often
disables tag queuing temporarily in order to allow controllers a window
to safely perform transfer negotiation with non-compliant devices. Before
this change, CAM would restore the queue depth to the controller specified
maximum or device quirk level rather than any depth determined by reactions
to QUEUE FULL/BUSY events or an explicit user setting.
During device probe, initialize the flags field for XPT_SCAN_BUS.
The uninitialized value often confused CAM into not bothering to
issue an AC_FOUND_DEVICE async event for new devices. The reason
this bug wasn't reported earlier is that CAM manually announces
devices after the initial system bus scans.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 22:37:05 +0000 (22:37 +0000)]
Try to automatically scan and attach luns for modern storage
which has luns in the 0..1000 range, not 0..7.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 22:27:57 +0000 (22:27 +0000)]
Again, use offsetof() instead of a constant to enhance readability.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 22:21:48 +0000 (22:21 +0000)]
Use offsetof() instead of a hard-coded constant for readability.
Round odd long inquiry lengths up so as to avoid tickling ignore
wide residue bugs in broken parallel SCSI devices running with a
wide transfer negotiation.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 22:16:09 +0000 (22:16 +0000)]
Add necessary data structures and definitions for the 12-byte SCSI
commands READ_FORMAT_CAPACITIES, WRITE_AND_VERIFY, and VERIFY.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 22:11:02 +0000 (22:11 +0000)]
Remove the camnet swi and CAM_PERIPH_NET. It has never been used, and
given that network-over-scsi never really took off, there is little chance
that it will ever be needed.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:55:59 +0000 (21:55 +0000)]
Fix typo in comment.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:45:02 +0000 (21:45 +0000)]
When printing out an unknown sense code we should print it in hex, not
decimal.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:41:41 +0000 (21:41 +0000)]
Sync error messages w/ FreeBSD.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:29:18 +0000 (21:29 +0000)]
Make the module return EOPNOTSUPP for unknown events.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:20:25 +0000 (21:20 +0000)]
Whitespace to make comments more legible.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:12:11 +0000 (21:12 +0000)]
bzero the CCB header in getdevtree() and set the path properly, to
avoid having random garbage in the CCB header.
if the lun isn't specified in a device specifier, it should default to
0, not whatever random data happens to be in the lun variable.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 21:05:00 +0000 (21:05 +0000)]
Compare the *number* of patterns to zero, not the pointer to the patterns.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 20:56:55 +0000 (20:56 +0000)]
Spelling fix in comment.
Obtained-from: FreeBSD
Peter Avalos [Wed, 28 Nov 2007 20:55:37 +0000 (20:55 +0000)]
SS_FATAL|ENXIO rather than SS_RDEF for illegal track mode.
Obtained-from: FreeBSD
Sepherosa Ziehau [Wed, 28 Nov 2007 11:35:40 +0000 (11:35 +0000)]
- Factor out pcie_slotimpl() to check whether PCI Express slot is implemented.
- Add external function to test whether PCI Express slot is implemented; this
external function is sheer wrapper of pcie_slotimpl().
- Rename port type macros.
- Add some comment.
- Disable all hot-plug related interrupts on PCI Express root/downstream port.
Add XXX comment about it.
Reminded-by: joerg@
Sepherosa Ziehau [Tue, 27 Nov 2007 11:15:30 +0000 (11:15 +0000)]
M_MCAST and M_BCAST are set before bridge_input() is executed, so use these
two flags instead of conducting tests for them again.
Sepherosa Ziehau [Tue, 27 Nov 2007 11:06:31 +0000 (11:06 +0000)]
- Move IFF_UP checking to the beginning of ether_input().
- Move ethernet multicast/broadcast destination testing to ether_input(),
before IFF_MONITOR testing.
- Use ETHER_IS_MULTICAST macro to test ethernet multicast/broadcast address.
Obtained-from: FreeBSD
- Nuke no longer needed 'pre_stats' label.
- In ether_input(), assert that the input mbuf contains pkthdr.
Matthew Dillon [Tue, 27 Nov 2007 07:48:52 +0000 (07:48 +0000)]
HAMMER 8/many - A-list, B-Tree fixes. As-of queries
Fix numerous bugs in the A-list and B-Tree code, and a few other
calculations. The maximum volume size had to be reduced to 8192 TB due
to an overflow in the A-list radix calculation.
Implement as-of name lookups using an @@<delta_seconds_old> name extension.
This is temporary. Implelment as-of mounts.
Matthew Dillon [Tue, 27 Nov 2007 07:44:38 +0000 (07:44 +0000)]
Make fixes to the A-list initialization and properly allocate records
from the end of the cluster backwards.
Matthew Dillon [Mon, 26 Nov 2007 21:39:09 +0000 (21:39 +0000)]
Initialize idx_ldata - a forward iterator for allocating large (16K) data
blocks.
Matthew Dillon [Mon, 26 Nov 2007 21:38:37 +0000 (21:38 +0000)]
HAMMER 7/many - deletions, overwrites, B-Tree work.
Fix numerous tag-ends related to file deletions and overwrites and get the
B-Tree insertion algorithm working properly. Also get the memory cache
squared away, particularly when dealing with temporary files.
Sepherosa Ziehau [Mon, 26 Nov 2007 11:43:09 +0000 (11:43 +0000)]
For ip_lengthcheck():
- Centralize check failure processing.
- Set the passed in mbuf pointer to NULL, if check fails, so that callers won't
need to do that.
Sepherosa Ziehau [Mon, 26 Nov 2007 11:05:58 +0000 (11:05 +0000)]
Use m_freem() instead of m_free()
Sepherosa Ziehau [Mon, 26 Nov 2007 10:55:42 +0000 (10:55 +0000)]
Use m_freem() to free the whole mbuf chain.
Confirmed-by: hsu@
Hasso Tepper [Mon, 26 Nov 2007 10:52:33 +0000 (10:52 +0000)]
Allow for any baud rate within a range rather than having a fixed list of
rates.
Obtained-from: OpenBSD
Matthew Dillon [Mon, 26 Nov 2007 05:03:11 +0000 (05:03 +0000)]
HAMMER 6/many - memory->disk flush, single-cluster sync to disk, more vnops.
Get most operations within a single 64M cluster working. There are still
numerous issues with the B-Tree algorithms so readbacks generate bad data at
the moment.
Matthew Dillon [Mon, 26 Nov 2007 04:14:01 +0000 (04:14 +0000)]
Catch vkernel divide-by-0 traps a bit earlier so they are reported properly.
Matthew Dillon [Mon, 26 Nov 2007 03:57:58 +0000 (03:57 +0000)]
Drop into DDB if the vkernel hits a floting point exception (SIGFPE).
Peter Avalos [Mon, 26 Nov 2007 02:50:04 +0000 (02:50 +0000)]
Don't be so chatty when performing manual sense.
Obtained-from: FreeBSD
Peter Avalos [Mon, 26 Nov 2007 02:24:49 +0000 (02:24 +0000)]
In camperiphdone(), make sure we check for fatal errors and bail out
instead of retrying them blindly.
Obtained-from: FreeBSD
Peter Avalos [Mon, 26 Nov 2007 01:08:42 +0000 (01:08 +0000)]
(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
Peter Avalos [Mon, 26 Nov 2007 00:40:08 +0000 (00:40 +0000)]
Only set single initiator buffered mode if we've recorded in our softc
that we should set it.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 18:32:29 +0000 (18:32 +0000)]
Minor debug output changes.
Also, the previous fallthrough was not intentional, so move the code
around to perform correctly.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 18:14:26 +0000 (18:14 +0000)]
Remove unused variables.
Remove break after return.
Add XXX comment where intent is unclear.
Obtained-from: FreeBSD
Sascha Wildner [Sun, 25 Nov 2007 18:10:07 +0000 (18:10 +0000)]
Fix some mis-usages of NULL.
Peter Avalos [Sun, 25 Nov 2007 18:03:43 +0000 (18:03 +0000)]
Remove unused variable.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 17:59:22 +0000 (17:59 +0000)]
Use symbolic constants instead of "4".
Use arrays instead of relying on struct packing.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 17:09:06 +0000 (17:09 +0000)]
Don't use return(foo(...)); in a function returning void.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 16:49:48 +0000 (16:49 +0000)]
Remove unused ioctl routine.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 15:10:30 +0000 (15:10 +0000)]
Merge from vendor branch LESS:
Import less-416:
Fix crash when searching text with invalid UTF-8 sequences.
Peter Avalos [Sun, 25 Nov 2007 15:10:30 +0000 (15:10 +0000)]
Import less-416:
Fix crash when searching text with invalid UTF-8 sequences.
Sascha Wildner [Sun, 25 Nov 2007 14:48:30 +0000 (14:48 +0000)]
Remove (now) bogus prototype.
Sascha Wildner [Sun, 25 Nov 2007 14:33:02 +0000 (14:33 +0000)]
* Add prototype for callrpc()
* Fix function type for callrpc() in rpc(3)
* Raise WARNS to 2 for librpcsvc, fix warnings and ansify
Sepherosa Ziehau [Sun, 25 Nov 2007 10:31:41 +0000 (10:31 +0000)]
- Cache PCI-X capability PTR.
- Add IVARs to read PCI Express and PCI-X capability PTR.
- Add convenient functions to test whether a device is PCI Express based
or is PCI-X based.
Peter Avalos [Sun, 25 Nov 2007 04:42:38 +0000 (04:42 +0000)]
Don't use the devstat->busy_count for state decisions in the device
drivers. Doing so imposes atomicity and locking constraints.
Obtained-from: FreeBSD
Sepherosa Ziehau [Sun, 25 Nov 2007 04:08:42 +0000 (04:08 +0000)]
Cache following information for PCI Express capability:
- Capability PTR
- PCI Express Capabilities register
- Slot Capabilities register
Print them if 'bootverbose'.
Above information should be enough for identifying PCI Express hot-plug
support, e.g. ExpressCard
Peter Avalos [Sun, 25 Nov 2007 02:21:30 +0000 (02:21 +0000)]
Fix typo.
Obtained-from: FreeBSD
Sepherosa Ziehau [Sun, 25 Nov 2007 02:17:56 +0000 (02:17 +0000)]
Factor out a function to read power management capability
Peter Avalos [Sun, 25 Nov 2007 01:30:55 +0000 (01:30 +0000)]
panic() shouldn't have a \n.
Obtained-from: FreeBSD
Peter Avalos [Sun, 25 Nov 2007 01:29:57 +0000 (01:29 +0000)]
panic() shouldn't have a \n.
Obtained-from: FreeBSD
Sascha Wildner [Sun, 25 Nov 2007 01:28:24 +0000 (01:28 +0000)]
Add some #include's to fix 'implicit declaration of...' warnings.
Peter Avalos [Sun, 25 Nov 2007 01:21:42 +0000 (01:21 +0000)]
Use parens for arguments in macro.
Obtained-from: FreeBSD
Sascha Wildner [Sun, 25 Nov 2007 00:13:28 +0000 (00:13 +0000)]
Adjust acpi.c and bios.c to use kfreeenv()/ktestenv() and remove the
freeenv/testenv compatibility defines.
Peter Avalos [Sat, 24 Nov 2007 23:12:51 +0000 (23:12 +0000)]
Be consistent about "static" functions: if the function is marked
static in its prototype, mark it static at the definition too.
Obtained-from: FreeBSD
Sascha Wildner [Sat, 24 Nov 2007 23:12:36 +0000 (23:12 +0000)]
Remove old prototypes of consinit() (which was removed along with pcvt(4))
and usrinfoinit() (which was removed from FreeBSD before we forked).
Peter Avalos [Sat, 24 Nov 2007 19:57:01 +0000 (19:57 +0000)]
A SCSI_DELAY of zero is a legitimate value to have in some cases.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 19:41:39 +0000 (19:41 +0000)]
Don't call dkpart() just to print the result, it is constant.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 19:22:51 +0000 (19:22 +0000)]
Document camcontrol load.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 19:19:43 +0000 (19:19 +0000)]
Make SCSI_DELAY setable at boot time and runtime via the
kern.cam.scsi_delay tunable/sysctl.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 18:55:27 +0000 (18:55 +0000)]
Add some \n's to kprintf()s.
Obtained-from: FreeBSD
Sascha Wildner [Sat, 24 Nov 2007 18:53:15 +0000 (18:53 +0000)]
s/Conatainer/Container/
Taken-from: FreeBSD
Sascha Wildner [Sat, 24 Nov 2007 18:47:07 +0000 (18:47 +0000)]
Use .An
Sepherosa Ziehau [Sat, 24 Nov 2007 13:21:32 +0000 (13:21 +0000)]
Rename pci_read_extcap() to pci_read_capabilities() to avoid possible
confusion between PCI "capability" and PCI Express "extended capability".
Sepherosa Ziehau [Sat, 24 Nov 2007 13:04:16 +0000 (13:04 +0000)]
White space
Sepherosa Ziehau [Sat, 24 Nov 2007 06:47:37 +0000 (06:47 +0000)]
- Factor out pci_fixup_nextptr().
- The checking about whether 'data' register of power management capability
exists or not is incorrect, according to PCI local bus spec:
1) Next capability is not necessarily at a higher location than the
current capability.
2) Two capabilities are not necessarily consecutive.
Set it to 0 for now (it is not used at all) and add comment about a possible
way to test the existence of this register in power management capability.
- Clean up pci_read_extcap() a little bit.
Peter Avalos [Sat, 24 Nov 2007 05:18:35 +0000 (05:18 +0000)]
If we boot verbose, then print out 'interesting' CAM errors that otherwise
would hide problems (like Selection Timeout).
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 03:48:31 +0000 (03:48 +0000)]
Add REPORT LUNS basic infrastructure.
Obtained-from: FreeBSD
Sepherosa Ziehau [Sat, 24 Nov 2007 03:42:24 +0000 (03:42 +0000)]
- Push PCI status "capability list bit" checking down into pci_read_extcap().
- Mask bottom two bits of "next pointer", add comment about it.
- If "next pointer" is not 0 and is less than 0x40 (standard PCI configuration
space size), then it is illegal, bark out loudly and terminate the capability
iteration.
Peter Avalos [Sat, 24 Nov 2007 03:13:03 +0000 (03:13 +0000)]
Do not +1 with MAXPATHLEN.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 03:09:57 +0000 (03:09 +0000)]
Remove unused variable.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 02:36:13 +0000 (02:36 +0000)]
Remove extra semicolon.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 02:29:24 +0000 (02:29 +0000)]
Remove comment that doesn't seem to apply any more.
Peter Avalos [Sat, 24 Nov 2007 02:08:50 +0000 (02:08 +0000)]
Staticise a debugging variable.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 01:53:50 +0000 (01:53 +0000)]
Const'ify the CDB format string passed to the CDB parsing routines
(csio_decode_visit() and family).
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 01:38:46 +0000 (01:38 +0000)]
Fix breakage in 'camcontrol defects' introduced in last commit.
Obtained-from: FreeBSD
Peter Avalos [Sat, 24 Nov 2007 01:31:39 +0000 (01:31 +0000)]
Be very generous with timeouts for synchronize cache. We may wait a very long
time in the cases where it really sends the drive out to lunch, but it also
allows us to catch very weird edge cases of strange drives that might take
a very long time.
Obtained-from: FreeBSD
Simon Schubert [Sat, 24 Nov 2007 00:55:10 +0000 (00:55 +0000)]
Add llabs(3).
Simon Schubert [Sat, 24 Nov 2007 00:54:25 +0000 (00:54 +0000)]
Add llabs(3).
Obtained-From: FreeBSD
Sascha Wildner [Fri, 23 Nov 2007 23:16:37 +0000 (23:16 +0000)]
Uniformly refer to RFCs as 'RFC xxxx' and not 'RFCxxxx' or 'RFC-xxxx'.
Sascha Wildner [Fri, 23 Nov 2007 23:03:57 +0000 (23:03 +0000)]
Fix a number of typos in defined values (ioctls and others).
Matthew Dillon [Fri, 23 Nov 2007 22:29:51 +0000 (22:29 +0000)]
Remove debugging printfs.
Sascha Wildner [Fri, 23 Nov 2007 20:08:35 +0000 (20:08 +0000)]
Properly use .Ar
Sepherosa Ziehau [Fri, 23 Nov 2007 14:41:56 +0000 (14:41 +0000)]
Add comment about pcicfgregs.pmgt field
Sepherosa Ziehau [Fri, 23 Nov 2007 14:36:17 +0000 (14:36 +0000)]
Create structure to group PCI power management configuration
Obtained-from: FreeBSD
Sepherosa Ziehau [Fri, 23 Nov 2007 13:40:58 +0000 (13:40 +0000)]
- Add CAP_PTR macro for type 2 devices (cardbus)
- Less magic values in pci_read_extcap()
Obtained-from: FreeBSD
Sascha Wildner [Thu, 22 Nov 2007 21:17:55 +0000 (21:17 +0000)]
Use .Ev
Hasso Tepper [Thu, 22 Nov 2007 20:19:43 +0000 (20:19 +0000)]
Fix typos.
Obtained-from: NetBSD
Sascha Wildner [Thu, 22 Nov 2007 20:13:38 +0000 (20:13 +0000)]
Remove comments about 0x2 flags value and FDC_YE option of which there
are no traces in the code.
Found-in: FreeBSD
Matthew Dillon [Thu, 22 Nov 2007 19:57:14 +0000 (19:57 +0000)]
Replace the very predictable 'random' IP sequence number generator with
something far less predictable. Use DragonFly's built-in PRNG and add a
shuffle algorithm. We eat 128KB of ram for the shuffle array but I've
pretty much had it with roll-your-own PRNGs. At least this way any PRNG
issues can be corrected in one place -- our system PRNG.
Turn net.inet.ip.random_id on by default. Eat the minor loss in performance.
On the bright side, our PRNG is very fast, so this should not represent
a burden.
References: Analysis of BSD ip randomizer algorithm by "Amit Klein"
<amit.klein@trusteer.com> showing serious vulnerabilities in
the algorithm.