Commit Graph

137835 Commits

Author SHA1 Message Date
Robert Watson
b9a9803757 Add stack_print_ddb() to the synposis of stack(9), add mlink for it; fix
stack_print(9) mlink.

Spotted by:	attilio
2008-03-14 13:13:37 +00:00
Bjoern A. Zeeb
8cfbd2995b Correct reference counting on the SP for outgoing IPv6 IPsec connections.
PR:		121374
Reported by:	Cyrus Rahman (crahman gmail.com)
Tested by:	Cyrus Rahman (crahman gmail.com)
MFC after:	5 days
2008-03-14 11:55:04 +00:00
Bjoern A. Zeeb
39d8cf90cb #if 0 out a currently unsued (and incomplete) function: ip6_ipsec_mtu().
No need to compile 'dead' code.
I am leaving it in because we will have to review the concept and
should use the common function in various places.

MFC after:	5 days
2008-03-14 11:44:30 +00:00
Bjoern A. Zeeb
41aa71dd3e Replace the function name in two identical printfs
by __func__, __LINE__ so we can distinguish them
when people report a problem.

PR:		121373
MFC after:	5 days
2008-03-14 11:09:11 +00:00
Yoshihiro Takahashi
8ab7c8f322 Add stub for pc98. 2008-03-14 09:00:04 +00:00
Joseph Koshy
bcbe65a85f - Document Pentium and Pentium MMX events.
- Update (c) years and the manual page's date.
2008-03-14 06:22:03 +00:00
Joseph Koshy
a3d7db55cc Correct a typo. 2008-03-14 06:16:18 +00:00
John Baldwin
c9107e85d9 Fix a silly bogon which prevented all the CPUs that are tagged as interrupt
receivers from being given interrupts if any CPUs in the system were not
tagged as interrupt receivers that I introduced when switching the x86
interrupt code to track CPUs via FreeBSD CPU IDs rather than local APIC
IDs.  In practice this only affects systems with Hyperthreading (though
disabling HTT in the BIOS would workaround the issue) as that is the only
case currently where one can have CPUs that aren't tagged as interrupt
receivers.  On a Dell SC1425 test box with 2 x Xeon w/ HTT (so 4 logical
CPUs of which 2 were interrupt receivers) the result was that all
device interrupts were sent to CPU 0.

MFC after:	1 week
Pointy hat to:	jhb
2008-03-14 03:44:42 +00:00
Edwin Groothuis
ae667c3df0 Add projects-all collection to cvs-supfile
PR:		misc/121680
Submitted by:	"Philip M. Gollucci" <pgollucci@p6m7g8.com>
Approved by:	grog@ (mentor)
MFC after:	1 week
2008-03-13 22:36:02 +00:00
John Baldwin
5217af301c Rework how the nexus(4) device works on x86 to better handle the idea of
different "platforms" on x86 machines.  The existing code already handles
having two platforms: ACPI and legacy.  However, the existing approach was
rather hardcoded and difficult to extend.  These changes take the approach
that each x86 hardware platform should provide its own nexus(4) driver (it
can inherit most of its behavior from the default legacy nexus(4) driver)
which is responsible for probing for the platform and performing
appropriate platform-specific setup during attach (such as adding a
platform-specific bus device).  This does mean changing the x86 platform
busses to no longer use an identify routine for probing, but to move that
logic into their matching nexus(4) driver instead.
- Make the default nexus(4) driver in nexus.c on i386 and amd64 handle the
  legacy platform.  It's probe routine now returns BUS_PROBE_GENERIC so it
  can be overriden.
- Expose a nexus_init_resources() routine which initializes the various
  resource managers so that subclassed nexus(4) drivers can invoke it from
  their attach routine.
- The legacy nexus(4) driver explicitly adds a legacy0 device in its
  attach routine.
- The ACPI driver no longer contains an new-bus identify method.  Instead
  it exposes a public function (acpi_identify()) which is a probe routine
  that the MD nexus(4) drivers can use to probe for ACPI.  All of the
  probe logic in acpi_probe() is now moved into acpi_identify() and
  acpi_probe() is just a stub.
- On i386 and amd64, an ACPI-specific nexus(4) driver checks for ACPI via
  acpi_identify() and claims the nexus0 device if the probe succeeds.  It
  then explicitly adds an acpi0 device in its attach routine.
- The legacy(4) driver no longer knows anything about the acpi0 device.
- On ia64 if acpi_identify() fails you basically end up with no devices.
  This matches the previous behavior where the old acpi_identify() would
  fail to add an acpi0 device again leaving you with no devices.

