Commit Graph

84602 Commits

Author SHA1 Message Date
pooka 88134b62a2 add mountdump, prints mount point information a little like mount(8) 2006-11-04 20:29:30 +00:00
elad 03a082e7aa Oops, forgot to do this one in previous commit.
Pointed out by mjf@, thanks!
2006-11-04 15:36:37 +00:00
yamt 3aef238dc0 - define some macros and use them.
- fix an off-by-one in testcode.
2006-11-04 13:26:22 +00:00
yamt e1b6afe136 todo. 2006-11-04 13:25:52 +00:00
jmmv d4cb7c851a Fix matching of options with common prefixes (e.g. console and console_speed).
While here remove an useless assignment and bind a variable to a loop.
2006-11-04 11:37:12 +00:00
elad 9477ac30bc Add "@uid" keyword translation, to translate effective user-id of the
process.
2006-11-04 10:14:00 +00:00
elad 63d078b99e Use KASSERT() as requested by yamt@. 2006-11-04 09:56:59 +00:00
elad fe9e2303fd Change KAUTH_SYSTEM_RAWIO to KAUTH_DEVICE_RAWIO_SPEC (moving the raw i/o
requests to the device scope) and add KAUTH_DEVICE_RAWIO_PASSTHRU.

Expose iskmemdev() through sys/conf.h.

okay yamt@
2006-11-04 09:30:00 +00:00
dyoung 0787046d01 Change lengthy ((struct sockaddr_in *)x) to satosin(x). 2006-11-04 07:13:19 +00:00
dyoung f6cb813915 Remove unused variables. 2006-11-04 06:41:48 +00:00
dyoung cce119d20c Expand the comment concerning gre_kick().
Shorten the code in gre_compute_route() that flips the least
significant bit of the tunnel address.  No functional change.
2006-11-04 06:38:05 +00:00
tsutsui fb1f06475c Remove vtophys (in comment). 2006-11-04 05:54:53 +00:00
tsutsui c5bcc82dd7 Preserve m_pkthdr.csum_flags in TX packets because
it could be lost if bus_dmamap_load_mbuf(9) returns EFBIG.
(though I've never seen the "too mamy segments" message
 which indicates the packet has more than 32 fragments)
2006-11-04 05:18:26 +00:00
tsutsui f2a3a089d1 Rather than copying m_pkthdr.csum_flags in m_defrag() (which was
committed in rev 1.22), save it before calling m_defrag().

I haven't confirmed whether the m_pkthdr.csum_flags is preserved during
m_defrag(), but the previous way sometimes makes vge(4) chip mad...
2006-11-04 05:07:16 +00:00
tsutsui 5a460391d7 Return a proper error from vge_encap() if m_defrag() fails. 2006-11-04 04:40:00 +00:00
ad 5bfcdd68c1 - ltsleep(): for now, stay at splsched() when releasing sched_lock, or we
may allow wakeup() to occur before switching away.  PR/32962.
- mi_switch(): don't inspect p->p_cred or send signals without holding the
  kernel lock.
2006-11-03 20:46:00 +00:00
ad 1cffc415cb - issignal(): acquire the kernel lock before inspecting signal state
- lwp_exit2(): don't drop the kernel lock until after doing wakeup()
2006-11-03 19:46:03 +00:00
tsutsui da98d43bd0 Pull another 8139C+ fix from FreeBSD if_re.c rev 1.68:
Perform hardware diagnostic only on the original RTL8169,
which was the only device that really needed it.
(i.e. a possible hardware bug when the NIC was put on a 64bit PCI slot)

Tested with on-board 8139C+ by Brian A. Seklecki.

Note this change might also fix PR kern/34952
(because re_diag() is no longer called on 8169S/8110S),
but I'm not sure if the re(4) chip was properly initialized in such case.
2006-11-03 17:51:47 +00:00
tsutsui 445d5743e4 Pull a 8139C+ fix from FreeBSD if_re.c rev 1.73:
Ignore BMCR_LOOP and BMCR_ISO bits which have different meanings on 8139C+.

