85888 Commits

Author SHA1 Message Date
ae
c39b1f9995 Add make_dev_alias_p() function. It is similar to make_dev_alias(),
but it may return an error like make_dev_p() does.

Reviewed by:	kib (previous version)
MFC after:	2 weeks
2011-05-03 18:54:18 +00:00
jhb
f4c1badc8d Enable the new PCI-PCI bridge driver on amd64 and i386 by default. It can
be disabled via 'nooptions NEW_PCIB'.
2011-05-03 18:23:11 +00:00
jhb
51bd96b572 Reimplement how PCI-PCI bridges manage their I/O windows. Previously the
driver would verify that requests for child devices were confined to any
existing I/O windows, but the driver relied on the firmware to initialize
the windows and would never grow the windows for new requests.  Now the
driver actively manages the I/O windows.

This is implemented by allocating a bus resource for each I/O window from
the parent PCI bus and suballocating that resource to child devices.  The
suballocations are managed by creating an rman for each I/O window.  The
suballocated resources are mapped by passing the bus_activate_resource()
call up to the parent PCI bus.  Windows are grown when needed by using
bus_adjust_resource() to adjust the resource allocated from the parent PCI
bus.  If the adjust request succeeds, the window is adjusted and the
suballocation request for the child device is retried.

When growing a window, the rman_first_free_region() and
rman_last_free_region() routines are used to determine if the front or
end of the existing I/O window is free.  From using that, the smallest
ranges that need to be added to either the front or back of the window
are computed.  The driver will first try to grow the window in whichever
direction requires the smallest growth first followed by the other
direction if that fails.

Subtractive bridges will first attempt to satisfy requests for child
resources from I/O windows (including attempts to grow the windows).  If
that fails, the request is passed up to the parent PCI bus directly
however.

The PCI-PCI bridge driver will try to use firmware-assigned ranges for
child BARs first and only allocate a "fresh" range if that specific range
cannot be accommodated in the I/O window.  This allows systems where the
firmware assigns resources during boot but later wipes the I/O windows
(some ACPI BIOSen are known to do this) to "rediscover" the original I/O
window ranges.

The ACPI Host-PCI bridge driver has been adjusted to correctly honor
hw.acpi.host_mem_start and the I/O port equivalent when a PCI-PCI bridge
makes a wildcard request for an I/O window range.

The new PCI-PCI bridge driver is only enabled if the NEW_PCIB kernel option
is enabled.  This is a transition aide to allow platforms that do not
yet support bus_activate_resource() and bus_adjust_resource() in their
Host-PCI bridge drivers (and possibly other drivers as needed) to use the
old driver for now.  Once all platforms support the new driver, the
kernel option and old driver will be removed.

PR:		kern/143874 kern/149306
Tested by:	mav
2011-05-03 17:37:24 +00:00
gnn
2f3429a5d8 Add in support for multicast.
Submitted by:	Sriram Rapuru at @ Wipro for Exar Inc.
MFC after:	2 weeks
2011-05-03 15:58:24 +00:00
avg
7cd753f7a2 SNDCTL_DSP_GETIPTR: set pointer to sndbuf_getfreeptr()
Rationale:
- unlike current behavior this seems to be compliant with OSS
  specification:
  http://manuals.opensound.com/developer/SNDCTL_DSP_GETIPTR.html
- this seems to meet expectations of some OSS programs compiled for or
  ported from Linux, e.g. ALSA OSS plugin
- this doesn't seem to break any programs as far as current testing
  shows

Tested by:	nox, hselasky
MFC after:	4 days
2011-05-03 15:50:22 +00:00
mav
bdaa8f28e7 Do not report legacy unit numbers (do not create legacy aliases) for disks
on port multiplier ports above first two. They don't fit into ATA_STATIC_ID
scheme and so can't be mapped properly. No need to pollute dev.
2011-05-03 13:16:02 +00:00
trasz
752ffacc69 Change the way rctl interfaces with jails by introducing prison_racct
structure, which acts as a proxy between them.  This makes jail rules
persistent, i.e. they can be added before jail gets created, and they
don't disappear when the jail gets destroyed.
2011-05-03 07:32:58 +00:00
marcel
2bce8b194c Fix corner case where the size is a power of two. 2011-05-03 01:43:04 +00:00
davidch
58042dc334 - Fixed a typo in an if() statement when setting flow control for MTU
greater than 5000 bytes.

Submitted by:	yongari
2011-05-02 23:34:33 +00:00
bz
b95b469170 Add LINT-NOINET6 which we have inofficially supported for years
and our users complained when broken.
Similarly add LINT-NOINET, and for at least documentation purposes add
LINT-NOIP (which compiles out INET and INET6 and couple of NIC drivers).