Discussed with:	imp
Silence on:	arch@
2008-03-13 20:39:04 +00:00
Coleman Kane
6c62df7e49 Replace the non-MPSAFE timeout(9) API in ffs_softdep.c with the MPSAFE
callout_* API (e.g. callout_init_mtx(9)). This was one of the numerous
items on the http://wiki.freebsd.org/SMPTODO list.

Reviewed by:	imp, obrien, jhb
MFC after:	1 week
2008-03-13 20:15:48 +00:00
John Baldwin
d0234f752f Use the SMAP data from the loader if it is provided instead of using
virtual 86 mode to query the BIOS directly.  This is needed for certain
HP machines whose BIOS only provide an SMAP when invoked from real mode.
On such machines the loader will be able to query the SMAP successfully
due to the recent BTX changes, but the kernel will not.

One thing I'm not sure of is if we can skip the INT 12h probe altogether
if we have the SMAP from the loader as it seems that we do the INT 12h
probe to setup enough state so we can use vm86 to call the BIOS.

MFC after:	1 week
2008-03-13 18:56:53 +00:00
David E. O'Brien
858a959376 Vim function to style(9).
Issue ':call FreeBSD_Style()' while editing a file.

Submitted by:	scf
2008-03-13 18:52:46 +00:00
Christian Brueffer
3e353b5fb7 Add an include file from the removed XRPU driver.
PR:		121654
Submitted by:	pluknet <pluknet@gmail.com>
Approved by:	rwatson (mentor)
2008-03-13 18:17:46 +00:00
David E. O'Brien
149c7c86d2 style(9) & style.Makefile(9)
Reviewed by:	raj
2008-03-13 17:54:21 +00:00
David E. O'Brien
8757b00e1e uuidgen has been repo-copied from usr.bin/ to bin/ to match its "new"
(2007/04/09) installation location.
2008-03-13 17:38:06 +00:00
Christian Brueffer
51b6df2d16 - Use an uppercase provider name in the example, to make the name change
after labeling the provider more obvious. (1)
- Correct nomenclature usage

PR:		121487 (1)
Submitted by:	Anatoly Borodin <anatoly.borodin@gmail.com>
MFC after:	3 days
2008-03-13 15:37:02 +00:00
Coleman Kane
e42e0b8669 Add the module dependency on the mem(4) module. This will fix the module
failing to load on a kernel that has "nodevice mem" in the config. It will
now properly bring in the mem(4) module.

Submitted by:	antoine
Reviewed by:	imp
MFC after:	1 week
2008-03-13 14:08:41 +00:00
Konstantin Belousov
22eca0bf45 Since version 4.3, gcc changed its behaviour concerning the i386/amd64
ABI and the direction flag, that is it now assumes that the direction
flag is cleared at the entry of a function and it doesn't clear once
more if needed. This new behaviour conforms to the i386/amd64 ABI.

Modify the signal handler frame setup code to clear the DF {e,r}flags
bit on the amd64/i386 for the signal handlers.

jhb@ noted that it might break old apps if they assumed DF == 1 would be
preserved in the signal handlers, but that such apps should be rare and
that older versions of gcc would not generate such apps.

Submitted by:	Aurelien Jarno <aurelien aurel32 net>
PR:	121422
Reviewed by:	jhb
MFC after:	2 weeks
2008-03-13 10:54:38 +00:00
Ruslan Ermilov
53bbf5aa35 Fix bugs in previous revision (missing comma, misspelled syscall name). 2008-03-13 10:33:24 +00:00
Ruslan Ermilov
517d383637 Remove trailing whitespace. 2008-03-13 10:26:17 +00:00
Ruslan Ermilov
c130b9f1af Add missing section number. 2008-03-13 10:25:30 +00:00
Konstantin Belousov
ea39de9f93 Add missed parentheses 2008-03-13 09:52:48 +00:00
David Xu
83660cf974 Add const qualifier to cpuset mask's pointer, since the cpuset mask should
be not changed by the system call.
2008-03-13 02:56:11 +00:00
David Xu
9fbfd54e8e In file sem_timewait.3, remove reference to SYSV semphore in SEE ALSO
section, sync it with sem_wait.3.
2008-03-13 01:53:28 +00:00
Jeff Roberson
f4d77e9e54 PR 117603
- Close a sleepqueue signal race by interlocking with the per-process
   spinlock.  This was mistakenly omitted from the thread_lock patch and
   has been a race since.