Tested by Brian A. Seklecki.
2006-11-03 17:16:58 +00:00
tsutsui ff1bacae2e Make rlphy also match if parent MII is re(4) for RTL8139C+ case.
Tested by Brian A. Seklecki.
2006-11-03 17:05:16 +00:00
tsutsui 304b305c9e Minor cleanups:
- move some driver specific definitions from rtl81x9reg.h to rtl81x9var.h
- move several macro where related structures are declared
- remove unused macro
- fix some comments
- unwrap some lines
2006-11-03 17:01:54 +00:00
tsutsui a8d1516f11 Use #define<space>, which seems consistent in these files. 2006-11-03 14:41:40 +00:00
abs 34133821e3 Regenerate after adding Broadcom BCM5754 (0x167a) 2006-11-03 13:00:09 +00:00
abs f9237faff1 Add Broadcom BCM5754 (0x167a) 2006-11-03 12:59:47 +00:00
yamt 0ae566badc fix deadlocks due to ksiginfo_pool spl problems. 2006-11-03 12:18:41 +00:00
jld 9253e28032 Ensure that the timestamp we use in get_tsc_offset_ns remains valid
until after we do the rdtsc; since Xen3 dynamically adjusts its idea of
the clock frequency, this is important.  (Linux and FreeBSD both do this.)
2006-11-03 12:09:46 +00:00
yamt 1cd3142c15 make siginfo_pool and ksiginfo_pool static. 2006-11-03 11:41:07 +00:00
jld f566d2017b "static volatile", not "volatile static". 2006-11-03 09:16:13 +00:00
tsutsui 690e60f366 Pull several fixes which improve TX error handling
from FreeBSD's if_vr.c rev 1.52:
- check more error status in TX descriptor and restart TX module
  appropriately in vr_txeof()
- check more error interrupt status in vr_intr()

I can't confirm whether these changes actually fix TX stalls because
I can't reproduce the problem I had about seven years ago (I guess
it might be caused by excessive collisions on a dumb hub), but at least
they don't seem to have bad side effects on normal operations on my macppc.
2006-11-03 08:41:05 +00:00
tsutsui 57a0051fe5 - no need to scan zsc units in zshard(), just use passed one
- call zsc_intr_soft() directly on softintr and remove zssoft()
  (no need spltty() since it should be done in each MD handler)
2006-11-03 03:04:53 +00:00
jld 2d61afc3e7 Recycle old buffers into new rx requests when their number reaches half of
those not tied up in active mbufs, rather than half of the total number.

(Or, to more literally translate the C, when there are at least as
many buffers waiting to be reused as outstanding rx requests.)

This prevents us from dropping off the network for a while when more
than 128 of the 256 buffers are in use by mbufs, which might not be
freed for an arbitrarily long time; the remaining buffers would stack up
on the free list but not be reclaimed until enough mbufs were eventually
freed, leaving the interface unable to receive packets until then.
2006-11-03 03:03:32 +00:00
tsutsui 23c5e05646 Remove a function declaration of zssoft() which was
inside #ifndef __HAVE_GENERIC_SOFT_INTERRUPTS.
2006-11-02 20:43:30 +00:00
tsutsui ce97c50f55 Pass zsc_softc to zshard() directly rather than searching it in zshard().
Checking all zsc units in zshard() is efficient only on ports
which share one interrupt among all zsc units, like sparc or sun3.
On such ports, zshard() is established as a handler only once.

XXX1: more other MD zs drivers should be fixed similarly.
XXX2: zsc on macppc has independent interrupts for channel A and B,
      but MI z8530sc can't handle such configuration.
2006-11-02 20:05:04 +00:00
tsutsui 5e4ac42c65 macppc always defines __HAVE_GENERIC_SOFT_INTERRUPTS,
so remove #ifdef/#ifndefs against it.
2006-11-02 19:41:34 +00:00
jmmv e0fd5659c6 Bring in fix from FreeBSD by tjr, 3 years and 9 months ago: Store a
reference to the parent directory's vnode instead of its smbnode to
avoid a use-after-free bug causing a panic when a smbfs mount is
forcefully unmounted.

Keep trying to flush the vnode list for the mount while some are still
busy and we are making progress towards making them not busy.  This
stops attempts to unmount idle smbfs mounts failing with EBUSY.

The easiest way to reproduce the above problem, from what I have seen is:
1) Assume /s is a smbfs mount point.
2) mount /s
3) stat /s/foo/1
4) umount /s
   Returns error because the file system is busy.
5) Shutdown the machine: panic in smbfs_reclaim because vrele
   accesses already-released memory.
