Commit Graph

137219 Commits

Author SHA1 Message Date
mav
739abe292f Move GET_STACK_USAGE from MI header to i386/amd64 MD ones.
Somebody who can, please feel free to implement it for other archs
or copy this one if it suits.
2008-01-31 08:24:27 +00:00
rwatson
c57fa54759 Correct two problems relating to sorflush(), which is called to flush
read socket buffers in shutdown() and close():

- Call socantrcvmore() before sblock() to dislodge any threads that
  might be sleeping (potentially indefinitely) while holding sblock(),
  such as a thread blocked in recv().

- Flag the sblock() call as non-interruptible so that a signal
  delivered to the thread calling sorflush() doesn't cause sblock() to
  fail.  The sblock() is required to ensure that all other socket
  consumer threads have, in fact, left, and do not enter, the socket
  buffer until we're done flushin it.

To implement the latter, change the 'flags' argument to sblock() to
accept two flags, SBL_WAIT and SBL_NOINTR, rather than one M_WAITOK
flag.  When SBL_NOINTR is set, it forces a non-interruptible sx
acquisition, regardless of the setting of the disposition of SB_NOINTR
on the socket buffer; without this change it would be possible for
another thread to clear SB_NOINTR between when the socket buffer mutex
is released and sblock() is invoked.

Reviewed by:	bz, kmacy
Reported by:	Jos Backus <jos at catnook dot com>
2008-01-31 08:22:24 +00:00
kaiw
e57ce2b6e6 Add hook routine archive_write_ar_finish() which writes the 'ar'
global header if nothing else has been written before the closing of
the archive. This will change the behaviour when creating archives
without members, i.e., instead of generating a 0-size archive file, an
archive with just the global header (8 bytes in total) will be created
and it is indeed a valid archive by the definition of libarchive, thus
subsequent operation on this archive will be accepted. This especially
solves the failure caused by following sequence: (several ports do)

% ar cru libfoo.a  	    # without specifying obj files
% ranlib libfoo.a

Reviewed by:	kientzle, jkoshy
Approved by:	kientzle
Approved by:	jkoshy	(mentor)
Reported by:	erwin
MFC after:	1 month
2008-01-31 08:11:01 +00:00
kientzle
213915cb49 Add a test to verify compatibility with archives with
odd hardlinks.  I need to extend this to test pax extended
archives with bodies attached to hardlinks and other less-common cases.
2008-01-31 07:47:38 +00:00
kientzle
512df3b205 Tighten up the heuristic that decides whether or not we should
obey or ignore the size field on a hardlink entry.  In particular,
if we're reading a non-POSIX archive, we should always ignore
the size field.

This should fix both the audio/xmcd port and the math/unixstat port.

Thanks to: Pav Lucistnik for pointing these two ports out to me.
MFC after: 7 days
2008-01-31 07:41:45 +00:00
grehan
54c503ac15 Enable ofwdump on powerpc (finally). Tested on G3 & G4 machines.
Submitted by:	Dan Stekloff  <dsteklof at c i s c o dot com>
Discussed with:	marcel
2008-01-31 01:57:33 +00:00
cognet
4c1734c71d Bring in the nice work from Mark Tinguely on arm pmap.
The only downside is that it renames pmap_vac_me_harder() to pmap_fix_cache().
From Mark's email on -arm :
pmap_get_vac_flags(), pmap_vac_me_harder(), pmap_vac_me_kpmap(), and
pmap_vac_me_user() has been rewritten as pmap_fix_cache() to be more
efficient in the kernel map case. I also removed the reference to
the md.kro_mappings, md.krw_mappings, md.uro_mappings, and md.urw_mappings
counts.

In pmap_clearbit(), we can also skip over tests and writeback/invalidations
in the PVF_MOD and PVF_REF cases if those bits are not set in the pv_flag.
PVF_WRITE will turn caching back on and remove the PV_MOD bit.

In pmap_nuke_pv(), the vm_page_flag_clear(pg, PG_WRITEABLE) has been moved
to the pmap_fix_cache().

We can be more agressive in attempting to turn caching back on by calling
pmap_fix_cache() at times that may be appropriate to turn cache on
(a kernel mapping has been removed, a write has been removed or a read
has been removed and we know the mapping does not have multiple write
mappings to a page).

In pmap_remove_pages() the cpu_idcache_wbinv_all() is moved to happen
before the page tables are NULLed because the caches are virtually
indexed and virtually tagged.

