67321 Commits

Author SHA1 Message Date
jb
7ec6bff6fb Add the hooks for the extra data that DTrace allocates for struct thread
and struct proc.

Add a field to struct thread to stash the error variable (or returned
status) from the last syscall so that it is available during a
DTrace probe.
2008-05-18 19:50:43 +00:00
jb
3ddcce2cef Add a couple of files which depend of the KDTRACE_HOOKS option.
The syscall names are required by KDTRACE_HOOKS too.

And the unzip
2008-05-18 19:47:49 +00:00
jb
52f46ad538 Add support for the DTrace struct proc and struct thread extended
data via ctor and dtor event handlers.

The size of the extra data is allocated opaquely and this file
contains a function which the dtrace module can call to check
that the kernel supports at least the amount of data that it needs.

This file is optionally compiled into nthe kernel if the KDTRACE_HOOKS
kernel option is defined.
2008-05-18 19:43:52 +00:00
jb
456cdd0179 Add kernel support for the Statically Defined Trace provider.
This is BSD licensed code written specifically for FreeBSD.

It initialises using SYSINIT so that the SDT provider, probe and
argument description linkage is done whenever a module is loaded,
regardless of whether the DTrace modules are loaded or not.

This file is optionally compiled into the kernel if the KDTRACE_HOOKS
option is defined.
2008-05-18 19:32:36 +00:00
jb
01f4d3d4e8 Add two kernel options:
- KDTRACE_HOOKS for the shim layer of hooks which separate BSD licensed
                code from CDDL code.
- DDB_CTF       for the code that parses the CTF (compact C type format)
                data for use by the DTrace Function Boundary Trace
                provider and (possibly) ddb if we plan to do that.
2008-05-18 19:28:51 +00:00
rpaulo
2670a520c1 devctl_process_running(): Check for devsoftc.inuse == 1 instead of
devsoftc.async_proc != NULL because the latter might not be true
sometimes.
This way /etc/rc.suspend gets executed.

Reviwed	by:	njl
Submitted by:	Mitsuru IWASAKI <iwasaki at jp.FreeBSD.org>
Tested also by:	Andreas Wetzel <mickey242 at gmx.net>
MFC after:	1 week
2008-05-18 13:55:51 +00:00
jb
c2a24c298d Remove the unknown device that is breaking the tinderbox build. 2008-05-18 11:08:26 +00:00
alc
a8f81206ad Retire pmap_addr_hint(). It is no longer used. 2008-05-18 04:16:57 +00:00
remko
afc301919a Add support for the Epson 4800 scanner.
PR:		118391
Submitted by:	"Pedro F. Giffuni" <giffunip at tutopia dot com>
Approved by:	imp (mentor, implicit)
MFC after:	3 days
Committed at:	BSDCan 2008
2008-05-18 03:07:40 +00:00
remko
91e9f2c6be Resort the if_ti driver to match the PCI Network cards instead of placing
it under the mii devices list.

PR:		kern/123147
Submitted by:	gavin
Approved by:	imp (mentor, implicit)
MFC after:	3 days
2008-05-17 23:50:00 +00:00
alc
0a1d595c3a In order to map device memory using superpages, mmap(2) must find a
superpage-aligned virtual address for the mapping.  Revision 1.65
implemented an overly simplistic and generally ineffectual method for
finding a superpage-aligned virtual address.  Specifically, it rounds
the virtual address corresponding to the end of the data segment up to
the next superpage-aligned virtual address.  If this virtual address
is unallocated, then the device will be mapped using superpages.
Unfortunately, in modern times, where applications like the X server
dynamically load much of their code, this virtual address is already
allocated.  In such cases, mmap(2) simply uses the first available
virtual address, which is not necessarily superpage aligned.

