Commit Graph

74250 Commits

Author SHA1 Message Date
Alexander Motin
1d686e05d5 MFC r198331:
Separate CAM_DEV_IDENTIFY_DATA_VALID flag from CAM_DEV_INQUIRY_DATA_VALID.
Add workaround for very old devices without support for mode setting.
Add some PATA bus scanning support.
Remove some SCSIsms.
2009-11-17 15:04:58 +00:00
Alexander Motin
3c6b9b48a0 MFC r198328:
Add support for PIO-only devices.
Fix maxio values and 256 sectors transactions for 28bits commands.
Implement periodic ordered commands insertion, sames as da driver does.
Remove some SCSIsms.
2009-11-17 14:56:00 +00:00
Alexander Motin
db581aa0e3 MFC r198322:
Report real max_target = 15. SIM doesn't need to know that target 15 is PMP.
It is XPT business.
2009-11-17 14:49:35 +00:00
Alexander Motin
b06be4e00c MFC r196907:
To save small bit of CPU time, hide part of SNTF register read latency
behind other reads.
2009-11-17 14:47:40 +00:00
Alexander Motin
1987ffda92 MFC r197541:
Report SATA 3.x devices.
2009-11-17 14:38:47 +00:00
Alexander Motin
71f045ca3f MFC r197421:
If on sense request device returns no sence, give up and return,
or we may loop forever.
2009-11-17 14:37:20 +00:00
Bjoern A. Zeeb
422426a5f1 MFC r198049:
Immediately after clearing a pending callout that didn't make it due
  to the lock we hold, disable interrupts, and announce to the firmware
  that we are shutting down. Especially do this before disabling blocks.

  This makes some types of machines with asf enabled no longer hang upon
  boot, when we start configuring the interface.

PR:	i386/96382, kern/100410, kern/122252, kern/116328
2009-11-17 14:30:09 +00:00
Alexander Motin
72d128fa0b MFC r196983:
Free the correct buffer in an error case.

Submitted by:   phk
2009-11-17 14:14:07 +00:00
Alexander Motin
028a10f917 MFC r196903:
Remove duplicate qfrozen_cnt variable from struct cam_ed.
ccbq.queue.qfrozen_cnt should be used instead.
2009-11-17 13:48:27 +00:00
Christian Brueffer
e8f2b1218b MFC: r198952
Fix two memory leaks in error cases.
2009-11-17 13:37:27 +00:00
Alexander Motin
f26a262eeb MFC r196901:
Remove unneeded CAM_SIM_MPSAFE check.
2009-11-17 13:04:05 +00:00
Alexander Motin
05e4022d23 MFC r196898:
Report scbusX in xpt_announce_periph() to less confuse users by two
different bus addressing schemes.

MFC r196900:
s/bus %d/scbus%d/ in some messages to correct terminology.
2009-11-17 13:01:17 +00:00
Alexander Motin
b351967560 MFC r196897:
Avoid extra swi_sched() call, if this SIM is already queued.
It reduces overhead for coalesced command completions.
2009-11-17 12:58:07 +00:00
Alexander Motin
cfd3d58f6f MFC r197540, r198587, r198865:
Add more defines for bits from ATA and CF specifications.
2009-11-17 12:42:27 +00:00
Alexander Motin
b882e0398e MFC r199074:
Add more ICH10 chip IDs.
2009-11-17 12:30:06 +00:00
Alexander Motin
dfa1c364b8 MFC r198583:
Add some magic taken from OS X and Linux to support early revision K2
SATA controllers, like those found on the G5 Xserve.
2009-11-17 12:25:34 +00:00
Alexander Motin
3f2bdafd97 MFC r198582:
Turn off use of ATA_A_4BIT on modern hardware. This flag was already
obsoleted in 1996 by ATA-2, and crashes some modern hardware like some
revisions of the Serverworks K2 SATA controller. Even very ancient
hardware seems not to require it. In the unlikely event this causes
problems, the previous behavior can be re-enabled by defining
ATA_LEGACY_SUPPORT at the top of this file.
2009-11-17 12:23:14 +00:00
Alexander Motin
ba0e41c3cc MFC r198519:
Don't ignore the return value of g_modevent() in acd_modevent().
2009-11-17 12:18:14 +00:00
Konstantin Belousov
5c3037910a MFC r199137:
Detect the slashdot lookup for RENAME or REMOVE in lookup(), and return
EINVAL.
2009-11-17 11:46:55 +00:00
Konstantin Belousov
c3568f6fbd MFC r198853:
If socket buffer space appears to be lower then sum of count of
already prepared bytes and next portion of transfer, inner loop of
kern_sendfile() aborts, not preparing next mbuf for socket buffer, and
not modifying any outer loop invariants. The thread loops in the outer
loop forever.