In pmap_remove_all(), the pmap_remove_write(m) is added before the
page tables are NULLed because the caches are virtually indexed and
virtually tagged. This also removes the need for the caches fixing routine
(whichever is being used pmap_vac_me_harder() or pmap_fix_cache()) to be
called on any of these mappings.

In pmap_remove(), I simplified the cache cleaning process and removed
extra TLB removals. Basically if more than PMAP_REMOVE_CLEAN_LIST_SIZE
are removed, then just flush the entire cache.
2008-01-31 00:05:40 +00:00
delphij
bf18e9a1d9 Fix two typos. 2008-01-30 22:11:59 +00:00
mav
cdf5b4e4f4 Implement GET_STACK_USAGE() macro to get the current kernel thread stack usage.
This implemntation made for growing down stack organization like i386/amd64
platforms have, but prefers different machine dependent version if it is present.
2008-01-30 21:24:10 +00:00
jhb
b3bca4a1b7 Add a note pointing to build(7) for more info.
MFC after:	1 week
Reviewed by:	ru
2008-01-30 19:33:18 +00:00
rink
a0c6a1a4d5 Allow watch(8) to use more than 10 snp* devices. This limitation was purely
due to the way watch(8) looks for available snoop devices.

PR:		bin/118286
Submitted by:	Mykola Zubach <zuborg@advancedhosters.com>
Reviewed by:	rwatson, csjp, imp (all a long time ago)
Approved by:	imp (mentor) (long time ago)
MFC after:	1 week
2008-01-30 13:55:32 +00:00
rink
43c3361485 Fix bootparamd on 64 bit platforms - at least amd64 was broken due to the
code believing long == 64 bits and using it to store/compare IPv4 addresses.

PR:		bin/112163
Submitted by:	Tyler Spivey <tspivey@pcdesk.net>
Reviewed by:	imp
Approved by:	imp (mentor)
MFC after:	1 week
2008-01-30 13:48:37 +00:00
jhb
1002889258 Map 'boot' to GPT_ENT_TYPE_FREEBSD_BOOT when parsuing UUIDs so that things
like 'gpt add -t boot' work.

MFC after:	1 week
Submitted by:	 Niki Denev nike_d of cytexbg.com
2008-01-30 13:29:10 +00:00
rwatson
5b1d998fc1 Add unix_sorflush, a regression test for the following scenario:
- Process (a) is blocked in read on a socket waiting on data.
 - Process (b) is blocked in shutdown() on a socket waiting on (a).
 - Process (c) delivers a signal to (b) interrupting its wait.

When the signal is delivered, the kernel panics as sblock() fails in
sorflush().  Even if it didn't panic, shutdown() would block potentially
indefinitely waiting for recv() to succeeded.  Fixes to follow.

Reported by:	Jos Backus <jos at catnook dot com>
2008-01-30 13:23:34 +00:00
ru
3c0bb170e1 Christos decided to keep the manpages in mdoc(7) format,
so stop using our own versions of these.
2008-01-30 12:56:59 +00:00
obrien
7b230e75d8 Update for the 4.23 import. 2008-01-30 02:48:24 +00:00
jhb
890a8204e8 - Rework the kld support to hook into GDB's shared library support.
kgdb(8) now treats kld's as shared libraries relative to the kernel
  "binary".  Thus, you can use 'info sharedlibrary' to list the kld's
  along with 'sharedlibrary' and 'nosharedlibrary' to manage symbol
  loading and unloading.  Note that there isn't an easy way to force GDB
  to use a specific path for a shared library.  However, you can use
  'nosharedlibrary' to unload all the klds and then use 'sharedlibrary'
  to load specific klds where it gets the kld correct and use
  'add-kld' for the kld's where the default open behavior doesn't work.
  klds opened via 'sharedlibrary' (and during startup) do have their
  sections listed in 'info files'.
- Change the 'add-kld' command to use filename completion to complete its
  argument.
2008-01-29 23:44:34 +00:00
jhb
12a6269e8f Don't close the kernel bfd object during startup. Instead, leave it open
and build a section table from the kernel file so that 'info files' output
for kgdb now matches the usage of gdb on a regular file with the exception
that we don't list sections for memory in the crash dump.
2008-01-29 23:37:59 +00:00
jhb
bddbfed7ec Use target_read_memory() and extract_unsigned_integer() instead of direct
KVM access to read kernel pointers.
2008-01-29 23:36:42 +00:00
jhb
2b547364ab Don't look for "foo.ko.symbols" files. GDB is smart enough to open the
".symbols" file automatically when you tell it to load "foo.ko" because of
the debug link.
2008-01-29 23:36:10 +00:00
des
c7d5a7a42f This commit was generated by cvs2svn to compensate for changes in r175801,
which included commits to RCS files with non-trunk default branches.
2008-01-29 20:22:00 +00:00
des
5bb985da80 Merge r412 from vendor, which reintroduces _OPENPAM. See comment in the
code for explanation.  Hopefully, this will forestall any reports of
breakage in OpenPAM-aware ports.