This revision changes mmap(2) to use a more robust method,
specifically, the VMFS_ALIGNED_SPACE option that is now implemented by
vm_map_find().
2008-05-17 19:32:48 +00:00
alc
1e4c5769eb Preset a device object's alignment ("pg_color") based upon the
physical address of the device's memory.  This enables
pmap_align_superpage() to propose a virtual address for mapping the
device memory that permits the use of superpage mappings.
2008-05-17 16:26:34 +00:00
gnn
5e9c239f57 Remove last bits of OS adaptation code from the IPSec code.
Reviewed By: bz
2008-05-17 04:00:11 +00:00
brooks
926e3bf55c The if_check() function performed three actions:
- verified that the ifp->if_snd.ifq_mtx was initalized for
   all attached interfaces.  This was pointless because it was
   initalized for all interfaces in if_attach() so I've removed it.
 - Checked that ifp->if_snd.ifq_maxlen is initalized and set it to
   ifqmaxlen if unset.  This makes more sense in if_attach() so
   I moved it there.
 - The first call of if_slowtimo().  Delete if_check() and call
   if_slowtimo() directly from the SYSINIT().
2008-05-17 03:38:13 +00:00
jb
5fc855b660 Add the DTrace kernel module makefiles. 2008-05-17 02:31:19 +00:00
jb
b447c934f7 Add the DTrace shim layer definitions.
All shim hooks are defined here. This is the interface between BSD
code in FreeBSD and CDDL code from OpenSolaris.

The hooks defined here are pre-processed out from the source files
when the KDTRACE_HOOKS kernel option isn't defined.
2008-05-17 02:16:58 +00:00
jb
7b4f0f01e2 Add the statically defined tracing header.
Note that this implementation differs from the one in OpenSolaris, so
it is BSD licensed and can be included anywhere.

The kernel definitions defined here are dependent on the kernel option
KDTRACE_HOOKS so that macros added to the sources are pre-processed
out completely when the DTrace kernel hooks aren't compiled in.
2008-05-17 02:14:19 +00:00
markus
6b800eb94c Fix and speedup timestamp calculations which is roughly based on the patch in
the mentioned PR:

- bounds check time->month as it is used as an array index
- fix usage of time->month as array index (month is 1-12)
- fix calculation based on time->day (day is 1-31)
- fix the speedup code as it doesn't calculate correct timestamps before
  the year 2000 and reduce the number of calculation in the year-by-year code
- speedup month calculations by replacing the array content with cumulative
  values
- add microseconds calculation
- fix an endian problem

PR:		kern/97786
Submitted by:	Andriy Gapon <avg@topspin.kiev.ua>
Reviewed by:	scottl (earlier version)
Approved by:	emax (mentor)
MFC after:	1 week
2008-05-16 22:31:17 +00:00
remko
fd32626952 Add support for the Nikon D300 camera
PR:		usb/118741
Submitted by:	Yuri <yuri at tsoft dot com>
Approved by:	imp (mentor, implicit)
MFC after:	3 days
2008-05-16 19:47:15 +00:00
jfv
57de9f8139 This is driver version 1.4.4 of the Intel ixgbe driver.
-It has new hardware support
  -It uses a new method of TX cleanup called Head Write Back
  -It includes the provisional generic TCP LRO feature contributed
   by Myricom and made general purpose by me. This should move into
   the stack upon approval but for this driver drop its in here.
  -Also bug fixes and etc...

MFC in a week if no serious issues arise.
2008-05-16 18:46:30 +00:00
rwatson
14ceaad756 Attempt to improve convergence of POSIX semaphore code with style(9).
MFC after:	3 days
2008-05-16 18:10:07 +00:00
marcel
0e99128934 Fix RID calculation. The RID is really the BAR for PCI cards,
so the index needs to be translated into an offset. While we
did add the offset (0x10), we forgot to account for the width.