Tested by:	make universe (if you broke it since you fix it)
Reviewed by:	gnn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	2 weeks
2011-05-02 22:54:24 +00:00
dim
20dc4d4d1e Clang r130700 can now compile sys/boot/i386/boot2 with room to spare. 2011-05-02 21:13:08 +00:00
jhb
7c6829ee7d Handle a rare edge case with nearly full TCP receive buffers. If a TCP
buffer fills up causing the remote sender to enter into persist mode, but
there is still room available in the receive buffer when a window probe
arrives (either due to window scaling, or due to the local application
very slowing draining data from the receive buffer), then the single byte
of data in the window probe is accepted.  However, this can cause rcv_nxt
to be greater than rcv_adv.  This condition will only last until the next
ACK packet is pushed out via tcp_output(), and since the previous ACK
advertised a zero window, the ACK should be pushed out while the TCP
pcb is write-locked.

During the window while rcv_nxt is greather than rcv_adv, a few places
would compute the remaining receive window via rcv_adv - rcv_nxt.
However, this value was then (uint32_t)-1.  On a 64 bit machine this
could expand to a positive 2^32 - 1 when cast to a long.  In particular,
when calculating the receive window in tcp_output(), the result would be
that the receive window was computed as 2^32 - 1 resulting in advertising
a far larger window to the remote peer than actually existed.

Fix various places that compute the remaining receive window to either
assert that it is not negative (i.e. rcv_nxt <= rcv_adv), or treat the
window as full if rcv_nxt is greather than rcv_adv.

Reviewed by:	bz
MFC after:	1 month
2011-05-02 21:05:52 +00:00
marius
74d287b587 Correct spelling in comments.
Submitted by:	brucec
2011-05-02 21:04:23 +00:00
marius
6ea3976efc Fix an logic bug which caused jumbo buffers to not be synced.
Reported and tested by: Michael Moll

MFC after:	3 days
2011-05-02 20:45:19 +00:00
davidch
3189674dfc - Re-committed r220603 which was accidentally backed out by an earlier
commit.
- Fixed a bug in an unused debug macro.

MFC after:	One week.
2011-05-02 20:43:24 +00:00
marius
f8dccae028 Probe the PHY accompanying BCM57765.
Tested by: Paul Thornton

MFC after:	1 week
2011-05-02 20:37:30 +00:00
jhb
b36eb2946b The ACPI Host-PCI bridge driver actually supports multiple domains via
the optional _SEG function.  Return that value (ap->segment) rather than
0 for the pcib domain ivar.
2011-05-02 19:02:30 +00:00
delphij
0d134f1314 Correct a typo. According to Intel document 318914, the Tj(max) for Core 2
Duo Mobile CPUs should be 105.

Noticed by:	Mark Johnston <markjdb gmail.com>
MFC after:	3 days
2011-05-02 18:41:54 +00:00
marcel
7bd34e0180 Don't use the whole region 5 for KVA, because the CPU may not implement all
of the 61 bits available within the region for virtual addressing.  Since
there's no good way for us to map out the gap in the virtual address space,
limit KVA to the architectural minimum implemented address bits. This still
gives us 1 petabyte of KVA, so no worries.
2011-05-02 17:49:05 +00:00
jkim
44b010200b Fix build with clang. Please note there is an LLVM/Clang PR:
http://llvm.org/bugs/show_bug.cgi?id=9379

Reported by:	rpaulo, dim
2011-05-02 17:08:36 +00:00
bschmidt
07db5669ea All PCI based wireless drivers seem to be explicitly removed from the
PAE kernel config, do that also for those added to GENERIC lately.
2011-05-02 16:51:02 +00:00
tuexen
3ae840e8a9 Some more cleanups related to an kernel without INET.
MFC after: 1 week
2011-05-02 15:53:00 +00:00
jhb
4637eb873e Don't explicitly list pci_write_ivar() for bus_write_ivar, the method is
already inherited from the PCI bus driver.
2011-05-02 15:01:28 +00:00
jhb
6c7b490838 Add an entry for the Kuroutoshikou SERIAL4P-LPPCI2 which uses an Oxford
4 port chip but with a nonstandard clock.

PR:		kern/104212
Submitted by:	Shuichi KITAGUCHI  kit of ysnb net
MFC after:	1 week
2011-05-02 14:34:03 +00:00
jhb
3e97a80649 Add implementations of BUS_ADJUST_RESOURCE() to the PCI bus driver,
generic PCI-PCI bridge driver, x86 nexus driver, and x86 Host to PCI bridge
drivers.
2011-05-02 14:13:12 +00:00
adrian
9ad3a44ea1 Add in the work-around for the AR8316 gige switch PHY.
This allows the ethernet to function on the PB92 board.

Submitted by:	Luiz Otavio O Souza
2011-05-02 10:42:19 +00:00
brucec
af2313da97 Add -Wmissing-include-dirs to CWARNFLAGS, so tinderbox will punish those
developers committing new code with broken include directories.
Fix a few whitespace issues.
Improve a couple of comments.
-W is now deprecated and is referred to as -Wextra (see gcc(1)).

Submitted by:	arundel
2011-05-02 10:35:27 +00:00
adrian
995d238fce Add documentation to sys/conf/options pointing out that AH_SUPPORT_AR9130
shouldn't be enabled by default unless you're truely building for the
AR913x platform.
2011-05-02 05:39:43 +00:00
adrian
a10a894ed3 Some AR724x PCIe fixes, which should wrap up the first round
of endian-ness issues with the AR724x.

