Commit Graph

150970 Commits

Author SHA1 Message Date
Marius Strobl
935f345ea4 MFC: r203830, r203831
Use the SUNW,{d,i}tlb-load methods for entering locked TLB entries like
OpenBSD and OpenSolaris do instead of fiddling with the MMUs ourselves.
Unlike direct access the firmware methods don't automatically use the
next free (?) TLB slot, instead the slot to be used has to be specified.
We allocate the TLB slots for the kernel top-down as OpenSolaris suggests
that the firmware will always allocate the ones for its own use bottom-up.
Besides being simpler, according to OpenBSD using the firmware methods is
required to allow booting on Sun Fire E10K with multi-systemboard domains.
2010-03-30 20:05:20 +00:00
Marius Strobl
0a1e6ecc1f MFC: r203829
- Assert that HEAPSZ is a multiple of PAGE_SIZE as at least the firmware
  of Sun Fire V1280 doesn't round up the size itself but instead lets
  claiming of non page-sized amounts of memory fail.
- Change parameters and variables related to the TLB slots to unsigned
  which is more appropriate.
- Search the whole OFW device tree instead of only the children of the
  root nexus device for the BSP as starting with UltraSPARC IV the 'cpu'
  nodes hang off of from 'cmp' (chip multi-threading processor) or 'core'
  or combinations thereof. Also in large UltraSPARC III based machines
  the 'cpu' nodes hang off of 'ssm' (scalable shared memory) nodes which
  group snooping-coherency domains together instead of directly from the
  nexus.
- Add support for UltraSPARC IV and IV+ BSPs. Due to the fact that these
  are multi-core each CPU has two Fireplane config registers and thus the
  module/target ID has to be determined differently so the one specific
  to a certain core is used. Similarly, starting with UltraSPARC IV the
  individual cores use a different property in the OFW device tree to
  indicate the CPU/core ID as it no longer is in coincidence with the
  shared slot/socket ID.
  While at it additionally distinguish between CPUs with Fireplane and
  JBus interconnects as these also use slightly different sizes for the
  JBus/agent/module/target IDs.
- Check the return value of init_heap(). This requires moving it after
  cons_probe() so we can panic when appropriate. This should be fine as
  the PowerPC OFW loader uses that order for quite some time now.
2010-03-30 20:02:26 +00:00
Marius Strobl
4139c876fa MFC: r203731
Some style(9) fixes
2010-03-30 19:52:45 +00:00
Marius Strobl
e73d23dad8 MFC: r203341
- Remove the BUS_HANDLE_MIN checking in the __BUS_DEBUG_ACCESS macro;
  for UPA it should have fulfilled its purpose by now and Fireplane-
  and JBus-based machines are way to messy in organization to implement
  something equivalent.
- Fix a bunch of style(9) bugs.
2010-03-30 19:37:47 +00:00
Marius Strobl
592227a6e8 MFC: r203335
- Const'ify the bus_stream_asi and bus_type_asi arrays.
- Replace hard-coded functions names missed in bus_machdep.c with __func__.
- Break some long lines.
2010-03-30 19:36:00 +00:00
Marius Strobl
e18f909f8d MFC: r203334
Sync with the other archs and declare the memory location referenced by
the address argument of the bus_space_write_multi_*() familiy as const.
2010-03-30 19:33:09 +00:00
Marius Strobl
aa1750167b MFC: r205410
Avoid aliasing which leads to incorrect results when compiling with the
default strict aliasing rules.