Instead of breaking from inner loop, prepare only bytes that fit into
the socket buffer space.
2009-11-17 11:43:53 +00:00
Bruce M Simpson
7ea239483a MFC r199287:
Fix a functional regression in multicast.

  Userland daemons need to see IGMP traffic regardless of the group;
  omit the imo filter check if the proto is IGMP. The kernel part
  of IGMP will have already filtered appropriately at this point.

Submitted by:   Franz Struwig
Reported by:    Ivor Prebeg, Franz Struwig
2009-11-17 10:59:51 +00:00
Andriy Gapon
7a04f19803 MFC r199015: ichwd: don't attach to isa pnp device(s) by accident 2009-11-17 09:35:13 +00:00
Jack F Vogel
95d8c74501 On a 32 bit kernel the igb driver may cause a page
fault panic due to a failed bounce page allocation
during RX mbuf setup. The large demand on bounce pages
is due to the alignment requirement in the tag. This
restriction was removed in the ixgbe driver with no
ill effects and so is being removed here also.
2009-11-16 18:58:45 +00:00
Rick Macklem
43bd82988b MFC: r199053
Add a check for the connection being shut down to the krpc
client just before queuing a request for the connection. The
code already had a check for the connection being shut down
while the request was queued, but not one for the shut down
having been initiated by the server before the request was
in the queue. This fixes some cases of problems w.r.t. reconnecting
to a NFS server that drops inactive TCP connections.

Tested by:	Olaf Seibert, Daniel Braniss
Reviewed by:	dfr
2009-11-15 19:26:06 +00:00
Stanislav Sedov
5b7c45037d - MFC r198320:
Introduce new option BCE_JUMBO_HDRSPLIT that allows user to enable header
  in bce(4) instead of (ab)using ZERO_COPY_SOCKETS that was not
  into if_bce.c anyway.  It is disabled by default.
2009-11-15 11:30:59 +00:00
Robert Noland
1de2992578 MFC r199241
This patch addresses an overflow in the the zfs boot code and allows
users to boot from zfs raidz volumes.  This has been tested by a number
of users and does not impact those which are not booting from zfs raidz
volumes.

Submitted by:	Matt Reimer <mattjreimer@gmail.com>
2009-11-14 16:14:51 +00:00
Pawel Jakub Dawidek
5f99f88975 MFC r198703,r199156,r199157:
r198703:

- zfs_zaccess() can handle VAPPEND too, so map V_APPEND to VAPPEND and call
  zfs_access() instead of vaccess() in this case as well.
- If VADMIN is specified with another V* flag (unlikely) call both
  zfs_access() and vaccess() after spliting V* flags.

This fixes "dirtying snapshot!" panic.

PR:	kern/139806
Reported by:	Carl Chave <carl@chave.us>
In co-operation with:	jh

r199156:

Avoid passing invalid mountpoint to getnewvnode().

Reported by:	rwatson
Tested by:	rwatson

r199157:

Be careful which vattr fields are set during setattr replay.
Without this fix strange things can appear after unclean shutdown like
files with mode set to 07777.

Reported by:	des
2009-11-14 11:59:59 +00:00
Hajimu UMEMOTO
864fb934d0 MFC r199173: CURVNET_RESTORE() was not called in certain cases. 2009-11-14 04:46:24 +00:00
Alexander Leidinger
43b4fbd112 MFC r198945:
Fix typo in kernel message. The fix is based upon the patch in the PR.

  PR:		kern/140279
  Submitted by:	Alexander Best <alexbestms@math.uni-muenster.de>