From Luiz:

* Fix the bus space tag used so endian-ness is correctly handled;
* Only do the workaround for the AR7240; AR7241/AR7242 (PB92)
  don't require this

From me:

* Add a read flush from openwrt

Submitted by:	Luiz Otavio O Souza
2011-05-01 23:32:37 +00:00
rmacklem
41a79afc7f Add the kernel support needed to zero out the nfsstats
structure for the new NFS subsystem. This will be used
by nfsstats.c to implement the "-z" option.

MFC after:	2 weeks
2011-05-01 22:19:52 +00:00
bschmidt
e16e83cd8d These are of course i386/amd64 only. 2011-05-01 19:05:54 +00:00
bschmidt
cf422ee27c Add files for wpi(4) 2011-05-01 18:42:56 +00:00
bschmidt
c823c1bc68 No need for htole32(), which is an uint8_t. 2011-05-01 18:41:57 +00:00
bschmidt
bee0509ed3 Add the remaining wireless drivers.
Discussed with:	joel
2011-05-01 13:26:34 +00:00
kib
b58a6812d7 Fix typos.
Noted by:	Fabian Keil <freebsd-listen fabiankeil de>
Pointy hat to:	kib
MFC after:	1 week
2011-04-30 22:46:02 +00:00
marcel
a524773fc0 Stop linking against a direct-mapped virtual address and instead
use the PBVM. This eliminates the implied hardcoding of the
physical address at which the kernel needs to be loaded. Using the
PBVM makes it possible to load the kernel irrespective of the
physical memory organization and allows us to replicate kernel text
on NUMA machines.

While here, reduce the direct-mapped page size to the kernel's
page size so that we can support memory attributes better.
2011-04-30 20:49:00 +00:00
thompsa
fc83a48265 LACP frames must not be send VLAN-tagged, check for that before processing.
PR:		kern/156743
Submitted by:	Dmitrij Tejblum
MFC after:	1 week
2011-04-30 20:34:52 +00:00
marcel
9a015a5a31 Turn PBVM page table entries into PTEs so that they can be inserted
into the TLB as-is.

While here, have ia64_platform_alloc() return ~0UL on failure.
2011-04-30 20:16:49 +00:00
bz
cbe6b32c84 Update carp, gre and pf module builds to be depenent on INET and/or
INET6_SUPPORT.

Reviewed by:	gnn (slightly earlier version without pf)
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	2 weeks
2011-04-30 17:59:54 +00:00
bz
c27718afac Allow MKMODULESENV being preset from other sources like makeoptions
kernel configurations to apply WITH_* WITHOUT_* knobs we use for
module building as well to restrict or control opt_*.h flags.

Reviewed by:	imp, +
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	2 weeks
2011-04-30 17:51:39 +00:00
bz
2bac7bb27f Fix a mismerge from p4 in that in_localaddr() is not available without INET.
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	4 days
2011-04-30 16:30:18 +00:00
mm
b1b8237ae6 Fix deduplicated zfs receive
(dmu_recv_stream builds incomplete guid_to_ds_map)

Illumos-gate changeset:	13329:c48b8bf84ab7
MFC together with v28

Approved by:	pjd
Obtained from:	Illumos (Bug #755)
2011-04-30 14:52:49 +00:00
bz
42c239a8e8 Fis a problem with r221258 that mac is still needed in case for ient6 only
for mac_inet.c.

Reported by:	Luiz Otavio O Souza (lists.br gmail.com)
MFC after:	4 days
2011-04-30 14:22:45 +00:00
kib
4cc947d01c Clarify the comment.
MFC after:	1 week
2011-04-30 13:49:03 +00:00
bz
85fb9d937d After r221249 allow SCTP to be compiled in an IPv6 only environment as well.
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	10 days
2011-04-30 12:39:47 +00:00
adrian
c338681a46 An example configuration file for the Atheros PB92.
TODO:

* pcie doesn't yet work properly, I'm working on it.
* if_arge doesn't work - it's likely the phy mask is wrong; again I'm working on it.
2011-04-30 12:25:09 +00:00
bz
ec924d46a6 Add some more missing optional dependencies on inet6, not only inet,
to get the files for an IPv6 only kernel as well, remove extra inet6
option where not needed.

Reviewed by:	gnn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	4 days
2011-04-30 12:07:31 +00:00
adrian
6ab4da9340 The AR724x SoC's require the irq status line to be acked/cleared.
This allows console IO to occur correctly once the kernel is in multi-user
mode.

Submitted by:	Luiz Otavio O Souza
2011-04-30 12:07:15 +00:00
adrian
d8b9be857c Call the DDR FIFO flush method when IP2 interrupts occur. 2011-04-30 11:56:04 +00:00
adrian
e032e84ff6 Flip off debugging for now. 2011-04-30 11:40:31 +00:00