MFC after:	3 days
2008-01-29 20:22:00 +00:00
trhodes
65fd02c7ac Some clarifications to make keyboard configuration under syscons.
PR:		89325
Submitted by:	Oliver Fromme <olli@secnetix.de>
Reviewed by:	emax
2008-01-29 18:28:50 +00:00
trhodes
46c986723b Update this manual page to describe the extattr_list_file() and the
extattr_list_fd() functions.

PR:		108142
Submitted by:	Richard Dawe <rich@phekda.gotadsl.co.uk>
Reviewed by:	kientzle
2008-01-29 18:15:38 +00:00
yar
050f1fe297 An average consumer of fts(3) that avoids keeping pointers to old
FTSENTs and uses only what fts_read() has just returned can rely
on fts_path being NUL-terminated.  Under these conditions, a plain
vanilla "%s" format can be safely used to printf an fts_path.

OK'ed by:	rwatson
2008-01-29 17:50:29 +00:00
obrien
5290562b54 \jedi-mind-trick{this is not the file you were looking for} 2008-01-29 16:17:42 +00:00
obrien
3e4ae1b3a5 This commit was generated by cvs2svn to compensate for changes in r175790,
which included commits to RCS files with non-trunk default branches.
2008-01-29 16:12:06 +00:00
obrien
2e6f1b26db Bring in fix for Binutils PR other/16240: Check for a failure return from
cplus_demangle_type.  This is the rev 1.50-1.51 change.

Our addr2line, etc.. would crash if used on C++ code that contains
certain symbol types.  One example is
_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
2008-01-29 16:12:06 +00:00
yongari
47f4378094 Fix link state handling in bfe(4).
o conversion to callout(9) API.
 o add a missing driver lock in bfe_ifmedia_sts().
 o use our callout to drive watchdog timer.
 o restart Tx routine if pending queued packets are present in
   watchdog handler.
 o unarm watchdog timer only if there are no queued packets.
 o don't blindly reset phy and let phy driver handle link change
   request in bfe_init_locked().
 o return the status of mii_mediachg() to caller in
   bfe_ifmedia_upd(). Previously it always returned 0 to caller.
 o add check for IFF_DRV_RUNNING flag as well as IFF_DRV_OACTIVE
   in bfe_start_locked().
 o implement miibus_statchg method that keeps track of current
   link state changes as well as negotiated speed/duplex/
   flow-control configuration.
   Reprogram MAC to appropriate duplex state. Flow-control
   configuration was also implemented but commented out at the
   moment. The flow-control configuration will be enabled again
   after we have general flow-control framework in mii layer.

Reported by:	Yousif Hassan < yousif () alumni ! jmu ! edu >
Tesdted by:	Yousif Hassan < yousif () alumni ! jmu ! edu >
2008-01-29 02:15:11 +00:00
delphij
e9a7a633a2 Don't coredump when executed with -o. 2008-01-29 00:20:00 +00:00
trhodes
52562b1365 Properly Xref device.hints.5.
Noticed by:	ru
2008-01-29 00:13:20 +00:00
delphij
6aa3c8ee5a Use calloc() when requesting zero'ed memory allocation rather than rolling
our own.
2008-01-29 00:06:44 +00:00
brueffer
47c6625b33 Forced commit to note that the previous revision also covered:
PR:		119683
Submitted by:	Adam McDougall <mcdouga9@egr.msu.edu>
2008-01-28 23:08:18 +00:00
mav
5eebdfa072 Avoid data copying when it is possible.
bpf_filter() is able to work directly on mbuf chain.
2008-01-28 22:37:17 +00:00
jhb
8fe633f266 Use a for loop in find_kld_address() as in kgdb_auto_load_klds() and
replace the remaining goto's with continues as a result.
2008-01-28 21:45:09 +00:00
jhb
a92e1fcff2 Add support for automatically loading symbols for kld's on startup:
- Add a new 'kgdb_auto_load_klds()' routine which is invoked during
  startup that walks the list of linker files and tries to find a matching
  kld on disk for each non-kernel kld.  If a kld file is found, then it
  is added as if the 'add-kld' command is invoked.  One change from
  'add-kld' is that this method attempts to use the 'pathname' from the
  linker_file structure first to try to load the file.  If that fails
  it then looks in the kernel directory followed by the directories in
  the module path.
