Commit Graph

124726 Commits

Author SHA1 Message Date
rodrigc
5ca19bbf73 Check the sectorsize of the underlying disk before trying to
bread() the UFS superblock.  Should eliminate crashes when trying
to do: mount -t ufs on an audio CD.

PR:		kern/85893
Reported by:	Russell Francis <rfrancis at ev dot net>
MFC after:	1 week
2006-06-03 21:20:37 +00:00
jhb
bdcca9d25a Bah, fix fat finger in last. Invert the ~ on MTX_FLAGMASK as it's
non-intuitive for the ~ to be built into the mask.  All the users now
explicitly ~ the mask.  In addition, add MTX_UNOWNED to the mask even
though it technically isn't a flag.  This should unbreak mtx_owner().

Quickly spotted by:	kris
2006-06-03 21:11:33 +00:00
imp
4cc73bae0e We don't have a ISA specific shutdown routine at this time, so remove
it.  We just moved it to be pci specific, so this was causing compile
problems (linking problems, so I didn't notice since I unwisely just
built the module).
2006-06-03 21:10:50 +00:00
imp
e914efa181 Since we turn off the interrupts, we don't need to disestablish
our ISR.
2006-06-03 21:05:36 +00:00
jhb
dc064c4d48 In the case of reentering the debugger due to an attempt to perform a
context switch while in the debugger, reenter the debugger sooner before
performing any statistics updates.
2006-06-03 20:49:44 +00:00
jhb
9c15984c1b Simplify mtx_owner() so it only reads m->mtx_lock once. 2006-06-03 20:45:00 +00:00
jhb
4f9dae34b7 Style fix to be more like _mtx_lock_sleep(): use 'while (!foo) { ... }'
instead of 'for (;;) { if (foo) break; ... }'.
2006-06-03 20:44:01 +00:00
jhb
23299c192f - Switch on the full 32-bit device ID to avoid collisions between the
vendor-specific device ids across vendors.
- Include the revision in the dc_devs[] array instead of special casing
  the revid handling in dc_devtype().
- Use PCI bus accessors to read registers instead of pci_read_config()
  where possible.
- Use an 8-bit write to update the latency timer.
- Use PCIR_xxx constants and remove unused DC_xxx related to standard
  PCI config registers.

MFC after:	1 week
2006-06-03 20:41:55 +00:00
jhb
fae2502406 Use PCI bus accessors rather than reading config registers directly to
get the subvendor device id.
2006-06-03 20:37:56 +00:00
obrien
f16c41b4d8 Increase the field widths of flt (total number of page faults), fr (pages
freed), & cs (CPU context switch rate).  'vmstat 1' output is now lined up
for today's typical machines vs. a VAX.  [tested my modest 1.6ghz laptop]
2006-06-03 20:34:56 +00:00
rwatson
8d3568ae0b When entering a timer on a tcpcb, don't continue processing if it has been
dropped.  This prevents a bug introduced during the socket/pcb refcounting
work from occuring, in which occasionally the retransmit timer may fire
after a connection has been reset, resulting in the resulting R|A TCP
packet having a source port of 0, as the port reservation has been
released.

While here, fixing up some RUNLOCK->WUNLOCK bugs.

MFC after:	1 month
2006-06-03 19:37:08 +00:00
rwatson
133fd236d1 Acquire udbinfo lock after call to soreserve() rather than before, as it
is not required.  This simplifies error-handling, and reduces the time
that this lock is held.

