Commit Graph

145021 Commits

Author SHA1 Message Date
Alexander Motin
6030a3f04c Improve ata_reinit():
- protect againtst recursions,
 - add new devices detection using ata_identify().

Improve ata_identify():
 - do not add duplicate device if device already exist.

Rework SATA hot-plug events handling. Instead of unsafe duplicate
implementation use common ata_reinit() to handle all state changes.

All together this gives quite stable and robust cold- and hot-plug operation,
invariant to false, lost and duplicate events.
2009-02-21 22:57:26 +00:00
Alan Cox
bfd9b137a0 Reduce the scope of the page queues lock in vm_object_page_remove().
MFC after:	1 week
2009-02-21 20:57:25 +00:00
Marcel Moolenaar
232c8bf888 o When creating the EBR scheme, set the number of entries
properly. Otherwise the minimum of 1 is used and you can
   only insert a single partition/slice and only at sector
   0 (index 1).
o  When adding a partition/slice, recalculate the index after
   the start and size of the partition/slice are adjusted to
   make them a multiple of the track size. Since the precheck
   method sets the index based on the start of the partition
   as provided by the user, we know that we're off by at most
   1 and adjusting the index is safe.
2009-02-21 19:25:13 +00:00
Alexander Motin
7c84b0bd94 Teach device drivers' ata_reinit() methods, that there can be more then two
devices per channel.
2009-02-21 16:39:26 +00:00
Attilio Rao
ff0991c4e9 Sync with the official Adaptec vendor driver:
[1]	Add the support for the NARK controller which seems a variant of
	the i960Rx.
[2]	Split up memory regions and other resources in 2 different parts
	as long as NARK uses them separately (it is not clear to me
	why though as long as there are no more informations available
	on this controller). Please note that in all the other cases,
	the regions overlaps leaving the default behaviour for all the
	other controllers.
[3]	Implement a clock daemon responsible for maintain updated the
	wall clock time of the controller (run any 30 minutes)*.

Submitted by:	Adaptec (driver build 15317 [1, 2] and 15727 [3])
Reviewed by:	emaste
Tested by:	emaste
Sponsored by:	Sandvine Incorporated

* Please note that originally, in the Adaptec driver, the clock daemon
  is not implemented with callouts as in our in-tree driver.
2009-02-21 15:40:03 +00:00
Ruslan Ermilov
d9ca85fca7 Fix build when WITH_SSP is set explicitly.
Submitted by:	Jeremie Le Hen
2009-02-21 15:04:31 +00:00
Jamie Gritton
613042491b Add support for methods to the OSD subsystem. Each object type has a
predefined set of methods, which are set in osd_register() and called
via osd_call().  Currently, no methods are defined, though prison
objects will have some in the future.

Expand the locking from a single per-type mutex to three different kinds
of locks (four if you include the requirement that the container
(e.g. prison) be locked when getting/setting data).  This clears up one
existing issue, as well as others added by the method support.

Approved by:	bz (mentor)
2009-02-21 11:15:38 +00:00
Marcel Moolenaar
4dedfc44e7 Add bootcode handling. 2009-02-21 07:01:21 +00:00
Xin LI
612f2a0575 Remove unnecessary opt* definations. 2009-02-21 03:53:06 +00:00
Xin LI
a751987ad5 Define extern **environ in global scope instead of in function. 2009-02-21 03:50:25 +00:00
Xin LI
61613f1912 Utilize calloc() instead of bzero'ing manually. 2009-02-21 03:43:20 +00:00
Xin LI
614595dcc7 Initialize 'sz' as 0. 2009-02-21 03:42:31 +00:00
Xin LI
1c8ee5f26c Utilize strlcpy(). 2009-02-21 03:38:46 +00:00
Andrew Thompson
10f99918d8 Revert r188878 for the moment, this breaks kdump. 2009-02-21 03:06:29 +00:00
Nathan Whitehorn
cd7a30c4d4 Include altivec.c, missed on previous commit r188860. This should unbreak the
build.
2009-02-21 02:15:08 +00:00
Andrew Thompson
66d5e912dc Provide compat typedefs for usb1. 2009-02-21 01:14:49 +00:00
Alexander Motin
3f9a1dcaeb Disable port hardware on detach. First switch it to slumber mode to
power-down peer transmitter, then disable completely.
Side effect of this is saving about 0.5W of power per detached device.
2009-02-20 23:17:52 +00:00
Sam Leffler
aa68c24fb7 mark nodes created by way of neighbor discovery need to be marked as ERP
so they get the correct tx parameters setup by node_settxparms
2009-02-20 23:05:05 +00:00
Marcel Moolenaar
2571133f87 Don't read the TOC for DIOCGPROVIDERALIAS. This causes the
acd code to create new provider (?), but not from an expected
context, which results in a panic (GEOM topology not held).
2009-02-20 23:01:27 +00:00
Alexander Motin
ca6c2e3666 Fix typo: s/SLUMPER/SLUMBER/ 2009-02-20 22:46:24 +00:00
Sam Leffler
dc6592f82e correct SIFS setting; there is a 2usec adjustment between the calculated
value and what the hardware requires (based on inspection of INI values)