2009-11-12 13:09:36 +00:00
Navdeep Parhar
bbec3bb581 MFC r197791
cxgb(4) updates, including:
- support for the new Gen-2, BT, and LP-CR cards.
- T3 firmware 7.7.0
- shared "common code" updates.
2009-11-12 00:20:31 +00:00
Navdeep Parhar
585be673c5 MFC r197043 2009-11-11 22:31:02 +00:00
Ken Smith
7647320449 Shift what stable/8 calls itself to the thing that people who tend to
complain about such things find, on average, the least objectionable.
2009-11-11 14:38:45 +00:00
Andrew Thompson
41de786582 MFC r199058
Integrate lost interrupts patch from the old USB stack.

 Some EHCI chips from VIA / ATI seem to trigger interrupts before writing back
 the qTD status, or miss signalling occasionally under heavy load.  If the host
 machine is too fast, we can miss transaction completion - when we scan the
 active list the transaction still seems to be active. This generally exhibits
 itself as a umass stall that never recovers.

 We work around this behaviour by setting up this callback after any softintr
 that completes with transactions still pending, giving us another chance to
 check for completion after the writeback has taken place

Submitted by:	Alexander Nedotsuko
2009-11-11 01:33:06 +00:00
Alexander Motin
58ad43feb1 MFC r198486, r199050:
Increase ATA command timeouts. Introduce define and kernel option
ATA_REQUEST_TIMEOUT to control it.

PR:		kern/111023
2009-11-10 22:37:44 +00:00
Xin LI
ce5c80071f MFC revision 199069:
Initialize the whole message unit's DMA buffer to zero, this fixes a panic
during boot when ARC1200 is being used with certain motherboard models.

This commit brings the driver to the same state of vendor's 1.20.00.16
release.  Many thanks to Areca for their continued support to FreeBSD.

This instant MFC was requested by re@ (kensmith) in preparation for
8.0-RC3.

Reported by:	Jirka Mikulas <jiri mikulas com>
Submitted by:	Erich Chen (Areca)
2009-11-10 00:34:25 +00:00
Ken Smith
50aa951061 Comment out the sbp(4) entry for GENERIC config files that contain it.
There are known issues with this driver that are beyond what can be
fixed for 8.0-RELEASE and the bugs can cause boot failure on some systems.
It's not clear if it impacts all systems and there is interest in getting
the problem fixed so for now just comment it out instead of remove it.

Commit straight to stable/8, this is an 8.0-RELEASE issue.  Head was left
alone so work on it can continue there.

Reviewed by:	Primary misc. architecture maintainers (marcel, marius)
2009-11-09 21:39:42 +00:00
Nathan Whitehorn
006a483528 Insta-MFC of r199084,199108:
Increase the size of the OFW translations buffer to handle G5 systems
   that use many translation regions in firmware, and add bounds checking
   to prevent buffer overflows in case even the new value is exceeded.

Short MFC requested by re since the problem this fixes breaks CD boot on
most G5 systems, making them uninstallable.

Reported by:	Jacob Lambert
Approved by:	re (kensmith,kib)
Requested by:	re
2009-11-09 21:30:45 +00:00
Ken Smith
973e10a816 MFC r198719:
> While certain supported Symbios/LSI SCSI chips (532c896, 53c1000, 53c1010)
> do support 64bit addresses, the current SCRIPTS code supports only 32bit
> addresses causing data corruption for buffer addresses >4GB. This problem
> affects 64bit machines with more than 4GB RAM or amd64 with 4GB and
> memory hole remapping.
> Work-around this problem with a bus_dma tag that requests bounce-buffers
> for addresses >4GB. This causes some overhead, but given the maximum SCSI
> bus speed of 160MB/s compared, the effect should hardly be noticeable.
> The problem was reported by Mike Watters (mike at mwatters net) who also
> verified that this fix cures the problem.
>
> Since this change is a NOOP on systems with less than 4GB RAM and fixes
> data corruption (in RAM and on disk) on systems with more than 4GB, I hope
> that this change is accepted for 8.0.