2006-11-02 17:34:21 +00:00
tsutsui c2d79bf895 Don't touch the VR_STICKHW register on VT3043.
The commit log in FreeBSD's if_vr.c rev 1.43 says
"This is really only for the VT6102, but it doesn't hurt the older chips,"
but at least it hurts my VT86C100A (which returns a product ID of VT3043)
on macppc and causes kernel MCHK trap while the same board on i386
and VT6102 on macppc have no problem with it.
2006-11-02 17:32:11 +00:00
yamt 4d91d6d252 ltsleep: fix a race with wakeup(). 2006-11-02 16:26:25 +00:00
jmmv 51634dfd25 Make tmpfs_getpages behave as genfs_getpages by ignoring the input pages
array's contents and returning all the requested pages.  Otherwise there
are problems (accessing invalid memory) when the a_m vector is passed
uninitialized as the NFS server code does.  Fixes PR kern/34959.

Note that this is not a "real" fix.  While this makes tmpfs's getpages
operation consistent with the behavior of other file systems, it does
not resolve the different semantics between uvn_get and uao_get as
described in PR kern/32166.  I'm adding a comment in the code mentioning
exactly this so that it can be reviewed when this last problem is
addressed.
2006-11-02 15:35:25 +00:00
garbled 8e03013027 Comment out the debug options to siop, and change the undef to define.
This way they will be compiled by the i386 DEBUG kernel and tested.
2006-11-02 15:08:30 +00:00
garbled a68eec4cf9 Make these compile when SIOP_DEBUG is enabled, by nuking the reference to
t_offset, which no longer seems to exist.
2006-11-02 14:55:04 +00:00
christos 4055c640a2 put back p_ename, lost in the previous commit. 2006-11-02 13:28:25 +00:00
elad 7e8b842ffa Redo Veriexec raw disk/memory access policies so they hold only if the
request is for write access.
2006-11-02 12:48:35 +00:00
tsutsui 7f2c078b18 Pull some RX fixes from FreeBSD's if_vr.c rev 1.59:
- in vr_rxeoc() (i.e. on RX error interrupts), disable RX before
  calling vr_rxeof() and check it actually stopped
- no recovery is needed for VR_ISR_DROPPED, so just account ierrors
- also account ierrors in vr_rxeoc()
2006-11-02 11:02:58 +00:00
tsutsui 06503d5611 - make DMA descriptor members volatile
- set VR_RXSTAT_OWN after all other descriptor data is set

With these changes, vr_init() seems to initialize
the vr chip stuck on RX properly.
2006-11-02 10:44:30 +00:00
elad d6bdd9bb62 printf() -> log(). 2006-11-01 22:45:14 +00:00
martin 0a67366540 Make the syscall "code" variable unsigned - we don't test for negative
values when range checking.
2006-11-01 22:37:35 +00:00
christos 3f78162b5c implement kern.arandom properly, instead of lying about it and only filling
the first 4 bytes of the array with random data.
2006-11-01 22:27:43 +00:00
tls bd4d319d4b Change GENERIC, GENERIC.MP, GENERIC.MPACPI, GENERIC_LAPTOP, INSTALL,
INSTALL.MP, INSTALL_LAPTOP, and DISKLESS kernels so that they are
smaller and faster by removing support for actual i386 CPUs (which
lack write protection in supervisor mode, which requires a costly
workaround) and math coprocessor emulation.  Coprocessor emulation
is retained in the LAPTOP kernels, but not in the others.  Where
it is known that a configuration cannot be run with particular CPUs
(i486 in *MP kernels) remove that support as well.  Compile all
kernels with appropriate architecture and tuning flags (reduces
size, makes things faster).  Those requiring support for machines
with i386 CPU or lacking coprocessor can use the *SMALL or *TINY
kernels.
2006-11-01 19:33:41 +00:00
tsutsui c04f54e8f4 Fix another botch in rev 1.14:
vge_encap() should bail out if there is not enough free
TX descriptor _OR_ TX descriptor is still owned by the chip.

Anyway, we already check if the TX descriptor already has an mbuf
to be sent in vge_start() so no need to bother to check sc_tx_free
and VGE_TDSTS_OWN in the descriptor in normal case, then make it use
KASSERT(9) or wrap with #ifdef DIAGNOSTIC.

XXX1: I don't know why original FreeBSD driver checks
      if a number of free TX descriptors is more than two, not zero.
XXX2: Is it better to check a number of free descriptors in vge_start()
      like other our drivers rather than mbuf chain for each descriptor?
2006-11-01 18:11:18 +00:00
tsutsui 2b93194cee Remove a debug statement which was slipped in rev 1.21. 2006-11-01 17:13:37 +00:00