Submitted by:	Jiri Fojtasek <jiri.fojtasek@hlohovec.net>
2009-02-20 22:06:58 +00:00
Sam Leffler
9731c399d5 don't adjust core clk conversions for 1/2 and 1/4 rate channels; the
mac runs at full speed so doing this breaks conversion for ifs parameters

Submitted by:	Felix Fietkau <nbd@openwrt.org>
2009-02-20 22:05:08 +00:00
Sam Leffler
a4b3c7a506 o reset aggressive mode flag; it was being left set after marking an
interface down
o only allow the first vap to initialize shared wme parameters
2009-02-20 21:57:05 +00:00
Sam Leffler
67ce310a5a misc cleanup of wme parameter setting 2009-02-20 21:55:23 +00:00
Alexander Motin
26159d4874 Reduce soft-reset assertion time from 5ms to 50us.
ATA specification declares minimal reset time of 5us. SATA keeps it, but
requires devices to handle commands transmitted even one by one without
any gap.
2009-02-20 20:29:32 +00:00
Alexander Motin
53fb2a7ac9 Disable port interrupts before doing PHY reset.
PHY reset causes drive connect/disconnect events, unwanted at this moment.
2009-02-20 20:20:00 +00:00
Nathan Whitehorn
1ac37bcb77 Add Altivec support for supported CPUs. This is derived from the FPU support
code, and also reducing the size of trapcode to fit inside a 32 byte handler
slot.

Reviewed by:	grehan
MFC after:	2 weeks
2009-02-20 17:48:40 +00:00
Alan Cox
9d13a605d4 Eliminate stale comments. 2009-02-20 16:19:34 +00:00
Randall Stewart
ea44232b3a Add the add-stream capability. Still needs more
testing..

MFC after:	1 month
2009-02-20 15:03:54 +00:00
Michael Reifenberger
d9d641af77 Delete files which serve no purpose in this environment.
Inspired by: simon@
2009-02-20 14:53:49 +00:00
Randall Stewart
186414058a Fix a bug. The sending was being restricted improperly by
the max_burst. It should only be gated by cwnd in the
lower level send.

Obtained from:	Michael Tuexen
MFC after:	1 week.
2009-02-20 14:33:45 +00:00
Luigi Rizzo
841a767a94 when initializing, also build _includes and _libraries
On passing, fix a wrong comment

MFC after:	3 days
2009-02-20 14:28:56 +00:00
Alexander Motin
72dc9f05dd Fix pc98 build error due to missing variable.
Submitted by:	avg
2009-02-20 14:10:23 +00:00
Ed Schouten
0eee862a54 Don't make Linux stat() open character devices to resolve its name.
The existing code calls kern_open() to resolve the vnode of a pathname
right after a stat(). This is not correct, because it causes random
character devices to be opened in /dev. This means ls'ing a tape
streamer will cause it to rewind, for example. Changes I have made:

- Add kern_statat_vnhook() to allow binary emulators to `post-process'
  struct stat, using the proper vnode.

- Remove unneeded printf's from stat() and statfs().

- Make the Linuxolator use kern_statat_vnhook(), replacing
  translate_path_major_minor_at().

- Let translate_fd_major_minor() use vp->v_rdev instead of
  vp->v_un.vu_cdev.

Result:

	crw-rw-rw- 1 root root   0, 14 Feb 20 13:54 /dev/ptmx
	crw--w---- 1 root adm  136,  0 Feb 20 14:03 /dev/pts/0
	crw--w---- 1 root adm  136,  1 Feb 20 14:02 /dev/pts/1
	crw--w---- 1 ed   tty  136,  2 Feb 20 14:03 /dev/pts/2

Before this commit, ptmx also had a major number of 136, because it
silently allocated and deallocated a pseudo-terminal. Device nodes that
cannot be opened now have proper major/minor-numbers.

Reviewed by:	kib, netchild, rdivacky (thanks!)
2009-02-20 13:05:29 +00:00
Mike Makonnen
3d919b7521 Doh! r188813 modified an auto-generated file. Fix it for real:
o grammar fix
  o remove mention of libkse

Submitted by:	Niclas Zeising <niclas.zeising@gmail.com>
2009-02-20 11:09:55 +00:00
Alexander Motin
53963e588a Handle nForce MCP67 and MCP73 SATA controllers as AHCI. They report itself
as ATA RAID, but generic ATAPCI driver unable to detect drives there. AHCI
driver reported to handle them fine. Linux does the same.

Submitted by:	Andrey V. Elsukov on stable@
2009-02-20 08:49:56 +00:00
Scott Long
63b9228b0b Tell CAM that CISS logical devices support tagged queueing. This fixes
the low "max device openings" count that has led to poor performance in
FreeBSD 7.0 and 7.1
2009-02-20 07:43:43 +00:00
Scott Long
9d98ff4d69 Tell CAM that SPI disconnect works, which in turn will let it use tags.
This fixes the low "max device openings" count that has lead to poor
performance in FreeBSD 7.0 and 7.1.

Extra thanks goes to Mike Tancsa at Sentex for providing a debug system for
this.
2009-02-20 07:40:54 +00:00
Scott Long
934dec8c2f Add basic support for DDF, often found on Adaptec HostRAID controllers.
Spares and rebuilds are not supported, so this code should be considered
for entertainment purposes only.
2009-02-20 06:10:12 +00:00
Marcel Moolenaar
59c532c500 Provide compatibility symlink for logical partitions:
1.  Extend geom_dev by having it create the symlink (i.e. call
    make_dev_alias) based on the DIOCGPROVIDERALIAS ioctl.
    In this way the functionaility is generic and thus usable
    by any geom/provider.
2.  Have g_part handle said ioctl through the devalias method,
    so that it's under control of the scheme itself. By design
    the alias will not be created for newly added partitions.
2009-02-20 04:48:40 +00:00
Marcel Moolenaar
507a0d4a6c Fix an infinite loop created when the last logical partition is
removed.
2009-02-20 04:10:31 +00:00
Beech Rintoul
4e8204fbc1 - Add glarkin and mva to mentor section 2009-02-20 02:48:58 +00:00
Luigi Rizzo
634eb2b0df use /boot/loader by default, because the boot code seems to
have problems with kernels larger than 4MB.
Add a flag to avoid the /boot/loader and use the old method.

Add support for an additional makefile to perform custom manipulation
(this is not documented yet).

Add support for building an ISO image (not complete)
2009-02-20 00:05:33 +00:00
Luigi Rizzo
85fb3bcbb7 update 'sio' with 'uart' and apply related changes. 2009-02-19 23:29:05 +00:00
John Baldwin
03964c8e09 Enable caching of negative pathname lookups in the NFS client. To avoid
stale entries, we save a copy of the directory's modification time when
the first negative cache entry was added in the directory's NFS node.
When a negative cache entry is hit during a pathname lookup, the parent
directory's modification time is checked.  If it has changed, all of the
negative cache entries for that parent are purged and the lookup falls
back to using the RPC.  This required adding a new cache_purge_negative()
method to the name cache to purge only negative cache entries for a given
directory.

Submitted by:	mohans, Rick Macklem, Ricardo Labiaga @ NetApp
Reviewed by:	mohans
2009-02-19 22:28:48 +00:00
John Baldwin
5428c66130 When fetching attributes for a file for NFSv3 mounts, do not perform an
opportunistic ACCESS RPC to populate both the access and attribute caches
of the file and instead always use a GETATTR RPC.  On many modern NFS
servers, an ACCESS RPC is much more expensive to service than a GETATTR
RPC.

Submitted by:	mohans
2009-02-19 22:18:00 +00:00
John Baldwin
3e057a2477 Don't clear the attribute cache of a file when it is closed. A subsequent
open() of the same file will load fresh attributes, so they do not need to
be explicitly flushed in close() to guarantee close to open consistency.
However, other file desciptors may still reference this file and clearing
the attributes in close() forces those other file descriptors to fetch
fresh attributes the next time they need them.

Reviewed by:	mohans
MFC after:	1 week
2009-02-19 22:10:39 +00:00
Roman Divacky
1cf0b25f91 Display an error message when the requested mode is not known. So the user can
distinguish between a typo in the mode name and that the device does not
support a certain mode (till now both causes show the same result, i.e. the old
mode is displayed).

Submitted by:	Christoph Mallon <christoph.mallon gmx.de>
Approved by:	kib (mentor)
2009-02-19 20:45:37 +00:00
Warner Losh
b3ba0b1ed2 Include proper header files for system functions that are used and
that gcc complains about this code changing from the built-in
versions.
2009-02-19 20:07:59 +00:00
Warner Losh
21fc9f2bcc These warnings are only relevant on NetBSD it seems. They don't seem
to be relevant to FreeBSD at all.
2009-02-19 19:53:58 +00:00