Requested by:	Stefan Esser (se at freebsd dot org)[1]
Reviewed by:	jhb, scottl

[1] Stefan requested this be part of 8.0 but has been unavailable to do
    the MFC since submitting the request.  We want to get 8.0-RC3 started
    so I'm doing the merges with re@ hat on.
2009-11-09 18:09:10 +00:00
Hajimu UMEMOTO
c303f1eb39 MFC r198976, r198993:
- Don't call LLE_FREE() after nd6_free().
 - Make nd6_llinfo_timer() does its job, again.  ln->la_expire was
   greater than time_second, in most cases.
2009-11-09 15:11:37 +00:00
Oleg Bulyzhin
c366b7c1e2 MFC r198845:
Fix two issues that can lead to exceeding configured pipe bandwidth:
- do not expire queues which are not ready to be expired.
- properly calculate available burst size.

MFC r199073:
style(9): add missing parentheses
2009-11-09 10:13:24 +00:00
Ulf Lilleengen
6ab1fc9fb1 MFC r198475:
- Add support for Marvell Yukon 88E8042 device.

Submitted by:   Mario Lobo <mlobo -at- digiart.art.br>
2009-11-08 17:59:55 +00:00
Alexander Motin
7d767be8c7 MFC r198818:
Add IDs for nVidia MCP65/77/79/89 SATA conntrollers.
2009-11-08 14:06:15 +00:00
John Baldwin
f6b15c7b77 MFC 198367:
Set the devclass_t pointer specified in the DRIVER_MODULE() macro
sooner so it is always valid when a driver's identify routine is
called.
2009-11-06 20:23:16 +00:00
Attilio Rao
dcf9f13772 MFC r197070:
Consolidate CPUID to CPU family/model macros for amd64 and i386 to reduce
unnecessary #ifdef's for shared code between them.

This MFC should unbreak the kernel build breakage introduced by
r198977.

Reported by:	kib
Pointy hat to:	me
2009-11-06 15:24:48 +00:00
Alexander Motin
cf236d24db MFC r198700:
Add support for different request block format used by Gen-IIe Marvell SATA.
This adds support for Marvell 6042/7042 chips and Adaptec 1430SA controller.

MFC r198718:
Allow newly added controllers to use full I/O sizes.
2009-11-06 10:56:43 +00:00
Alexander Motin
cdcdbef48e MFC r198407:
Do not differentiate 12/16 bytes ATAPI CCB formats when it is not needed.
2009-11-06 10:48:44 +00:00
Alexander Motin
74c174b9a7 MFC r197783:
- Revert r191568 partially.  Forcing AHCI mode by changing device subclass
and progif is evil.  It doesn't work reliably[1] and we should honor BIOS
configuration by the user.
- If the SATA controller is enbled but combined mode is disabled, mask off
the emulated IDE channel on the legacy IDE controller.

Pointed out by:	mav[1]
2009-11-06 10:45:37 +00:00
Attilio Rao
063e246163 MFC r198868, r198950:
Opteron rev E family of processor expose a bug where acq memory barriers
can be broken, resulting in random breakages.
Printout a warning message if affecred family and model are found.
2009-11-06 10:15:15 +00:00
Edward Tomasz Napierala
6451b27464 MFC r197789:
Fix ACL support on sparc64.  Turns out that fuword(9) fetches 64 bits
instead of sizeof(int), and on sparc64 that resulted in fetching wrong
value for acl_maxcnt, which in turn caused __acl_get_link(2) to fail
with EINVAL.

PR:		sparc64/139304
Submitted by:	Dmitry Afanasiev <KOT at MATPOCKuH.Ru>
2009-11-06 09:39:35 +00:00
Christian Brueffer
c4e480716d MFC: r198684
Add support for Adaptec 39320LPE adapters.
2009-11-06 06:50:45 +00:00