- Move the kld file suffix handling into a separate routine so that it
  can be called standalone and to reduce duplicate code in find_kld_path().
- Cache the offsets of members of 'struct linker_file' during startup
  instead of computing them for each 'add-kld'.
- Use GDB's target_read_string() instead of direct KVM access.
- Add all resident sections from a kld by using bfd_map_over_sections() to
  build the section list rather than just adding symbols for ".text",
  ".data", ".bss", and ".rodata".
- Change the 'add-kld' command to do a y/n prompt before adding the
  symbols when run interactively to match 'add-symbol-file'.

MFC after:	1 week
2008-01-28 21:40:10 +00:00
jhb
d3871c9ec1 Remove the warnx() from kgdb_lookup() so that we don't emit a warning about
optional symbols that are missing (e.g. kgdb complains about _stoppcbs and
_stopped_cpus on UP kernels).  Instead, callers that really want their
symbols to be present now do explicitly warnx() about the missing symbol.
2008-01-28 20:33:19 +00:00
jhb
df803c74ff If the quiet flag is specified (-q), don't dump the unread portion of
the message buffer on startup.
2008-01-28 20:31:30 +00:00
ru
910410640b Add a wrapper function that bound checks writes to the dump device. 2008-01-28 19:04:07 +00:00
brueffer
2a2d8bde46 Correct the kernel config hint in a printf statement.
Submitted by:	R.Mahmatkhanov <cvs-src@yandex.ru>
Reviewed by:	scottl
Approved by:	rwatson (mentor)
MFC after:	3 days
2008-01-28 18:13:03 +00:00
brueffer
ca735b70dd Remove references to the obsolete card(4) manpage. 2008-01-28 18:08:41 +00:00
csjp
03cdec7669 Make sure that the termid type is initialized to AU_IPv4 by default.
This makes sure that process tokens credentials with un-initialized
audit contexts are handled correctly.  Currently, when invariants are
enabled, this change fixes a panic by ensuring that we have a valid
termid family.  Also, this fixes token generation for process tokens
making sure that userspace is always getting a valid token.

This is consistent with what Solaris does when an audit context is
un-initialized.

Obtained from:	TrustedBSD Project
MFC after:	1 week
2008-01-28 17:33:46 +00:00
iwasaki
b46ea5a5ec Don't repeat error logging about NOP message sending if
ciss_report_request() return an error (which is most likely data
underrun).

Noticed by:	Mark Atkinson
MFC after:	1 week
2008-01-28 16:21:34 +00:00
gallatin
98cf716012 Only reset driver state when a hardware error is detected.
Preserve warning but do not reset if we enter the routine
without seeing a hardware error.
2008-01-28 13:20:51 +00:00
rrs
ce5fec50e4 - Fix a comment about prison.
- Fix it so the VRF is captured while locks are held.
MFC after:	1 week
2008-01-28 10:34:38 +00:00
rrs
dbf34dbcc6 - Change back to using prioity 0. Which means don't change the
prioity when running the thread. (this is for the sctp_interator thread).

MFC after:	1 week
2008-01-28 10:33:41 +00:00
rrs
9df3360d89 - Fix a bug where the socket may have been closed which
could cause a crash in the auth code.
Obtained from:	Michael Tuexen
MFC after:	1 week
2008-01-28 10:31:12 +00:00
rrs
13897491cf - Fixes a comparison wrap issue with sack gap ack blocks that
span the 32 bit roll over mark.
2008-01-28 10:25:43 +00:00
rwatson
3043fa2dca Properly return the error from mls_subject_privileged() in the ifnet
relabel check for MLS rather than returning 0 directly.

This problem didn't result in a vulnerability currently as the central
implementation of ifnet relabeling also checks for UNIX privilege, and
we currently don't guarantee containment for the root user in mac_mls,
but we should be using the MLS definition of privilege as well as the
UNIX definition in anticipation of supporting root containment at some
point.

MFC after:	3 days
Submitted by:	Zhouyi Zhou <zhouzhouyi at gmail dot com>
Sponsored by:	Google SoC 2007
2008-01-28 10:20:18 +00:00
iwasaki
956e8b1018 Return errno value rather than boolean in this context.
MFC after:	1 week
2008-01-28 01:57:48 +00:00