PR:		144900
Submitted by:	Peter Jeremy
2010-03-30 19:13:37 +00:00
Marius Strobl
1185606b8c MFC: r205397
- While SPARC V9 allows tininess to be detected either before or after
  rounding (impl. dep. #55), the SPARC JPS1 responsible for SPARC64 and
  UltraSPARC processors defines that in all cases tinyness is detected
  before rounding, therefore rounding up to the smallest normalised
  number should set the underflow flag.
- If an infinite result is rounded down, the result should have an
  exponent 1 less than the value for infinity.

PR:		144900
Submitted by:	Peter Jeremy
2010-03-30 19:08:02 +00:00
Marius Strobl
fa38e6334c MFC: r205396
Division should take both arguments' signs into account when the
the dividend is infinity or zero and the divisor is not the same.

PR:		144900
Submitted by:	Peter Jeremy
2010-03-30 19:06:31 +00:00
Marius Strobl
35cbfc2ca0 MFC: r205395
FPU_DEBUG requires <stdio.h>.

PR:		144900
Submitted by:	Peter Jeremy
2010-03-30 19:05:08 +00:00
Marius Strobl
3f6c7d0307 MFC: r205394
Ensure that __fpu_ftox() both returns the high bits and res[1] contains
the low bits also in the default case.

PR:		144900
Obtained from:	OpenBSD
2010-03-30 19:03:26 +00:00
Marius Strobl
c3342f6536 MFC: r205393
- Remove a bogus forward declaration.
- Fix whitespace.
2010-03-30 18:58:07 +00:00
Attilio Rao
6f1f54906a MFC r205167:
Make the code more readable and compiling on 64-bits arch different
than amd64.

Sponsored by:	Sandvine Incorporated
2010-03-30 12:06:18 +00:00
Attilio Rao
58c7715bb0 MFC r205160:
Checkin a facility for specifying a passthrough FIB from userland.
arcconf tool by Adaptec already seems to use for identifying the
Serial Number of the devices.

Sponsored by:	Sandvine Incorporated
2010-03-30 11:46:43 +00:00
Attilio Rao
acde5c5d1d MFC r204641, r204753:
Improving the clocks auto-tunning by firstly checking if the atrtc may be
correctly initialized and just then assign to softclock/profclock.

Sponsored by:   Sandvine Incorporated
2010-03-30 11:19:29 +00:00
Xin LI
608413892c MFC r204383:
Add several necessary .El's
2010-03-29 22:52:51 +00:00
Xin LI
92fc47574f MFC r205702:
Remove GNU cpio after fix of CVE-2010-0624.

Note that this is actually a no-op for most users, as this GNU
cpio was broken on -HEAD and 8-STABLE since last March until
the recent fix.

FreeBSD 8.0+ uses BSD cpio by default and the code is being
actively maintained.
2010-03-29 18:24:08 +00:00
Jung-uk Kim
ac39796e38 MFC: r205647
Fix stupid typos.  Some VESA BIOSes directly call BIOS interrupt handlers
within the VBE interrupt handler.  Unfortunately it was causing real mode
page faults because we were fetching instructions from bogus addresses.

PR:		kern/144654
2010-03-29 15:59:37 +00:00
Attilio Rao
7dd1fd87e8 MFC r199852, r202387, r202441, r202534:
Handling all the three clocks with the LAPIC may lead to aliasing for
softclock and profclock.
Revert the change when the LAPIC started taking charge of all three of
them.

Sponsored by:	Sandvine Incorporated
2010-03-29 15:39:17 +00:00
Luigi Rizzo
d15984d46e mfc 205830:
fixes to rule set handling (including potential kernel panics)
2010-03-29 12:32:16 +00:00
Luigi Rizzo
0d3003c0c8 remove a leftover debugging message 2010-03-29 12:29:34 +00:00
Fabien Thomas
2efccbe06d MFC r205693:
Do not overflow the term in the case of multi-line display.
2010-03-29 06:57:43 +00:00
Fabien Thomas
44a4e1d8fb MFC r205694:
Handling SIGPIPE will cause deadlock/crash.
Return an error immediatly in case of hard shutdown.
2010-03-29 06:55:38 +00:00
Doug Barton
ecb246eba6 Update to 9.6.2-P1, the latest patchfix release which deals with
the problems related to the handling of broken DNSSEC trust chains.

This fix is only relevant for those who have DNSSEC validation
enabled and configure trust anchors from third parties, either
manually, or through a system like DLV.
2010-03-29 06:31:58 +00:00
Doug Barton
b3aa5b386d MFC r205290:
MAKE_JUST_WORLDS
2010-03-29 01:24:20 +00:00
Ed Maste
171dfe111d MFC aac(4) driver changes
r204019:

  Include command type in COMMAND TIMEOUT messages to aid in debugging.

r203885:

  Diff reduction with Adaptec's vendor driver.

  Driver version 2.1.9 chosen as that Adaptec version roughly corresponds
  with the current feature set merged to the in-tree driver.

r203801:

  Garbage collect Falcon/PPC support that has not been used in released
  products, based on discussion with Adaptec.

r198617:

  Rename aac_srb32 to aac_srb, to match Adaptec's vendor driver.
2010-03-29 00:30:44 +00:00
Ed Maste
436405f522 MFC r204264:
Minor diff reduction with Adaptec's driver: in aac_release_command() set
  cm_queue to AAC_ADAP_NORM_CMD_QUEUE by default.  In every place it was
  set, it was set to AAC_ADAP_NORM_CMD_QUEUE anyhow.
2010-03-29 00:14:34 +00:00
Ed Maste
83867e0aa4 MFC r205411:
Avoid holding the VLAN_LOCK() over the parent interface SIOCGIFMEDIA
  ioctl call, as it may sleep.

  Reviewed by:    rwatson
2010-03-29 00:08:58 +00:00
Jilles Tjoelker
a8eb33233c MFC r200818: rc.subr: Use pwait in wait_for_pids.
This waits for the requested process(es) to terminate, rather than polling
with an interval of 2 seconds.

If pwait is not available, the old method is used.

PR:		conf/132766
2010-03-28 20:19:41 +00:00
Jilles Tjoelker
f76db14de9 MFC r196607,r198453,r204016,r204017,r204836,r204842,r205105,r205153
Various testcases that work correctly with stable/8 sh.

Note: this creates some gaps in the numbering due to lower-numbered tests
for new functionality which is not or not yet MFC'ed.
2010-03-28 19:34:57 +00:00
Edward Tomasz Napierala
dc40ac1d45 MFC r203824:
Fix VBAD description.
2010-03-28 18:46:01 +00:00
Edward Tomasz Napierala
b1711e4af4 MFC r203721:
Add references to VOP_* man pages to vnode(9).
2010-03-28 18:44:54 +00:00
Edward Tomasz Napierala
616900d1eb MFC r203549:
Add missing coma.
2010-03-28 18:43:04 +00:00
Jaakko Heinonen
f004e8133a MFC r198175:
- If lstat()/stat() fails with an error other than ENOENT, don't ignore
  the error and assume that the file doesn't exist. Touch could return
  success with -c option even if the file existed and time was not set.
- If the first utimes_f() call fails with -A option, give up and don't
  continue trying to set times to current time. [1]
- Set exit status to 1 when setting of timestamps fails for a directory
  or symbolic link even though lstat()/stat() would succeed.
- Don't print bogus error message when rw() succeeds.

PR:		bin/112213
2010-03-28 11:22:38 +00:00
Edward Tomasz Napierala
a4325efcbe MFC r203122:
Improve descriptions, remove turnstiles (since, from what I understand,
they are only used to implement other synchronization primitives), tweak
formatting.

MFC r203127:

Add description of bounded sleep vs unbounded sleep (aka blocking).  Move
rules into their own section.

MFC r203131:

Cosmetic fixes.

MFC r203759:

Improve description for Giant and mention blocking inside interrupt threads.

MFC r203762:

Start sentences with a new line.

Submitted by:	brueffer

MFC r203825:

Remove list of locking primitives, which is kind of redundant, move
information about witness(9) to the section about interactions, and
expand 'contexts' table.

MFC r203929:

Some rewording and language fixes.

PR:		docs/136918, docs/134074
Submitted by:	Ben Kaduk <kaduk at mit dot edu>, Haven Hash <havenster at gmail dot com>
2010-03-27 18:45:53 +00:00
Edward Tomasz Napierala
79964ec98d MFC r201432:
Add manual page for gcache(8).
2010-03-27 18:15:18 +00:00
Edward Tomasz Napierala
fddc12138a MFC r200723:
Interpret VAPPEND correctly in vaccess_acl_nfs4(9).
2010-03-27 18:12:00 +00:00
Edward Tomasz Napierala
bf876fcd34 MFC r200273:
Don't add VAPPEND if the file is not being opened for writing.  Note that this
only affects cases where open(2) is being used improperly - i.e. when the user
specifies O_APPEND without O_WRONLY or O_RDWR.

Reviewed by:	rwatson
2010-03-27 18:09:40 +00:00
Edward Tomasz Napierala
89a2dbabba MFC r200058:
Add change that was somehow missed in r192586.  It could manifest by
incorrectly returning EINVAL from acl_valid(3) for applications linked
against pre-8.0 libc.
2010-03-27 18:08:14 +00:00
Edward Tomasz Napierala
3fbc03cc99 MFC r199875:
Provide a set of sysctls and tunables to disable device node creation
for specific "kinds" of disk labels - for example, GPT UUIDs.  Reason
for this is that sometimes, other GEOM classes attach to these device
nodes instead of the proper ones - e.g. they attach to /dev/gptid/XXX
instead of /dev/ada0p2, which is annoying.

Reviewed by:	pjd (earlier version)
2010-03-27 18:04:33 +00:00
Edward Tomasz Napierala
f2f6fe304d MFC r199182:
Add links to zfs(8) and zpool(8) to mount(8) manual page.
2010-03-27 18:01:38 +00:00
Bjoern A. Zeeb
08611830aa MFC r204840:
As statfs.f_flags are uint64_t the local variables should be as well.
  We'll start noticing this with the next flag introduced as the lower
  32bit are all used.

  While here compare to 0 explicitly [1].

  Suggested by: kib [1]
  Reviewed by:  kib
2010-03-27 17:57:17 +00:00
Edward Tomasz Napierala
168d1f006b MFC r197945:
Orphaning provider with EXDEV seems weird; perhaps the author meant
ENXIO here?
2010-03-27 17:56:45 +00:00
Bjoern A. Zeeb
2287aa049c MFC r205626:
Print the pointer to the lock with the panic message. The previous
        panic: rw lock not unlocked
  was not really helpful for debugging. Now one can at least call
        show lock <ptr>
  form ddb to learn more about the lock.
2010-03-27 17:54:44 +00:00
Bjoern A. Zeeb
0b93ad54a2 MFC r205276:
Add ddb support to the "new" link layer code ("new-arp"):
   - show all lltables [1] (optional flag to also show the llentries as well)
   - show lltable <struct lltable *>
   - show llentry <struct llentry *>
2010-03-27 17:52:56 +00:00
Bjoern A. Zeeb
397069f2c5 MFC r205251:
Add pcb reference counting to the pcblist sysctl handler functions
  to ensure type stability while caching the pcb pointers for the
  copyout.

  Reviewed by:  rwatson
2010-03-27 17:51:27 +00:00
Bjoern A. Zeeb
62f500d0c2 MFC r204838:
Destroy TCP UMA zones (empty or not) upon network stack teardown
  to not leak them, otherwise making UMA/vmstat unhappy with every
  stoped vnet.
  We will still leak pages (especially for zones marked NOFREE).

  Reshuffle cleanup order in tcp_destroy() to get rid of what we can
  easily free first.

  Reviewed by:  rwatson
2010-03-27 17:50:02 +00:00
Bjoern A. Zeeb
a4f6889460 MFC r204805:
Rework reference counting in case we queue into the netisr,
  or overflow the netisr queue and fall back to the interface
  queue so that we can garuantee that the ifnet pointer stays
  valid.   Formerly we ended up with reference counts <= 0 in
  case the netisr had returned ENOBUFS.  The idea is to track
  any packet in the netisr queue and only change the refount
  on edge operations for the fallback interface queue. This
  also avoids problems in case the if_snd.ifq_len lies to us.

  Also rework refount assertions to make sure they trigger if
  we go below 1. Formerly a negative refence count did not
  trigger the assert as the refcount variable is u_int.
2010-03-27 17:48:13 +00:00
Bjoern A. Zeeb
3662f299d2 MFC r204807:
Destroy UDP UMA zones (empty or not) upon network stack teardown
  to not leak them making UMA/vmstat -z unhappy with every stoped vnet.
  We will still leak pages (especially as zones are marked NOFREE).
2010-03-27 17:46:06 +00:00
Bjoern A. Zeeb
67208dfa16 MFC r204147:
Set curvnet earlier so that it also covers calls to sodisconnect(), which
  before were possibly panicing the system in ULP code in the VIMAGE case.

  Submitted by: Igor (igor ispsystem.com)
2010-03-27 17:42:04 +00:00