Tested by: Thomas Vogt
MFC after: 3 days
2008-05-16 14:57:48 +00:00
attilio
bc6974a05b Removed unused assembly offsets for structures digging. 2008-05-16 13:23:47 +00:00
ps
6fea0a35ac Remove a check that didn't allow > 12 byte CDB's to be issued to
ciss.  This should allow volumes > 2TB to work.

Reported by:	Emil Mikulic
2008-05-16 08:27:02 +00:00
benno
b380769ce9 Document BOOTP_BLOCKSIZE. 2008-05-16 06:50:40 +00:00
benno
dbb9a92bd1 Allow the block size used when booting over NFS to be overridden. It defaults
to 8192 bytes which is the size currently used.
2008-05-16 06:27:03 +00:00
thompsa
dbb66e289f The beacon miss notification must run without locks held has it calls back into
wpi_raw_xmit();
2008-05-16 04:15:54 +00:00
scf
0d165bfebb Spelling and capitalization fixes.
MFC after:	3 days
2008-05-16 03:13:36 +00:00
attilio
43729c22da LO_ENROLLPEND is no more existing so just axe it (it was left out by the
original commit axing it).
2008-05-16 02:09:13 +00:00
attilio
9b87e62706 lockinit() can't accept LK_EXCLUSIVE as an initializaiton flag, so just
drop it.

Reported by:	Josh Carroll <josh dot carroll at gmail dot com>
Submitted by:	jhb
2008-05-15 21:39:25 +00:00
marius
e33b8a5be9 - Const'ify firmware and lookup-tables.
- Obsolete redundant inst_name and unit members of struct sym_hcb.
- Fix three more NULL vs. 0 confusions.
- Use device_set_softc(9) to tell the bus layer that this driver
  allocates a instance of struct sym_hcb itself.
2008-05-15 20:27:18 +00:00
gnn
368bdf05e9 Update the kernel to count the number of mbufs and clusters
(all types) used per socket buffer.

Add support to netstat to print out all of the socket buffer
statistics.

Update the netstat manual page to describe the new -x flag
which gives the extended output.

Reviewed by:	rwatson, julian
2008-05-15 20:18:44 +00:00
attilio
f7f31164f1 - Embed the recursion counter for any locking primitive directly in the
lock_object, using an unified field called lo_data.
- Replace lo_type usage with the w_name usage and at init time pass the
  lock "type" directly to witness_init() from the parent lock init
  function.  Handle delayed initialization before than
  witness_initialize() is called through the witness_pendhelp structure.
- Axe out LO_ENROLLPEND as it is not really needed.  The case where the
  mutex init delayed wants to be destroyed can't happen because
  witness_destroy() checks for witness_cold and panic in case.
- In enroll(), if we cannot allocate a new object from the freelist,
  notify that to userspace through a printf().
- Modify the depart function in order to return nothing as in the current
  CVS version it always returns true and adjust callers accordingly.
- Fix the witness_addgraph() argument name prototype.
- Remove unuseful code from itismychild().

This commit leads to a shrinked struct lock_object and so smaller locks,
in particular on amd64 where 2 uintptr_t (16 bytes per-primitive) are
gained.

Reviewed by:	jhb
2008-05-15 20:10:06 +00:00
alc
47efda9e75 Don't call vm_reserv_alloc_page() on device-backed objects. Otherwise, the
system may panic because there is no reservation structure corresponding to
the physical address of the device memory.

Reported by: Giorgos Keramidas
2008-05-15 18:52:31 +00:00
weongyo
6354067da5 Fix a panic when it occurred during initializing the ndis driver because
it try to read network address through ifnet structure which is NULL
until the ndis driver's initialization is finished.

Reviewed by:	thompsa
2008-05-15 04:29:28 +00:00
jhb
ec0d9f9d00 Go back to using the process command name (p_comm) for the file name and
command line arguments stored in the note at the beginning of a core dump
instead of the current thread name.