MFC After:	1 week
PR:		bin/117603
Reported by:	Danny Braniss <danny@cs.huji.ac.il>
2008-03-13 00:46:12 +00:00
Jeff Roberson
cffe6e824b - When running a new command cause cpuset to operate on the per-thread mask
by default rather than the setmask.  This is consistent with the linux
   tool and more consistent with the notion that the default level is
   the process level.  The cpuset mask can still be modified by specifying
   the -c option.  You can not set the per-thread and cpuset mask in
   a single command.
 - Update the man page to reflect this change.

Contributed by:	gallatin
2008-03-12 23:54:40 +00:00
Xin LI
90eb3b443d This commit was generated by cvs2svn to compensate for changes in r177128,
which included commits to RCS files with non-trunk default branches.
2008-03-12 23:01:33 +00:00
Xin LI
9a5e637124 Reapply a bugfix that was done as sh.lex.c,v 1.1.1.8 2008-03-12 23:01:33 +00:00
Jeff Roberson
66257bc8d9 - The P_SA flag has been removed. Don't reference it in a KASSERT. 2008-03-12 22:17:06 +00:00
Jeff Roberson
eab82b2ebe - Fix build breakage; there was a reference to a removed syscall in
a KASSERT().  Attempt to cleanup the comment to reflect reality.
2008-03-12 22:14:14 +00:00
John Baldwin
391664b110 The variable MTRR registers actually have variable-sized PhysBase and
PhysMask fields based on the number of physical address bits supported
by the current CPU.  The old code assumed 36 bits on i386 and 40 bits on
amd64.  In truth, all Intel CPUs up until recently used 36 bits (a newer
Intel CPU uses 38 bits) and all the Opteron CPUs used 40 bits.

In at least one case (the new Intel CPU) having the size of the mask field
wrong resulted in writing questionable values into the MTRR registers on
the application processors (BSP as well if you modify the MTRRs via
memcontrol or running X, etc.).  The result of the questionable physmask
was that all of memory was apparently treated as uncached rather than
write-back resulting in a very significant performance hit.

Fix this by constructing a run-time mask for the PhysBase and PhysMask
fields based on the number of physical address bits supported by the CPU.
All 64-bit capable CPUs provide a count of PA bits supported via the
0x80000008 extended CPUID feature, so use that if it is available.  If that
feature is not available, then assume 36 PA bits.

While I'm here, expand the (now-unused) macros for the PhysBase and
PhysMask fields to the current largest possible value (52 PA bits).

MFC after:	1 week
PR:		i386/120516
Reported by:	Nokia
2008-03-12 22:09:19 +00:00
John Baldwin
4cbd0e8984 MFamd64: Break up the probe logic in the mem_drvinit routines so it's
a bit easier to parse.
2008-03-12 21:44:46 +00:00
John Baldwin
f15a9cd288 Minimize diffs with i686_mem.c:
- A few whitespace changes I missed in the style(9) changes.
- Move M_MEMDESC to mem.c.
2008-03-12 21:43:50 +00:00
Kai Wang
a739eb8374 Current 'ar' read support in libarchive can only handle a GNU/SVR4
filename table whose size is less than 65536 bytes.

The original intention was to not consume the filename table, so the
client will have a chance to look at it. To achieve that, the library
call decompressor->read_ahead to read(look ahead) but do not call
decompressor->consume to consume the data, thus a limit was raised
since read_ahead call can only look ahead at most BUFFER_SIZE(65536)
bytes at the moment, and you can not "look any further" before you
consume what you already "saw".

This commit will turn GNU/SVR4 filename table into "archive format
data", i.e., filename table will be consumed by libarchive, so the
65536-bytes limit will be gone, but client can no longer have access
to the content of filename table.

'ar' support test suite is changed accordingly. BSD ar(1) is not
affected by this change since it doesn't look at the filename table.

Reported by:	erwin
Discussed with:	jkoshy, kientzle
Reviewed by:	jkoshy, kientzle
Approved by:	jkoshy(mentor), kientzle
2008-03-12 21:10:26 +00:00
John Baldwin
e249f70262 Relax the BIOS/OS sempahore handoff code to workaround different hard
hangs (one at boot, one at shutdown) in recent machines.  First, only try
to take ownership of the EHCI controller if the BIOS currently owns the
controller.  On a HP DL160 G5, the machine hangs when we try to take
ownership.  Second, don't bother trying to give up ownership of the
controller during shutdown.  It's not strictly required and a Dell DCS S29
hangs on shutdown after the config write.

Both of these changes match the behavior of the Linux EHCI driver.  I also
think both of these hangs are caused by bugs in the BIOS' SMM handler
causing it to get stuck in an infinite loop in SMM.