MFC after:	1 month
2006-06-03 19:29:26 +00:00
imp
8b0790bd13 Move shutdown, and pci specific methods into pccbb_pci.c. Many more
are needed still.
2006-06-03 19:16:45 +00:00
imp
0ed782821f The interrupt routine is pci specific. Move it into pccbb_pci.c. 2006-06-03 19:07:16 +00:00
imp
6fe4eb5fde Fix a couple printf's to be properly terminated.
Use a better name for the cbb thread.
2006-06-03 18:58:48 +00:00
imp
4c81cb92a3 Succeed for writing bus value... nobody that calls must care :-( 2006-06-03 18:57:28 +00:00
csjp
7686abec4a Back out previous two commits, this caused some problems in the namespace
resulting in some build failures. Instead, to fix the problem of bpf not
being present, check the pointer before dereferencing it.

This is a temporary bandaid until we can decide on how we want to handle
the bpf code not being present. This will be fixed shortly.
2006-06-03 18:48:14 +00:00
csjp
e1f2ab1542 Temporarily include files so that our macro checks do something useful. 2006-06-03 18:16:54 +00:00
iedowse
5043515219 Allow zero-length read/write operations to get through to the
hardware. Also set both the read and write timeouts from the
USB_SET_TIMEOUT ioctl.
2006-06-03 10:37:42 +00:00
mjacob
903090f356 allow this to compile cleanly under RELENG_4 2006-06-03 07:19:44 +00:00
csjp
5a4a810c4f Make sure we don't try to dereference the the if_bpf pointer when bpf has
not been compiled into the the kernel.

Submitted by:	benno
2006-06-03 06:37:00 +00:00
scottl
730d02a45f Remove stale entries. 2006-06-03 01:52:11 +00:00
davidxu
be54fdbbff Remove unused member. 2006-06-03 00:19:40 +00:00
sam
c35d17efe0 add missed calls to bpf_peers_present 2006-06-02 23:14:40 +00:00
jhb
f018362c4a Conditionally acquire Giant in netgraph callouts to honor mpsafenet=0.
Reported by:	sekes <gexlie at gmail dot com>
MFC after:	1 week
2006-06-02 20:35:39 +00:00
pjd
deb3721592 Fix a problem introduced in revision 1.220. On mount(2) failure, don't
forget to unbusy file system before its destruction.

This fixes the following warning on mount failure:

	Mount point <X> had 1 dangling refs

Tested by:	wkoszek
2006-06-02 20:29:02 +00:00
csjp
2c4f67981e Fix the following bpf(4) race condition which can result in a panic:
(1) bpf peer attaches to interface netif0
	(2) Packet is received by netif0
	(3) ifp->if_bpf pointer is checked and handed off to bpf
	(4) bpf peer detaches from netif0 resulting in ifp->if_bpf being
	    initialized to NULL.
	(5) ifp->if_bpf is dereferenced by bpf machinery
	(6) Kaboom

This race condition likely explains the various different kernel panics
reported around sending SIGINT to tcpdump or dhclient processes. But really
this race can result in kernel panics anywhere you have frequent bpf attach
and detach operations with high packet per second load.

Summary of changes:

- Remove the bpf interface's "driverp" member
- When we attach bpf interfaces, we now set the ifp->if_bpf member to the
  bpf interface structure. Once this is done, ifp->if_bpf should never be
  NULL. [1]
- Introduce bpf_peers_present function, an inline operation which will do
  a lockless read bpf peer list associated with the interface. It should
  be noted that the bpf code will pickup the bpf_interface lock before adding
  or removing bpf peers. This should serialize the access to the bpf descriptor
  list, removing the race.
- Expose the bpf_if structure in bpf.h so that the bpf_peers_present function
  can use it. This also removes the struct bpf_if; hack that was there.
- Adjust all consumers of the raw if_bpf structure to use bpf_peers_present

Now what happens is:

	(1) Packet is received by netif0
	(2) Check to see if bpf descriptor list is empty
	(3) Pickup the bpf interface lock
	(4) Hand packet off to process

From the attach/detach side:

	(1) Pickup the bpf interface lock
	(2) Add/remove from bpf descriptor list

Now that we are storing the bpf interface structure with the ifnet, there is
is no need to walk the bpf interface list to locate the correct bpf interface.
We now simply look up the interface, and initialize the pointer. This has a
nice side effect of changing a bpf interface attach operation from O(N) (where
N is the number of bpf interfaces), to O(1).

[1] From now on, we can no longer check ifp->if_bpf to tell us whether or
    not we have any bpf peers that might be interested in receiving packets.

In collaboration with:	sam@
MFC after:	1 month
2006-06-02 19:59:33 +00:00
mjacob
420f0a56b1 Make the code able to compile again in RELENG_4. 2006-06-02 19:23:12 +00:00
mjacob
d627ba2486 More checkpointing on the way toward really (finally)
fixing speed negotiation.

Also fix the mpt_execute_req function to actually
match mpt_execute_req_a64. This may explain why
i386 users were having more grief.
2006-06-02 18:50:39 +00:00
rodrigc
f6f16a3043 Fix "mount -u -o ro".
Requested by:	maxim
2006-06-02 17:53:46 +00:00
ambrisko
f3fbf567ee Make lio ident more consistant with aio ident. 2006-06-02 17:45:48 +00:00
motoyuki
ee159d095f doc fix: option MFS is obsolete. use MD_ROOT instead.
PR:	conf/93878
2006-06-02 15:01:11 +00:00
glebius
af1a25ba5d Fix gif_output() so that GIF_UNLOCK() is performed only in case
we have locked the softc.

PR:		kern/98298
Submitted by:	Eugene Grosbein
2006-06-02 14:10:52 +00:00
pjd
f2806f2f0a Don't forget to unlock kq lock in low memory situations.
OK'ed by:	jmg
2006-06-02 13:23:39 +00:00
pjd
7563ec071e Remove confusing done_noglobal label. The KQ_GLOBAL_UNLOCK() macro know
how to handle both situations - when kq_global lock is and is not held.

OK'ed by:	jmg
2006-06-02 13:21:21 +00:00
pjd
e8fbceff26 Use SLIST_FOREACH_SAFE() macro, because knote_drop() can free an element
which can be then used to find next element in the list.

OK'ed by:	jmg
2006-06-02 13:18:59 +00:00
des
77a3ee6587 As far as I can tell, the correct CPU family for amd64 (which Linux calls
x86_64) is 15, not 6.

MFC after:	3 weeks
2006-06-02 13:01:25 +00:00
maxim
a14cab68e0 o Implement findblk command: find the inode(s) owning the specified
disk block(s) number(s).

Obtained from:	NetBSD
MFC after:	2 months
2006-06-02 12:55:26 +00:00
cognet
df0505f188 Don't #error if no CPU is defined but we're not compiling the kernel. 2006-06-02 09:39:06 +00:00
dds
e249370b75 Replace the array initialization using the gcc-specific format
[constant] value
with the C99 format
[constant] = value
2006-06-02 09:08:51 +00:00
davidxu
523fcb36a8 Remove unused member field m_queue. 2006-06-02 08:37:01 +00:00
rwatson
3916094040 raw_disconnect() now disconnects but does not detach the raw pcb. As a
result, raw_uabort() now needs to call raw_detach() directly.  As
raw_uabort() is never called, and raw_disconnect() is probably not ever
actually called in practice, this is likely not a functional change, but
improves congruence between protocols, and avoids a NULL raw cb pointer
after disconnect, which could result in a panic.

MFC after:	1 month
2006-06-02 08:27:15 +00:00
rwatson
88f1a971b9 Minor restyling and cleanup around ipport_tick().
MFC after:	1 month
2006-06-02 08:18:27 +00:00
glebius
781f6a594a - Add definition for IFM_10G_CX4.
- Put IFM_10G_CX4 and IFM_10G_SR into IFMEDIA_BAUDRATE array.

Requested by:	Jack Vogel <jfvogel gmail.com>
2006-06-02 07:50:58 +00:00
imp
df3742b87a Zero out the devices when they are deleted. We can access the pointer after
the bus detaches which can lead to core dumps.  This is quite rare.
2006-06-02 06:33:35 +00:00
mlaier
5b7662dfe9 Print dynamic rules for IPv6 as well.
PR:		bin/98349
Submitted by:	Mark Andrews
MFC after:	2 weeks
2006-06-02 05:17:17 +00:00
imp
7a24ed8d3d EISA bus ia64 systems don't exist in reality. I'm told they may exist in
theory, but that it was OK to remove from NOTES.

OK'd by: marcel
2006-06-02 04:46:26 +00:00
markus
9e4a31c8ec - Only print a clarifying message about which HCI node has been used if there
is more than one HCI node present
- Use errx(3) instead of err(3) if there is no HCI node present as errno
  is 0 in this case and the resulting error message wouldn't make much sense

Approved by:	emax (mentor)
2006-06-02 00:29:01 +00:00
cognet
9a61d7bd72 sched_rem() already sets ke->ke_state to KES_THREAD, so there's no need
to redo it.
2006-06-01 22:45:56 +00:00
rodrigc
3a0e5e399e Include "xfs_macros.h" to fix tinderbox build breakage. 2006-06-01 20:51:59 +00:00