Reviewed by:	julian
2008-05-15 03:07:34 +00:00
phk
246edbe9f2 Move speaker a lot closer to style(9)
Submitted by:	Martin Voros <martin_voros@yahoo.com>
2008-05-15 01:22:48 +00:00
marius
aee2bbc288 Improve the integration of BCM5906[M] support:
- Rename BGE_FLAG_EEPROM to BGE_FLAG_EADDR to underline it's absence means
  "there's no chip containing an Ethernet address fitted to the BGE chip
  so we have to get it from the firmware instead" rather than "there's no
  EEPROM, but maybe NVRAM or something else".
- Don't treat BCM5906[M] generally like chips w/o BGE_FLAG_EADDR set, just
  in the two cases really necessary. This gets us line with the original
  patch for DragonFlyBSD.
- For sparc64 restore the intended behavior of obtaining the Ethernet
  address from the firmware in case BGE_FLAG_EADDR is not set, even for
  BCM5906[M].
- Fix some style(9) bugs introduced with rev. 1.208 of if_bge.c

Approved by:		jhb
Additional testing by:	Thomas Nystroem (BCM5906)
2008-05-14 21:00:27 +00:00
kib
592c22cb14 Add the devctl notifications for the cdev create/destroy events.
Based on the submission by: Andriy Gapon <avg icyb net ua>
MFC after:	2 weeks
2008-05-14 14:29:54 +00:00
rpaulo
f9190ee1b5 style(9): remove FreeBSD CVS ID from the initial license comment.
MFC after:	1 day
2008-05-14 10:02:25 +00:00
rpaulo
7366279829 Actually, don't rely on the unsafe MAX() macro. Use imax() as provided
in the PR patch.

Pointed out by:		bde
PR:			123542
2008-05-14 09:57:21 +00:00
marius
bb6c6d69c8 Don't let hacksync() call bus_dmamap_sync(9) on DMA maps which
are not initialized. This fixes a panic on sparc64 where calling
bus_dmamap_sync(9) on NULL DMA maps is fatal.

Approved by:	sam
2008-05-13 20:58:08 +00:00
rdivacky
faae559cb1 Regen.
Approved by:	kib (mentor)
2008-05-13 20:02:26 +00:00
rdivacky
13cbd9c97e Implement robust futexes. Most of the code is modelled after
what Linux does. This is because robust futexes are mostly
userspace thing which we cannot alter. Two syscalls maintain
pointer to userspace list and when process exits a routine
walks this list waking up processes sleeping on futexes
from that list.

Reviewed by:	kib (mentor)
MFC after:	1 month
2008-05-13 20:01:27 +00:00
cognet
8f4fa78ec6 From the OpenBSD commit log :
Add support for the Apple USB Ethernet adapter.
Work around the "latch in at the first working PHY address hack",
that fails for this adapter because it returns 0xffff when reading
from lower PHY addresses. Also add more debugging printfs

Obtained from:	OpenBSD
MFC After:	3 days
2008-05-13 14:00:09 +00:00
jhb
b31256842d - Set sc->dev to the new-bus device_t so all the device_printf()s work.
- Add a missing newline to a printf.

MFC after:	1 week
Submitted by:	Andriy Gapon  avg <> icyb.net.ua
2008-05-12 21:34:52 +00:00
scottl
030bf318b0 Add support for management apps. Work around an apparent firmware bug that
results in hung i/o if more than 128 commands are scheduled for an array.
2008-05-12 14:09:19 +00:00
julian
27367de06f fix typo in runz_fuzz
noticed by:Elijah Buck
2008-05-12 06:42:06 +00:00
gnn
205380c6ba Fix the loopback interface. Cleaning up some code with new macros
was a tad too aggressive.

PR:		kern/123568
Submitted by:	Vladimir Ermakov <samflanker at gmail dot com>
Obtained from:	antoine
2008-05-12 02:44:53 +00:00
sam
d9c0a1e65f declare ieee80211_phymode_name with an array size 2008-05-12 00:34:28 +00:00