MFC after:	1 week
2008-03-12 20:57:17 +00:00
John Baldwin
4c134f3e80 Partially revert 1.95. It changed the probe for a mouse device to only
accept a mouse using the boot subclass.  Instead, restore the original
hid_is_collection() test and fallback to testing the interface class,
subclass, and protocol if that fails.

MFC after:	1 week
PR:		usb/118670
2008-03-12 20:20:36 +00:00
Sam Leffler
810df80181 fix inverted test that disabled ACK's on xmit 2008-03-12 20:03:31 +00:00
Sam Leffler
def2344db6 document device hints including new ones to control rx fifo trigger
MFC after:	2 weeks
2008-03-12 19:09:58 +00:00
Sam Leffler
823c77d78b add device hints to control the rx FIFO interrupt level on 16550A parts
PR:		kern/121421
Submitted by:	UEMURA Tetsuya
Reviewed by:	marcel
MFC after:	2 weeks
2008-03-12 19:09:20 +00:00
Remko Lodder
16630f3430 Add missing comma.
PR:		bin/121645
Submitted by:	OISHI Masakuni <yamasa at bsdhouse dot org>
Approved by:	imp (mentor, implicit for trivial changes)
MFC after:	3 days
2008-03-12 18:25:47 +00:00
Remko Lodder
4ee0aeea8a Add resume support to the agp_i810 family.
Submitted by:	"Robert Noland" <rnoland at 2hip dot net>
Reviewed by:	anholt
Approved by:	anholt, imp (mentor)
MFC after:	1 week
2008-03-12 18:23:39 +00:00
Rafal Jaworowski
772619e186 Convert TSEC watchdog to the new scheme.
Reviewed by:	imp, marcel
Approved by:	cognet (mentor)
2008-03-12 16:35:25 +00:00
Rafal Jaworowski
ecb1ab1761 Obtain TSEC h/w address from the parent bus (OCP) and not rely blindly on what
might be currently programmed into the registers.

Underlying firmware (U-Boot) would typically program MAC address into the
first unit only, and others are left uninitialized. It is now possible to
retrieve and program MAC address for all units properly, provided they were
passed on in the bootinfo metadata.

Reviewed by:	imp, marcel
Approved by:	cognet (mentor)
2008-03-12 16:32:08 +00:00
Rafal Jaworowski
7cc9e5030e Improve handling U-Boot's "eth%daddr" while PowerPC metadata preparation.
We're now more robust against cases of non-sorted and/or non-continuous
numbering of those entries.

Reviewed by:	imp, marcel
Approved by:	cognet (mentor)
2008-03-12 16:12:48 +00:00
Rafal Jaworowski
7572ed5a08 Eliminate artificial increasing of 'netdev_opens' counter in loader's net_open().
This was introduced as a workaround long time ago for some Alpha firmware
(which is now gone), and actually prevented net_close() to ever be
called.

Certain firmwares (U-Boot) need local shutdown operations to be performed on a
network controller upon transaction end: such platform-specific hooks are
supposed to be called via netif_close() (from within net_close()).

This change effectively reverts the following CVS commit:

    sys/boot/common/dev_net.c

    revision 1.7
    date: 2000/05/13 15:40:46;  author: dfr;  state: Exp;  lines: +2 -1
    Only probe network settings on the first open of the network device.
    The alpha firmware takes a seriously long time to open the network device
    the first time.

Also suppress excessive output while netbooting via loader, unless debugging.

While there, make sys/boot/uboot more style(9) compliant.

Reviewed by:	imp
Approved by:	cognet (mentor)
2008-03-12 16:01:34 +00:00
Joseph Koshy
484202faab Bring the behaviour of pmc_capabilities() and pmc_width() in line with
documentation: set 'errno' and return -1 in case of an error.

Update (c) years.
2008-03-12 15:51:32 +00:00
Joseph Koshy
ef4ba9be47 Describe return values from pmc_ncpu() and pmc_npmc() better. 2008-03-12 15:48:59 +00:00
Rafal Jaworowski
507ea268f2 Respect RF_SHAREABLE flag in ARM nexus_setup_intr()
Reviewed by:	imp
Approved by:	cognet (mentor)
2008-03-12 15:46:25 +00:00
Andrew Gallatin
47c2e9879b Remove dead code which makes a call to mem_range_attr_set().
This fixes a bug where mxge did not declare a dependancy on
mem(4), and failed to load with options nomem.

Pointed out by: antoine
2008-03-12 15:36:00 +00:00