Commit Graph

41255 Commits

Author SHA1 Message Date
Robert Drehmel
e76bad968c Correct six return statements which returned zero instead of
an appropriate error number after a failure condition.

In particular, three of the changed statements return ESRCH for a
failed pfind(), and in also three places a non-zero return
from p_cansee() will be passed back,

Also noticed by:	rwatson
2003-07-17 22:44:41 +00:00
Poul-Henning Kamp
116b3c2af9 Make sure that SWP_NPAGES always has the same value in all source
files, so that SWAP_META_PAGES does not vary either.

swap_pager.c ended up with a value of 16, everybody else 8.  Go with
the 16 for now.

This should only have any effect in the "kill processes because we
are out of swap" scenario, where it will make some sort of estimate
of something more precise.
2003-07-17 21:58:43 +00:00
Mark Murray
5146af6d82 Style(9) cleanup. There was no consistent style in this driver, and
The next round of commits will be to fix up locking in it. This lot
is to at least give a consistent base to work off.

OK'ed by:	imp, mdodd
2003-07-17 19:37:56 +00:00
John Baldwin
9e66b98a4a Fix a bogon in the previous commit. When suppressing multiple isab
devices, we have to allow for the case when the isab0 device is ourselves.

Tested by:	markm
2003-07-17 19:13:41 +00:00
John Polstra
c7cc6a4d9f Correct comments to indicate that the EM_RADV and EM_TADV parameters
are not applicable to the 82544.
2003-07-17 19:02:34 +00:00
Scott Long
476755ab25 Now that the dust has settled, make dflt_lock() always panic. 2003-07-17 16:07:46 +00:00
Thomas Quinot
c679659e75 Add quirk entry for IntelligentStick disc-on-key USB devices.
Reported by Samuel Tardieu <sam@rfc1149.net>.

Reviewed by:	roberto
MFC after:	1 week
2003-07-17 15:33:08 +00:00
Hartmut Brandt
4f72640780 The card resets the S/Uni chip when it is resetted. Therefor
we need to reinitialize the PHY after the call to reset when
stopping the interface.
2003-07-17 13:43:16 +00:00
Jeffrey Hsu
a12569ec4f Drop Giant around syncache timer processing. 2003-07-17 11:19:25 +00:00
Mike Makonnen
994599d782 Fix umtx locking, for libthr, in the kernel.
1. There was a race condition between a thread unlocking
   a umtx and the thread contesting it. If the unlocking
   thread won the race it may try to wakeup a thread that
   was not yet in msleep(). The contesting thread would then
   go to sleep to await a wakeup that would never come. It's
   not possible to close the race by using a lock because
   calls to casuptr() may have to fault a page in from swap.
   Instead, the race was closed by introducing a flag that
   the unlocking thread will set when waking up a thread.
   The contesting thread will check for this flag before
   going to sleep. For now the flag is kept in td_flags,
   but it may be better to use some other member or create
   a new one because of the possible performance/contention
   issues of having to own sched_lock. Thanks to jhb for
   pointing me in the right direction on this one.

2. Once a umtx was contested all future locks and unlocks
   were happening in the kernel, regardless of whether it
   was contested or not. To prevent this from happening,
   when a thread locks a umtx it checks the queue for that
   umtx and unsets the contested bit if there are no other
   threads waiting on it. Again, this is slightly more
   complicated than it needs to be because we can't hold
   a lock across casuptr(). So, the thread has to check
   the queue again after unseting the bit, and reset the
   contested bit if it finds that another thread has put
   itself on the queue in the mean time.

3. Remove the if... block for unlocking an uncontested
   umtx, and replace it with a KASSERT. The _only_ time
   a thread should be unlocking a umtx in the kernel is
   if it is contested.
2003-07-17 11:06:40 +00:00
Marcel Moolenaar
c770dc0b63 Fix the ski loader, broken by the gcc upgrade. Update the linker
script to match the one for the EFI loader and rewrite __start()
in assembly to have gp defined without getting in the way of the
compiler.
2003-07-17 01:49:59 +00:00
Marcel Moolenaar
cfc2754a51 Have the linker script look more like the default linker script
on ia64. This fixes the breakage caused by the gcc upgrade that
resulted in a broken executable.
2003-07-17 00:32:08 +00:00
Bosko Milekic
48719ca7c8 Change the style of the english used to print accounting enabled
and disabled.  This means no period at the end and changing
"Process accounting <foo>" to "Accounting <foo>".

Pointed out by: bde
2003-07-16 13:20:10 +00:00
John-Mark Gurney
587757b066 seems like i386 && DIAGNOSTIC needs sys/proc.h
Noticed by:	tinderbox
2003-07-16 08:15:02 +00:00
Don Lewis
64e6fa2880 Nuke the declaration of a function which was not implemented. 2003-07-16 08:13:13 +00:00
Bosko Milekic
d2dbf5bc0b Log process accounting activation/deactivation.
Useful for some auditing purposes.

Submitted by: Christian S.J. Peron <maneo@bsdpro.com>
PR: kern/54529
2003-07-16 03:59:50 +00:00
John-Mark Gurney
e7091e1518 add missing machine/bus.h that is necessary to build now that usb is bus_dma
aware.
2003-07-16 03:43:14 +00:00
John-Mark Gurney
fb393615ed add missing machine/bus.h headers that are now necessary because of the
bus_dma addition.
2003-07-16 02:20:14 +00:00
John-Mark Gurney
f760fd6128 change CLASS depending upon __ELF_WORD_SIZE. This is necessary if
someone wants to try to run 32bit binaries on sparc64.
2003-07-16 01:14:40 +00:00
Don Lewis
6ff1481d5c Rearrange the SYSINIT order to call lockmgr_init() earlier so that
the runtime lockmgr initialization code in lockinit() can be eliminated.

Reviewed by:	jhb
2003-07-16 01:00:39 +00:00
Bill Paul
0434d1b8d2 Add support for the BCM5705 and its ilk. Changes:
- 5705 doesn't support jumbo frames
- Statistics must be read from registers
- RX return ring must be capped at 512 entries
- Omit initialization of certain device blocks
- Acknowledge link change interrupts by setting the 'link changed'
  bit in the status register (used to have no effect)
- Remember to toggle the MI completion bit too
- Set the mbuf low watermark differently (on-chip memory buffers,
  not BSD mbufs)
- Don't enable Ethernet@WireSpeed feature for certain 5705 chip revs
- Add additional PCI IDs for 5705 and 5782 parts
- Add a forgotten 5704 PCI ID

Most changes ripped kicking and screaming from the Broadcom linux driver.
Thanks to Paul Saab for sanity testing. (My lack of sanity has been
confirmed.)
2003-07-16 00:09:56 +00:00
John-Mark Gurney
e93581dc7a add support for interrupt counting on sparc64. This copies part of the
code from i386.  The code has a slight bogon that interrupts are counted
twice.  Once on the ithread dispatch and once on the dispatch for the vector

vmstat -i and systat -vm now contains interrupt counts.

Reviewed by:	jake
2003-07-16 00:08:43 +00:00
John-Mark Gurney
57499a32b1 make allocation of the necessary data structures most efficent by using
a full page instead of only part of a page.

Reviewed by:	joe
2003-07-15 23:19:49 +00:00
John-Mark Gurney
86231a1846 fix support for umass and related devices on ohci. This is a partial
sync of the NetBSD code.

fix isochornous support for ohci.  This gets webcams like my OV511
working on sparc64.

PR:		kern/52589
Submitted by:	Bruce R. Montague (isochonous support)
Reviewed by:	joe among others
2003-07-15 23:12:54 +00:00
Luigi Rizzo
4805529cf8 Allow set 31 to be used for rules other than 65535.
Set 31 is still special because rules belonging to it are not deleted
by the "ipfw flush" command, but must be deleted explicitly with
"ipfw delete set 31" or by individual rule numbers.

This implement a flexible form of "persistent rules" which you might
want to have available even after an "ipfw flush".
Note that this change does not violate POLA, because you could not
use set 31 in a ruleset before this change.

sbin/ipfw changes to allow manipulation of set 31 will follow shortly.

Suggested by: Paul Richards
2003-07-15 23:07:34 +00:00
John-Mark Gurney
45dd937507 make usb bus_dma aware.
Reviewed by:	joe among others
2003-07-15 22:42:37 +00:00
John-Mark Gurney
9f4b5407ca sync w/ NetBSD
part of:
revision 1.101
date: 2002/06/01 23:51:04;  author: lukem;  state: Exp;  lines: +5 -7
2003-07-15 22:19:00 +00:00
John-Mark Gurney
e65f8c784d minor white space fix up
initalize itds
remove extra htole32.  Things don't work to well when you do
htole32(htole32(var))
2003-07-15 22:14:22 +00:00
Jeffrey Hsu
9d11646de7 Unify the "send high" and "recover" variables as specified in the
lastest rev of the spec.  Use an explicit flag for Fast Recovery. [1]

Fix bug with exiting Fast Recovery on a retransmit timeout
diagnosed by Lu Guohan. [2]

Reviewed by:		Thomas Henderson <thomas.r.henderson@boeing.com>
Reported and tested by:	Lu Guohan <lguohan00@mails.tsinghua.edu.cn> [2]
Approved by:		Thomas Henderson <thomas.r.henderson@boeing.com>,
			Sally Floyd <floyd@acm.org> [1]
2003-07-15 21:49:53 +00:00
Nate Lawson
ff40920e9e Change the msleep part of EcWaitEvent to be a separate loop, fixing a
problem that for some very slow ECs (~6 ms occasionally) causes a
timeout.  Also finish resource cleanup in the error case in attach.

Tested by:	ume
2003-07-15 19:24:36 +00:00
Nate Lawson
fa1045a79d Remove old defines since they are no longer used. 2003-07-15 19:19:54 +00:00
Nate Lawson
8a7e9ab4b7 Fix the ACPI_DEBUG build for the non-module case. Move the #define into
acfreebsd.h and remove it from the Makefile.  Now ACPI_DEBUG implies
ACPI_DISASSEMBLER.

Noticed by:	marcel
2003-07-15 19:18:41 +00:00
Hartmut Brandt
fe8dee1062 Instead of returning an error call the ioctl() handler of the interface
when we get request that we cannot handle ourself. This allows userland
to reach the ATM interfaces for ioctls.
2003-07-15 15:51:50 +00:00
Hartmut Brandt
4b394dbdd4 Test the OPEN flag to see whether a VCI is already open on the hook instead
to look for vci != 0. We can now open VCI 0 for monitoring purposes.
2003-07-15 15:48:10 +00:00
Hartmut Brandt
71c47209f5 Be careful to call bus_dmamap_load with BUS_DMA_NOWAIT so that the
callback will never be deferred. ATM needs to prevent cell and packet
ordering. Also use the default mutex and lock functions (those that
panic) for the tag creation.
2003-07-15 15:45:41 +00:00
David Xu
af161f2232 If initial thread is still a bound thread, don't change its signal mask. 2003-07-15 14:04:38 +00:00
Hartmut Brandt
8dd4275c36 This is a driver for IDT77252 based ATM interfaces. It has been tested
with a ProATM-155 and an IDT evaluation board and should also work
with a ProATM-25 (it seems to work at least, I cannot really measure
what the card emits). The driver has been tested on i386 and sparc64,
but should work an other archs also. It supports UBR, CBR, ABR and VBR;
AAL0, AAL5 and AALraw. As an additional feature VCI/VPI 0/0 can be
opened for receiving in AALraw mode and receives all cells not claimed
by other open VCs (even cells with invalid GFC, VPI and VCI fields and
OAM cells).

Thanks to Christian Bucari from ProSum for lending two cards and answering
my questions.
2003-07-15 11:57:24 +00:00
Hartmut Brandt
b3d4fe3d04 Remove three unneccessary comparisons that were always true.
Spotted by: gcc
2003-07-15 11:50:59 +00:00
Hartmut Brandt
09d405d969 Implement an utility function that can be used by device drivers to
implement the ATMIOCGVCCS ioctls. This routine handles changing
VCC tables (which can occure because we cannot hold the driver mutex
while allocating memory) with a loop and a re-allocation, should the
table not fit in the allocated memory.
2003-07-15 10:37:09 +00:00
Hartmut Brandt
198b0c39a9 The mbuf put on the interface queue contains the 4-byte pseudoheader.
Account for this in the byte count.
2003-07-15 10:30:57 +00:00
Hartmut Brandt
21a023e9c8 Add identifiers for ProSum's and IDT's cards that are based on
the IDT77252 chip. The driver will follow soon.
2003-07-15 10:28:06 +00:00
Hartmut Brandt
918c6c0c7e ATM_PH_LLCSNAP and ATMIO_FLAG_LLCSNAP must have the same value, so
define one in terms of the other.
2003-07-15 10:26:34 +00:00
Hartmut Brandt
e6b34a1dbb Protect a kernel structure by _KERNEL. 2003-07-15 10:22:55 +00:00
Hartmut Brandt
7e9024cdd9 Add a facility for devices, specifically network interfaces, that require
large to huge amounts of small or medium sized receive buffers. The problem
with these situations is that they eat up the available DMA address space
very quickly when using mbufs or even mbuf clusters. Additionally this
facility provides a direct mapping between 32-bit integers and these buffers.
This is needed for devices originally designed for 32-bit systems. Ususally
the virtual address of the buffer is used as a handle to find the buffer as
soon as it is returned by the card. This does not work for 64-bit machines
and hence this mapping is needed.
2003-07-15 08:59:38 +00:00
Warner Losh
fa3682c1c9 OpenBSD calls this AIRVAST, so use that instead 2003-07-15 07:22:21 +00:00
Warner Losh
f475f6fff3 sync to 1.58 2003-07-15 07:22:03 +00:00
Marcel Moolenaar
e90153536e Rename thread_siginfo to cpu_thread_siginfo. 2003-07-15 04:43:33 +00:00
David Xu
4b7d5d84ee Rename thread_siginfo to cpu_thread_siginfo 2003-07-15 04:26:26 +00:00
Warner Losh
6a78c9e48a Add Siemens SpeedStream 1021
Obainted from: openbsd (in spirit); millert
2003-07-15 03:34:08 +00:00
Warner Losh
2f71d7885d sync to pccarddevs 1.57 2003-07-15 03:30:31 +00:00
Warner Losh
bf564bcd73 Add Siemens SpeedStream 1021
Obtained From: openbsd (1.105; millert)
2003-07-15 03:27:53 +00:00
David Xu
20a2d71332 Rename thread_siginfo to cpu_thread_siginfo.
Suggested by: jhb
2003-07-15 00:11:04 +00:00
Jeffrey Hsu
330841c763 Rev 1.121 meant to pass the value 1 to soalloc() to indicate waitok.
Reported by:	arr
2003-07-14 20:39:22 +00:00
Josef Karthauser
094fb32de7 Update to reflect the NetBSD patches that are already included. 2003-07-14 20:31:03 +00:00
Alexander Kabaev
fc71f32c53 Use swi to process port status changes. Calling ucom layer directly
from interrupt handler panics the machine.
2003-07-14 20:26:37 +00:00
Josef Karthauser
8695068f27 Make note that we already have these NetBSD patches. 2003-07-14 20:19:21 +00:00
Josef Karthauser
5c8ea6280c Make note of some NetBSD patches that we already have. 2003-07-14 20:11:52 +00:00
Josef Karthauser
f16f7f274c Make a note of some patches from NetBSD that we already have. 2003-07-14 20:08:21 +00:00
Josef Karthauser
b214af6eba Backout the last commit!
MFNetBSD: revision 1.137
    date: 2003/01/20 07:12:13;  author: simonb;
    Grrr.  So much for my ability to use grep(1) effectively.  Pointed out
    by Stephen Degler in private mail.
2003-07-14 19:56:32 +00:00
Josef Karthauser
563a940856 MFNetBSD: revision 1.136
date: 2003/01/20 05:30:09;  author: simonb;
    The Double-Semi-Colon Police.
2003-07-14 19:54:21 +00:00
Josef Karthauser
a237c6ec2e MFNetBSD: revision 1.135
date: 2002/12/10 14:07:37;  author: toshii;  state: Exp;  lines: +6 -6
    Add a couple of le32toh which were missing in the previous.
    Pointed out by SOMEYA Yoshihiko.
2003-07-14 19:51:53 +00:00
Josef Karthauser
e35285ad59 MFNetBSD: revision 1.134
date: 2002/12/07 07:33:20;  author: toshii;  state: Exp;  lines: +50 -29
    Update xfer->frlengths for input isoc transfer.  Based on patches from
    SOMEYA Yoshihiko.
    Also fix error handling for isoc transfer somewhat; usb_transfer_complete
    shouldn't be called for more than once.
2003-07-14 19:50:06 +00:00
Josef Karthauser
0ab3fe8a80 MFNetBSD: revision 1.133
date: 2002/12/07 07:14:28;  author: toshii;
    Fix several nits.  Mostly from SOMEYA Yoshihiko.
    - Call usbd_transfer_complete at splusb.
    - Fix a botched for loop in ohci_rem_ed.
    - In ohci_close_pipe, wait 1ms after removing an ED to avoid possible race
     condition.

The splusb change is non-functional on FreeBSD.
The botched loop and race condition changes came from us.

This patch is non-functional.
2003-07-14 19:47:59 +00:00
Josef Karthauser
4999f44917 MFNetBSD: revision 1.132
date: 2002/12/07 06:52:11;  author: toshii;
    Remove junk at the end of a DPRINTF.  From SOMEYA Yoshihiko.
2003-07-14 19:42:05 +00:00
Josef Karthauser
99112dddf2 MFNetBSD: revision 1.129
date: 2002/09/29 20:58:25;  author: augustss;
    Add some spl calls to protect critical regions. From kern/18440,
    Takeshi Nakayama.

(No functional change on FreeBSD).
2003-07-14 19:39:16 +00:00
Josef Karthauser
69e07da0ff Regen. 2003-07-14 19:30:49 +00:00
Josef Karthauser
83c1347694 MFNetBSD: Update the list of devices that can attach to uvisor (untested). 2003-07-14 19:30:01 +00:00
Josef Karthauser
771b291ad0 MFNetBSD:
date: 2003/05/13 04:41:59;  author: gson;
    Function names printed in debug messages did not always match the
    actual name of the function.
2003-07-14 18:56:33 +00:00
Josef Karthauser
d0eba3629e MFNetBSD: revision 1.172
date: 2003/02/23 04:19:26;  author: simonb;
    Remove unreachable break after return.
2003-07-14 18:52:12 +00:00
Josef Karthauser
b6cc3bf979 MFNetBSD: revision 1.170
date: 2003/02/19 01:35:04;  author: augustss;
    Bail out early in isoc_done if the ii is not on the interrupt list.
2003-07-14 18:49:18 +00:00
Josef Karthauser
40d6041c4d MFNetBSD: rev 1.169
date: 2003/02/16 23:15:28;  author: augustss;
    Don't take xfers off the interrupt list if they are not on it yet.
2003-07-14 18:47:27 +00:00
Josef Karthauser
40facef91c Make a note of which patches we already have incorporated from NetBSD. 2003-07-14 18:42:58 +00:00
Josef Karthauser
4dbc7c2826 Merge up-to-date with NetBSD. No functional changes. 2003-07-14 18:37:47 +00:00
Josef Karthauser
8c14b22d09 MFNetBSD:
date: 2002/10/01 01:25:25;  author: thorpej;
    Use CFATTACH_DECL().

Not a functional change on FreeBSD.
2003-07-14 18:33:55 +00:00
Josef Karthauser
d4322278fa MFNetBSD:
date: 2002/09/23 05:51:20;  author: simonb;
    Remove breaks after returns, unreachable returns and returns after
    returns(!).
2003-07-14 18:25:47 +00:00
Josef Karthauser
222841679f MFNetBSD:
date: 2003/02/08 03:32:51;  author: ichiro;
    change URL pointers of USB[1,2] specification
2003-07-14 18:14:15 +00:00
Josef Karthauser
e36ee542ba MFNetBSD: rev 1.166
date: 2002/12/31 02:21:31;  author: dsainty;
    Be somewhat more persuasive about enabling the port on a port reset.
    USB protocol dictates that the port enable must be implied by the port
    reset. To implement this on (at least) the VIA VT83C572 this means we
    need to wait around tweaking the chip state until the port actually
    transitions to enabled (or the device goes away).  Likely fixes
    kern/11018.
2003-07-14 18:07:54 +00:00
Josef Karthauser
bddc8bd3e9 MFNetBSD: 1.165
date: 2002/12/31 02:04:49;  author: dsainty;
    CONSTCOND away some lint warnings
2003-07-14 17:58:26 +00:00
Josef Karthauser
753bb32e49 As defined by USB Specification Rev 2.0 (in section 11.24.2.5), to
get a Hub descriptor, we have to set req.wValue to "Descriptor Type
and Descriptor Index". In this case, Descriptor Type is 0x29
(UDESC_HUB), Descriptor Index should be 0.

If I don't do a check (dev->address > 1 ... ), root hub fails.

A new Cytronix 4-port USB 2.0 Hub (Cypress CY7C65640 chip) now works
after this patch.

Submitted by:	Alexander Pohoyda <alexander.pohoyda@gmx.net>
MFC after:	7 days
2003-07-14 17:46:27 +00:00
Nate Lawson
1fd53fb949 Add dmobject.c to sys/conf/files also. While I'm here, remove unnecessary
nowerror options for the ACPI_DEBUG build case.
2003-07-14 17:43:09 +00:00
Nate Lawson
06bc618c85 Fix build with ACPI_DEBUG option.
Reported by:	Mark Santcroos <marks@ripe.net>, des+tinderbox
2003-07-14 17:19:45 +00:00
Josef Karthauser
4fbf101dc9 Regen. 2003-07-14 17:15:29 +00:00
Josef Karthauser
aaa3471f0b Add an entry for the Cypress slim hub.
Submitted by:	Alexander Pohoyda <alexander.pohoyda@gmx.net>
2003-07-14 17:14:04 +00:00
Hartmut Brandt
d41c52a7f0 Implement statistics for the PHY chips. Statistics are hold in
64-bit counters that wrap on overflow. They are collecte once per
second from the chips. Currently they can be retrieved via a sysctl phy_stats.
A write of an arbitrary value to the sysctl atomically retrieves the
statistics and clears them.
2003-07-14 15:06:53 +00:00
Hartmut Brandt
c3b744aa27 Add support for the IDT77155 Sonet/SDH PHY. 2003-07-14 12:12:50 +00:00
Nate Lawson
726c457a48 This commit was generated by cvs2svn to compensate for changes in r117535,
which included commits to RCS files with non-trunk default branches.
2003-07-14 02:58:00 +00:00
Nate Lawson
4bad3a1025 Remove a multiply-defined function. The change has been submitted to the
vendor.
2003-07-14 02:58:00 +00:00
Marcel Moolenaar
6613111b55 Fix build breakage on ia64. The second argument of AcpiOsReadable()
and AcpiOsWritable() have type ACPI_SIZE and not UINT32.
2003-07-14 02:42:15 +00:00
Nate Lawson
6fca9360db Update code to work with 0619 dist
* Use ACPI_BUFFER as the type for AcpiGetObjectInfo
* Remove AcpiEnableEvent/AcpiClearEvent for ACPI_EVENT_FIXED (power/sleep
  buttons) as they are no longer needed
* Change calls to use the new GPE functions
* Add AcpiOs*Lock functions
2003-07-13 22:57:16 +00:00
Nate Lawson
cefe7f9185 Add include file so this builds with new acpica
Reported by:	Kevin Oberman <oberman@es.net>
2003-07-13 22:54:53 +00:00
Nate Lawson
0078ca95f5 Fix handling of _BST in the new dist.
Submitted by:	kochi@netbsd.org
2003-07-13 22:52:51 +00:00
Nate Lawson
377a65490a This commit was generated by cvs2svn to compensate for changes in r117527,
which included commits to RCS files with non-trunk default branches.
2003-07-13 22:52:51 +00:00
Nate Lawson
1fd6e80f3e Patch for global lock error messages that the vendor will import eventually.
Originally committed as 1.1.1.17
2003-07-13 22:50:30 +00:00
Nate Lawson
767fb63125 This commit was generated by cvs2svn to compensate for changes in r117525,
which included commits to RCS files with non-trunk default branches.
2003-07-13 22:50:30 +00:00
Nate Lawson
a4ae793658 Commit local patches for files off the vendor branch. 2003-07-13 22:47:01 +00:00
Nate Lawson
4f42014b1c Unmodified files from the vendor 0619 dist that should no longer be off the
vendor branch.
2003-07-13 22:45:34 +00:00
Nate Lawson
4146e46ceb ACPICA import from the 0619 dist. 2003-07-13 22:44:13 +00:00
Nate Lawson
5303348047 This commit was generated by cvs2svn to compensate for changes in r117521,
which included commits to RCS files with non-trunk default branches.
2003-07-13 22:44:13 +00:00
Robert Drehmel
857961d925 Avoid an unnecessary calculation: there is no need to subtract
`firstaddr' from `v' if we know that the former equals zero.
2003-07-13 21:02:11 +00:00
Robert Watson
533d8562e4 Move the MAC entry point to label ethernet-sourced mbufs with a MAC label
from the network interface earlier in ether_input().  At some point
(no fingers pointed), things were restructured and the labeling operation
moved later.  This wasn't a problem as BPF_MTAP() relies on the ifnet
label not the mbuf label, but there might have been other problems.

Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-07-13 20:32:58 +00:00
Sam Leffler
45cabbdc58 o add read-only sysctls to view regulatory domain, country code, and
outdoor use controls
o use sysctl-visible values in setting up channel list
2003-07-13 17:07:25 +00:00
Hidetoshi Shimokawa
8ce4e5189e Fix for FAIL_IF_NO_KBD case as expected.
Even if we have no AT keyboard, an AT keyboard is registered because
it's probed with KB_CONF_PROBE_ONLY flag set during console initialization.
Unregister the keyboard if it doesn't present while second probe.

This should fix USB keyboard only case without 'kbdcontrol -k /dev/kbd1'.
2003-07-13 10:08:33 +00:00
Yoshihiro Takahashi
943be5d359 Fixed build error with GCC 3.3.1 2003-07-13 08:13:52 +00:00
Yoshihiro Takahashi
88dbf7e716 Fixed mouse cursor support.
Submitted by:	KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
2003-07-13 08:09:31 +00:00
Marcel Moolenaar
ed4ee6b2af Enable the high FP registers when we call the FPSWA handler and disable
them again afterwards. This fixes a disabled FP fault while in the FPSWA
handler.
While here, merge the FP fault and FP trap handling code to reduce code
duplication. Where code was different, it was not sure it should be.

Trigger case: ports/math/atlas
2003-07-13 04:08:16 +00:00
Don Lewis
857d9c60d0 Extend the mutex pool implementation to permit the creation and use of
multiple mutex pools with different options and sizes.  Mutex pools can
be created with either the default sleep mutexes or with spin mutexes.
A dynamically created mutex pool can now be destroyed if it is no longer
needed.

Create two pools by default, one that matches the existing pool that
uses the MTX_NOWITNESS option that should be used for building higher
level locks, and a new pool with witness checking enabled.

Modify the users of the existing mutex pool to use the appropriate pool
in the new implementation.

Reviewed by:	jhb
2003-07-13 01:22:21 +00:00
Paul Saab
3c63a8b4fc Check the status of the user command and return the proper error
to the user.
2003-07-12 22:37:03 +00:00
Paul Saab
4bca277bd3 Quiet down ciss unless bootverbose is set. 2003-07-12 22:32:27 +00:00
Mike Heffner
e0c22597cb Add support for the A4 Tech RFSW-35 mouse wheel. Probe is similar to
4D Plus.

PR:		44333
2003-07-12 18:36:04 +00:00
Hidetoshi Shimokawa
d7e486b41d Allow retrieval of local Configuration ROM. 2003-07-12 09:34:44 +00:00
Luigi Rizzo
72e02d4dac Implement comments embedded into ipfw2 instructions.
Since we already had 'O_NOP' instructions which always match, all
I needed to do is allow the NOP command to have arbitrary length
(i.e. move its label in a different part of the switch() which
validates instructions).

The kernel must know nothing about comments, everything else is
done in userland (which will be described in the upcoming ipfw2.c
commit).
2003-07-12 05:54:17 +00:00
Marcel Moolenaar
480d3dd2ea Add logic to trace across/over a trapframe. We have ABI markers in
our unwind information for functions that are entry points into the
kernel. When stepping to the next frame, the unwinder will let us
know when sych a marker was encountered. We use this to stop the
current unwind session, query the trapframe and restart a new
unwind session based on the new trapframe.

The implementation is a bit sloppy, but at this time there are
bigger fish to fry.
2003-07-12 04:35:09 +00:00
Marcel Moolenaar
67f74420f4 This commit was generated by cvs2svn to compensate for changes in r117465,
which included commits to RCS files with non-trunk default branches.
2003-07-12 04:20:56 +00:00
Marcel Moolenaar
dca737bc61 Fix a nasty bug that was exposed by disabling the trace support by
default. There were 2 cases where the trace code was in the else-
part of an if-statement without any compound construct to protect
against nullification. The result was that 2 unconditional statements
turned into conditional statements and wrecked havoc.

This fix has been returned to the vendor and in anticipation of a
future import committed onto the vendor branch.
2003-07-12 04:20:56 +00:00
Robert Drehmel
baf731e6ed Make the system call vector name of a process accessible to user
land applications by introducing the KERN_PROC_SV_NAME sysctl node,
which is searchable by PID.
2003-07-12 02:00:16 +00:00
Peter Wemm
74ed31bfc0 Fix the gcc-3.3 boot problem. Gcc now optimizes 'int foo = 0' by moving
it to the bss section and skips the initialization.  This causes all
sorts of havoc because the bogus bss zero code clobbered previously set
variables.  All our supported boot loaders already zero the bss, even
kgzip for the elf case.  Since we dont generate a.out kernels, the old
a.out bootblocks and the a.out kgzip are not a factor anymore.
2003-07-11 21:39:25 +00:00
Josef Karthauser
4608d6b170 Regen. 2003-07-11 21:17:53 +00:00
Josef Karthauser
02fe91185f Added a few more entries.
Submitted by:	Lars Eggert <larse@ISI.EDU>
2003-07-11 21:17:29 +00:00
John Baldwin
c660bdfa66 Unlock the fxp driver lock before calling fxp_poll() to avoid recursing on
the lock when using DEVICE_POLLING.

Tested by:	Robin P. Blanchard <Robin.Blanchard@gactr.uga.edu>
Reviewed by:	njl
2003-07-11 20:49:36 +00:00
Warner Losh
08ebe101d2 Fix typo for BURN_BRIDGES' file, it should be opt_global.h 2003-07-11 17:04:37 +00:00
Thomas Moestl
07a41f740a NFS support should be conditional on LOADER_NFS_SUPPORT, not
LOADER_NET_SUPPORT.
2003-07-11 16:12:50 +00:00
Hidetoshi Shimokawa
558d6f9a60 Fix if_wi breakage. 2003-07-11 13:50:31 +00:00
David Xu
ffb2e92a98 If a thread is sending signal to its process, if the thread can handle
the signal itself, it should get it without looking for other threads.
2003-07-11 13:42:23 +00:00
Warner Losh
40d3bedc9e Add support for asus wl100
PR: 49033/53249
2003-07-11 09:19:04 +00:00
Warner Losh
c3cee955c0 sync to pccarddev 1.55 2003-07-11 09:17:07 +00:00
Warner Losh
4aafc6cbf1 remove stray ASUS 2003-07-11 09:16:40 +00:00
Warner Losh
688a06fa4d sync to pccarddev 1.54 2003-07-11 09:15:45 +00:00
Warner Losh
386a95a275 Add asus wl100
PR: 49033, 53249
2003-07-11 09:15:21 +00:00
Marcel Moolenaar
2c75b47793 Add a body directive before the first instruction in epc_syscall().
This results in a zero length prologue and a body that covers the
whole function. This is more correct.
2003-07-11 08:52:48 +00:00
Marcel Moolenaar
67f79f5a15 Remove a gratuitous align directive after the endp directive for
IVT entries.
2003-07-11 08:49:26 +00:00
Marcel Moolenaar
31bc3942e5 Make UWX_TRACE_ENABLE a global option so that we don't have to
modify vendor code (libuwx) with a specific include directive.
The second order advantage is that we can also enable verbosity
in the glue code (ia64/ia64/unwind.c).
2003-07-11 08:47:15 +00:00
Bill Paul
22606b2001 Squelch spurious "gigabit link up" messages generated on some fiber NICs
(mainly the 3Com 3c996B/BCM5701).

For some reason that I don't fully understand, the 5701 signals PCS
encoding errors as though they were link change events, i.e. the 'link
state changed' bit in the status word of the status block is updated
and an interrupt is generated. This would cause the bge_tick() function
to be invoked and a "gigabit link up" message to be printed on the console.

To avoid this, the interrupt handler now checks the MAC status register
when a link change interrupt is triggered, and it will only call the
bge_tick() function if the 'PCS encoding error detected' bit is clear.
(This change should have no effect on copper NICs since this bit can
only ever be set in TBI mode. I do not know how it affects 5704 NICs
with a BCM8002 SERDES PHY.)

Special thanks to: Sherry Rogers at UCB for allowing me access to one
of their traffic monitor boxes so I could diagnose this problem.
2003-07-11 08:19:52 +00:00
Alexander Kabaev
cd2f2571d8 Fix i386 assembly constraints. The same register cannot be
in output and clobber lists at the same time.
2003-07-11 07:49:40 +00:00
Alexander Kabaev
360d2e3b61 Temporarily switch off -Werror until new GCC warning have been dealt with. 2003-07-11 07:13:42 +00:00
Marcel Moolenaar
2884f2dcd8 Rename DISABLE_TRACE to UWX_TRACE_ENABLE and change the conditional
compilation accordingly. The net effect is that tracing is not by
default present and that it can easily be compiled-in.

The tracer uses getenv() and printf(), which cannot be used in all
cases (ie from the debugger) and with this change we improved the
applicability of the unwinder.

This change is made on the vendor branch and given back to the
vendor for possible inclusion in future versions.
2003-07-11 01:03:55 +00:00
Marcel Moolenaar
0eb870194c This commit was generated by cvs2svn to compensate for changes in r117392,
which included commits to RCS files with non-trunk default branches.
2003-07-11 01:03:55 +00:00
Mike Silbersack
347194c172 Add init_param3() to subr_param. This function is called
immediately after the kernel map has been sized, and is
the optimal place for the autosizing of memory allocations
which occur within the kernel map to occur.

Suggested by:	bde
2003-07-11 00:01:03 +00:00
Thomas Moestl
928a49644f Lock down the IOMMU bus_dma implementation to make it safe to use
without Giant held.

A quick outline of the locking strategy:
Since all IOMMUs are synchronized, there is a single lock, iommu_mtx,
which protects the hardware registers (where needed) and the global and
per-IOMMU software states. As soon as the IOMMUs are divorced, each struct
iommu_state will have its own mutex (and the remaining global state
will be moved into the struct).
The dvma rman has its own internal mutex; the TSB slots may only be
accessed by the owner of the corresponding resource, so neither needs
extra protection.
Since there is a second access path to maps via LRU queues, the consumer-
provided locking is not sufficient; therefore, each map which is on a
queue is additionally protected by iommu_mtx (in part, there is one
member which only the map owner may access). Each map on a queue may
be accessed and removed from or repositioned in a queue in any context as
long as the lock is held; only the owner may insert a map.
To reduce lock contention, some bus_dma functions remove the map from
the queue temporarily (on behalf of the map owner) for some operations and
reinsert it when they are done. Shorter operations and operations which are
not done on behalf of the lock owner are completely covered by the lock.

To facilitate the locking, reorganize the streaming buffer handling;
while being there, fix an old oversight which would cause the streaming
buffer to always be flushed, regardless of whether streaming was enabled
in the TSB entry. The streaming buffer is still disabled for now, since
there are a number of drivers which lack critical bus_dmamp_sync() calls.

Additional testing by:	jake
2003-07-10 23:27:35 +00:00
Bill Paul
96fd5c300d Add support for the 8139C+ chipset. Unlike the other chips in the 8139
series, the 8139C+ has a descriptor-based DMA mechanism, and its
performance is actually pretty respectable. Note: the 8139D chip does
not support C+ mode. Only the 8139C+ and 8169 gigE chips support C+ mode.

Supported features:

- RX and TX checksum offload
- hardware VLAN tag insertion/extraction
- TX interrupt moderation using the 8139's on-board timer

Everything should be properly busdma'ed and endian-independent, so
things should work ok on non-x86 platforms. Unfortunately, my call
for testers on this code was met with deafening silence, and I don't
have access to any non-x86 FreeBSD boxes at the moment, so this is
speculation.

The device detection code has been cleaned up a little as well
(thanks to Michal Mertl) for the patches.

There are also updates to the rl(4) man page (which I accidentally
checked in before when I updated the dc(4) man page. Oops.)

Todo: finish support for the 8169 gigabit ethernet chip. This
mainly requires writing an rlgphy driver to handle the 8169's built-in
PHY. This will have to wait until I actually get my hands on an 8169
card for testing though. (I still can't find a source for one in the
U.S. Suggestions/pointers welcome.)
2003-07-10 20:38:48 +00:00
Bill Paul
e0b2dc9329 Regenerate. 2003-07-10 18:43:39 +00:00
Bill Paul
e7b9ab3aaa Add support for a bunch of Microsoft networking products:
- MN-110 10/100 USB ethernet (ADMtek Pegasus II, if_aue)
- MN-120 10/100 cardbus (ADMtek Centaur-C, if_dc)
- MN-130 10/100 PCI (ADMtek Centaur-P, if_dc)

Also update dc(4) man page to mention support for MN-120 and MN-130.
2003-07-10 18:43:17 +00:00
Mark Murray
c7b132c974 Protect lint(1) from a #error. 2003-07-10 18:05:02 +00:00
Nate Lawson
1f04e8f501 Rewrite much of the embedded controller driver.
* Always use polled mode.  The intr approach did not work for many
  controllers and required the hw.acpi.ec.event_driven workaround.
* Only use an edge (not level) triggered GPE handler
* Add sc->ec_mtx for locking operations to a single EC.  There were
  many race conditions earlier between an SCI event and EcRead/Write.
* Use 1 ms as the global lock timeout
* Only acquire global lock if _GLK != 0
* Update EcWaitEvent to use an incremental backoff delay in its
  poll loop.  Wait 50 ms max instead of 10.  Most ECs respond
  in < 5 us (50 us when heavily loaded).  However, some time out
  occasionally even with a 10 ms timeout.  For delays past 1 ms, use
  msleep instead of DELAY to give SCI interrupts a chance to occur.
* Add EcCommand to send a command and wait for the appropriate event.
* The hw.acpi.ec.event_driven tunable is no longer applicable and
  has been removed.

Ideas from:	Linux
2003-07-10 17:22:46 +00:00
Hartmut Brandt
445b5e54cf Use the default arguments for lockfunc and lockfuncarg in
bus_dma_tag_create. We need to be sure that our packets are
kept in-sequence (that's how ATM is supposed to work) and
therefor use BUS_DMA_NOWAIT in all calls to bus_dmamap_load.

For memory allocated with bus_dmamem_alloc the use of anything
other than NULL arguments for the locking is anyway bogus because
this memory never should need bouncing and hence the load should never
be defered.

Allow the receipt of OAM and RM cells on raw connections. Caveat: it seems
that RM cells are still processed by the hardware even when we open the
connection as UBR.
2003-07-10 13:55:09 +00:00
Bill Paul
e4cffe95c7 Support for large frames for VLANs was added by tweaking the packet size
register, present only on 3c90xB and later NICs. This meant that you could
not use a 1500 byte MTU with VLANs on original 3c905/3c900 cards (boomerang
chipset). The boomerang chip does support large frames though, just not
in the same way: you can set the 'allow large frames' bit in the MAC
control register to receive frames up to 4K in size.

Changes:

- Set the 'allow large frames' bit for boomerang chips and increase
  the packet size register for cyclone and later chips. This allows
  us to use IFCAP_VLAN_MTU on all supported xl(4) NICs.
- Actually set the IFCAP_VLAN_MTU flag in the capabilities word
  in xl_attach().
- Change the method used to detect older boomerang chips. My 3c575C
  cardbus NIC was being incorrectly identified as 3c90x chip instead
  of 3c90xB because the capabilities word in its EEPROM reports
  a bizzare value. In addition to checking for the supportsNoTxLength
  bit, also check for the absence of the supportsLargePackets bit.
  Both of these cases denote a 3c90xB chip.
- Make RX and TX checksums configurable via the SIOCSIFCAP ioctl.
- Avoid an unecessary le32toh() in xl_rxeof(): we already have the
  received frame size in the lower 16 bits of rxstat, no need to
  read it again.

Tested with 3c905-TX, 3c900-TPO, 3c980C and 3c575C NICs.
2003-07-10 05:24:33 +00:00
Bill Paul
85a94674d0 tdkphy.c is missing from this module's Makefile. Add it. 2003-07-10 05:12:10 +00:00
Peter Wemm
e95babf3a8 unifdef -DLAZY_SWITCH and start to tidy up the associated glue. 2003-07-10 01:02:59 +00:00
Peter Wemm
bf8ca114e2 Fix the VADDR() macros to use either KVADDR() or UVADDR(), depending
on the implied sign extension.  The single unified VADDR() macro was
not able to avoid sign extending the VM_MAXUSER_ADDRESS/USRSTACK values.
Be explicit about UVADDR() (positive address space) and KVADDR()
(kernel negative address space) to make mistakes show up more
spectacularly.

Increase user VM space from 1/2TB (512GB) to 128TB.
2003-07-09 23:04:23 +00:00
Peter Wemm
6486c09935 Fix up bogus index/offset/mask calculations in the allocpte and the
corresponding release code.  This was preventing the use of more than
1/2TB of user VM.  I also spent a week staring at this code only to
eventually find that I'd mistakenly typed a P as an R.
2003-07-09 22:59:45 +00:00
Peter Wemm
4afd44c16a Turn the 2MB page mappings that cover the kernel text+data+bss area back
on now that pmap_pte() can handle it.  I never actually ran into anything
that broke that I know of, but this was turned off as a precaution.
2003-07-09 22:55:00 +00:00
Peter Wemm
436e1f203f Have pmap_pte() on a 2MB mapped address return the 2MB pde itself
rather than a non-existing pte.  There is code elsewhere in i386/amd64
pmap that neglects to handle the large page cases because it knows that
it will see PG_PS in the returned "pte".
2003-07-09 22:53:45 +00:00
Jeffrey Hsu
b6f5d1d603 Replace custom field offset macro with the system __offsetof() macro.
Reviewed by:	bde
2003-07-09 22:23:10 +00:00
Mike Silbersack
ff56f15e26 A few minor changes:
- Use atomic ops to update the bigpipe count
- Make the bigpipe count sysctl readable
- Remove a duplicate comparison in an if statement
- Comment two SYSCTLs.
2003-07-09 21:59:48 +00:00
Scott Long
cd481291bd Handle the EINPROGRESS case of bus_dmamap_load() for data buffers. 2003-07-09 21:16:23 +00:00
Scott Long
204c0bef67 Fix a missing } that got dropped from the last commit. 2003-07-09 19:30:30 +00:00
Scott Long
4b00f859d0 Add a new quirk for cards that incorrectly interpret the amount of memory
in the system.  This might also have a small performance gain.
2003-07-09 19:19:16 +00:00
John Baldwin
852989bdbf - Fix a typo in the call to acpi_disabled() in probe() by removing an
extra trailing space.
- Don't bother probing a generic ISA bus device if isab0 already exists.
  Some BIOSes place an ACPI psuedo-device with the HID of a generic ISA bus
  device under the PCI-ISA bridge device.  This is not the best solution
  but will work for now.  The isa bus driver only allows for one ISA bus
  anyways.
2003-07-09 18:28:53 +00:00
Andrey A. Chernov
171f8dccf7 Add ID for UMAX Astra 2100U 2003-07-09 17:05:59 +00:00
John Baldwin
2c8b8ff8cf - Fix the kernel build for configurations that include pci but not isa by
having the PCI-ISA bridge driver depend on both pci and isa.
- Have the PCI-EISA bridge driver depend on both pci and eisa as well.
- Make acpi_isab.c depend on acpi and isa.

Submitted by:	Marius Strobl <marius@alchemy.franken.de> (1,2)
2003-07-09 16:14:10 +00:00
Maxime Henrion
fab712dcc6 Uncomment the dc(4) driver, it should work just fine now. 2003-07-09 15:04:27 +00:00
Maxime Henrion
af4358c71e Make the dc(4) driver endian-clean, so to that it works on sparc64.
There are such cards in Netra X1 boxes, which should thus be fully
supported now.

Tested by:	jake
2003-07-09 15:03:10 +00:00
Hidetoshi Shimokawa
4d4e204a98 Configuraiton ROM fix:
- Don't bump the generation if ROM has not changed and keep it
	between 0x2 and 0xf.
- Refetch the ROM if CRC of the businfo block has changed.
2003-07-09 13:07:35 +00:00
Bill Paul
fb88a3e0f4 - In vlan_input(), always mask off all but the VLID bits from tags
extracted from received frames, both in the IFCAP_VLAN_HWTAGGING case
  and not. (Some drivers may already do this masking internally, but
  doing it here doesn't hurt and insures consistency.)

- In vlan_ioctl(), don't let the user set a VLAN ID value with anything
  besides the VLID bits set, otherwise we will have trouble matching
  an interface in vlan_input() later.

PR:		kern/46405
2003-07-08 21:54:20 +00:00
Poul-Henning Kamp
d32622aaee Handle geoms which are withering away specially in the dump functions. 2003-07-08 21:12:40 +00:00
Alan Cox
90a7c7b671 In pmap_object_init_pt(), the pmap_invalidate_all() should be performed on
the caller-provided pmap, not the kernel_pmap.  Using the kernel_pmap
results in an unnecessary IPI for TLB shootdown on SMPs.

Reviewed by:	jake, peter
2003-07-08 19:40:35 +00:00
John Baldwin
6c525ee43c Add an ACPI to ISA psuedo bridge driver. It attaches an isab(4) device to
ACPI nodes with the plug and play ID's defined for a "Generic ISA Bus
Device" as defined in section 10.7 of the ACPI 2.0 specification.  This
gives machines like the Libretto that contain a fake ISA bus that is not
connected via a PCI-ISA bridge an ISA bus for ISA devices to attach to.

Tested by:	markm
2003-07-08 18:59:32 +00:00
Mike Silbersack
41f16f8208 Pull in the entire kmem_map size calculation from kern_malloc, rather
than the shortcircuited version I had been using, which only worked
properly on i386 & amd64.

Also, change an autoscale constant to account for the more correct
kmem_map size.

Problem noticed by:     mux
2003-07-08 18:59:21 +00:00
John Baldwin
c37faf267c - Make the isab devclass global to allow for multiple ISA bridge drivers.
- Factor out code common to all ISA bridge drivers attach methods into a
  isab_attach() function.
- Rename the PCI-ISA bridge driver's attach function to pci_isab_attach()
  and have it call isab_attach().
2003-07-08 18:56:58 +00:00
Luigi Rizzo
7a1dfbc0d3 Merge the handlers of O_IP_SRC_MASK and O_IP_DST_MASK opcodes, and
support matching a list of addr/mask pairs so one can write
more efficient rulesets which were not possible before e.g.

    add 100 skipto 1000 not src-ip 10.0.0.0/8,127.0.0.1/8,192.168.0.0/16

The change is fully backward compatible.
ipfw2 and manpage commit to follow.

MFC after: 3 days
2003-07-08 07:44:42 +00:00
Jeff Roberson
0c0a98b231 - When stealing a kse in kseq_move() ignore the current kseq's min nice
value.  We want to steal any thread, even one that is not given a slice
   on its current queue.
2003-07-08 06:19:40 +00:00
Mike Silbersack
289016f2d1 Put some concrete limits on pipe memory consumption:
- Limit the total number of pipes so that we do not
  exhaust all vm objects in the kernel map.  When
  this limit is reached, a ratelimited message will
  be printed to the console.

- Put a soft limit on the amount of memory consumable
  by pipes.  Once the limit has been reached, all new
  pipes will be limited to 4K in size, rather than the
  default of 16K.

- Put a limit on the number of pages that may be used
  for high speed page flipping in order to reduce the
  amount of wired memory.  Pipe writes that occur
  while this limit is exceeded will fall back to
  non-page flipping mode.

The above values are auto-tuned in subr_param.c and
are scaled to take into account both the size of
physical memory and the size of the kernel map.

These limits help to reduce the "kernel resources exhausted"
panics that could be caused by opening a large
number of pipes.  (Pipes alone are no longer able
to exhaust all resources, but other kernel memory hogs
in league with pipes may still be able to do so.)

PR:			53627
Ideas / comments from:	hsu, tjr, dillon@apollo.backplane.com
MFC after:		1 week
2003-07-08 04:02:31 +00:00
David Xu
e2e8935832 Fix LOR between scheduler lock and SMP rendezvous lock.
Reviewed by: jhb
2003-07-08 00:14:30 +00:00
Garrett Wollman
e14eb5a118 FreeBSD 2.0.5 is old hat. Also cross-reference GEOM_VOL from the discussion
of wiring SCSI devices, since it provides a non-SCSI-specific way of
accomplishing a similar task.
2003-07-07 21:19:04 +00:00
Garrett Wollman
4aeb6d2671 Fix wording: `irregardless' is a solecism. 2003-07-07 21:15:01 +00:00
Garrett Wollman
00b0445c82 Put NFSSERVER in the right list of filesystem stuff. Building a kernel
with only NFSSERVER won't get you anywhere.
2003-07-07 21:13:21 +00:00
Garrett Wollman
57a42501da Single-character style fix. 2003-07-07 21:12:34 +00:00
Jeff Roberson
0ec896fd28 - Clean up an unused variable.
Submitted by:	Steve Kargl <skg@routmask.apl.washington.edu>
2003-07-07 21:08:28 +00:00
Bill Paul
39e674767e Add a workaround for the USB_PRODUCT_MCT_SITECOM_USB232 device: limit
the bulk out buffer size to 16 bytes. The bulk out endpoint descriptor
reports 32 bytes, but if you use this value, data will get dropped.

Reviewed/approved by: scottl
2003-07-07 18:01:23 +00:00
Cameron Grant
eaa69ee9a9 * add a function to display a complete feeder chain on the console, for
debugging.

* set the parent of non-format feeders, so that sndstat doesn't miss out
things like feeder_rate.

MFC:		1 week
2003-07-07 17:40:02 +00:00
Warner Losh
247056ed2a Add corega PCCL-11 to match entry added to pccarddevs a while ago.
Noticed going into openbsd...
2003-07-07 07:57:35 +00:00
Alan Cox
ecf6279f00 - Complete the vm object locking in vm_pageout_object_deactivate_pages().
- Change vm_pageout_object_deactivate_pages()'s first parameter from a
   vm_map_t to a pmap_t.
 - Change vm_pageout_object_deactivate_pages()'s and
   vm_pageout_map_deactivate_pages()'s last parameter from a vm_pindex_t
   to a long.  Since the number of pages in an address space doesn't
   require 64 bits on an i386, vm_pindex_t is overkill.
2003-07-07 07:16:29 +00:00
Mike Heffner
b1181a94a3 Reset the PSM aux device twice to help pierce through some KVM's to
get the correct data from the attached mouse. Multiple resets should
be harmless, but just in case, the second one is non-fatal and is just
ignored.
2003-07-07 05:40:13 +00:00
Cameron Grant
e2df178350 * support ich5
PR:		kern/53242
Submitted by:	Shin-ichi Yoshimoto <yosimoto@waishi.jp>  (partly)
Tested by:	Dominic Marks <dom@cus.org.uk> (version in PR)
MFC after:	1 week
2003-07-06 23:54:00 +00:00
Maxime Henrion
56e5e7ae57 Convert the dc(4) driver to the busdma API. This is a necessary step
to have this driver working on sparc64.  It still needs to be made
endian-clean before it can work there.

Special thanks to dragonk@evilcode.net for sending me a dc(4) card so
that I was able to do this work.

Many cheers to all the people that tested this change, thanks to them,
this change shouldn't break anything :-).

Tested by:	marcel (i386 and ia64), ru (i386), wilko (alpha),
		mbr (i386), wpaul (i386) and
		Will Saxon <WillS@housing.ufl.edu> (i386)
2003-07-06 21:45:31 +00:00
Alan Cox
6e3bf93111 MFi386
Updates to cnt.v_wire_count, the global count of wired pages, should be
 performed using atomic ops.
2003-07-06 20:32:42 +00:00
Brian S. Dean
fa8ee6aca1 Woops - don't forget to declare locals needed for that last commit. 2003-07-06 16:56:16 +00:00
Brian S. Dean
6745e78cee Don't unconditionally reset the hardware debug registers in cpu_exit(),
reset them only if they were previously in use.  Unconditionally
resetting the registers wipes them out frequently, which interferes
with their use for kernel debugging.

While I'm here, be less verbose in the associated comment of a
neighboring function.

Noticed by:	bde
2003-07-06 16:52:18 +00:00
Maxime Henrion
3d6ae7e047 Fix a bug that could cause dc(4) to m_freem() an already freed
mbuf or something that isn't an mbuf.

MFC after:	3 days
2003-07-06 14:39:45 +00:00
Maxime Henrion
b3811c9583 Various style(9) and readability fixes. 2003-07-06 14:36:33 +00:00
Bill Paul
79a5874541 Testing VLANs with the new 8139C+ chip (which does hardware tag
insertion and extraction) has revealed two bugs:

- In vlan_start(), we're supposed to check the underlying interface to
  see if it has the IFCAP_VLAN_HWTAGGING cabability set and, if so, set
  things up for the VLAN_OUTPUT_TAG() routine. However the code checks
  ifp->if_capabilities, which is the vlan pseudo-interface's capabilities
  when it should be checking p->if_capabilities, which relates to the
  underlying physical interface. Change ifp->if_capabilities to
  p->if_capabilities so this works.

- In vlan_input(), we have to extract the 16-bit tag value from the
  received frame and use it to figure out which vlan interface gets
  the frame. The code that we use to track down the desired vlan
  pseudo-interface is:

       for (ifv = LIST_FIRST(&ifv_list); ifv != NULL;
            ifv = LIST_NEXT(ifv, ifv_list))
                if (ifp == ifv->ifv_p && tag == ifv->ifv_tag)
                        break;

  The problem is that 'tag' is not computed consistently. In the case
  where the interface supports hardware VLAN tag extraction and calls
  VLAN_INPUT_TAG(), we do this:

                tag = *(u_int*)(mtag+1);

  But in the software emulation case, we do this

                tag = EVL_VLANOFTAG(ntohs(evl->evl_tag));

  The problem here is the EVL_VLANOFTAG() macro is only ever applied
  in this one case. It's never applied to ifv->ifv_tag or anwhere else.
  We must be consistent: either it's applied everywhere or nowhere.
  To see how this can be a problem, do something like
  ifconfig vlan0 vlan 12345 vlandev foo0 and observe the results.

  I'm not quite sure what the right thing is to do here. Neither the
  vlan(4) nor ifconfig(8) man pages suggest which way to go. For now,
  I've removed this use of EVL_VLANOFTAG() so that the tag will match
  correctly in all cases. I will not get upset if somebody makes a
  compelling argument for using EVL_VLANOFTAG() everywhere instead,
  as long as the use is consistent.
2003-07-06 03:24:25 +00:00
Cameron Grant
b6eb8f8a31 * add support for amd-768 audio, as used on many dual athlon boards. only
tested for playback.

* modify device name strings for ich chips to better conform with their
common names.

* remove superflous 'AC97 controller' from nforce device names.

MFC after: 1 week
2003-07-06 03:11:06 +00:00
Marcel Moolenaar
290245ea4c Don't call malloc() and free() while in the debugger and unwinding
to get a stacktrace. This does not work even with M_NOWAIT when we
have WITNESS and is generally a bad idea (pointed out by bde@). We
allocate an 8K heap for use by the unwinder when ddb is active. A
stack trace roughly takes up half of that in any case, so we have
some room for complex unwind situations. We don't want to waste too
much space though. Due to the nature of unwinding, we don't worry
too much about fragmentation or performance of unwinding while in
the debugger. For now we have our own heap management, but we may
be able to leverage from existing code at some later time.

While here:
o  Make sure we actually free the unwind environment after unwinding.
   This fixes a memory leak.
o  Replace Doug's license with mine in unwind.c and unwind.h. Both
   files don't have much, if any, of Doug's code left since the EPC
   syscall overhaul and the import of the unwinder.
o  Remove dead code.
o  Replace M_NOWAIT with M_WAITOK for all remaining malloc() calls.
2003-07-05 23:21:58 +00:00
Alan Cox
f278f0fbab Lock a vm object when freeing a page from it. 2003-07-05 20:51:22 +00:00
Mike Makonnen
14b5ae1a98 Make the conditional, which decides what siglist to put a signal on,
more concise and improve the comment.

Submitted by: bde
2003-07-05 08:37:40 +00:00
John-Mark Gurney
e4bfcbdb32 add the mbr_enc file so that we can load the module on sparc64. 2003-07-05 08:11:43 +00:00
Thomas Moestl
5ff9e59f71 Fix a signedness problem in zstty_cncheckc(): when no character is ready,
-1 should be returned, but it was assigned to an uint8_t (which is
extended to an int to form the return value), causing 255 to be returned
instead.
2003-07-05 01:31:30 +00:00
Robert Watson
de88922310 Remove trailing whitespace. 2003-07-05 01:24:36 +00:00
Mike Makonnen
e55c35c433 I was so happy I found the semi-colon from hell that I didn't
notice another typo in the same line. This typo makes libthr unuseable,
but it's effects where counter-balanced by the extra semicolon, which
made libthr remarkably useable for the past several months.
2003-07-04 23:28:42 +00:00
John-Mark Gurney
58ac352f32 remove \n at end of panic strings. They are added by the call to panic.
This brings us more in line with Net/OpenBSD

Obtained from:	Net/OpenBSD
2003-07-04 23:11:13 +00:00
Alan Cox
4041408f4f Add vm object locking to pmap_prefault(). 2003-07-04 22:13:39 +00:00
Luigi Rizzo
c3e5b9f154 Implement the 'ipsec' option to match packets coming out of an ipsec tunnel.
Should work with both regular and fast ipsec (mutually exclusive).
See manpage for more details.

Submitted by: Ari Suutari (ari.suutari@syncrontech.com)
Revised by: sam
MFC after: 1 week
2003-07-04 21:42:32 +00:00
Luigi Rizzo
f030c1518d Correct some comments, add opcode O_IPSEC to match packets
coming out of an ipsec tunnel.
2003-07-04 21:39:51 +00:00
Jeff Roberson
749d01b011 - Parse the cpu topology map in sched_setup().
- Associate logical CPUs on the same physical core with the same kseq.
 - Adjust code that assumed there would only be one running thread in any
   kseq.
 - Wrap the HTT code with a ULE_HTT_EXPERIMENTAL ifdef.  This is a start
   towards HyperThreading support but it isn't quite there yet.
2003-07-04 19:59:00 +00:00
Hidetoshi Shimokawa
4f93346871 Add compatibility for FreeBSD-4. 2003-07-04 14:04:41 +00:00
Hartmut Brandt
98ab6e3295 Delete a superfluous semi-colon.
Pointed out by: nick@garage.freebsd.pl
2003-07-04 13:41:03 +00:00
Poul-Henning Kamp
a5d841d4ce Remove unnecessary cast. 2003-07-04 12:23:43 +00:00
Poul-Henning Kamp
1226914c17 Use the f_vnode field to tell which file descriptors have a vnode. 2003-07-04 12:20:27 +00:00
Poul-Henning Kamp
b941a2beb7 We just cached the inode pointer, no need to call VTOI() again. 2003-07-04 12:16:33 +00:00
Maxime Henrion
139cfa581e - Ensure that the busdma API won't do deferred loads by using the
BUS_DMA_NOWAIT flag, since the code can't handle this.
- Use NULL, NULL for the lockfunc and lockfuncarg parameters of
  bus_dma_tag_create() since deferred loads can't happen now.
2003-07-04 11:46:23 +00:00
Mike Makonnen
1069e3a6f4 It's unfair how one extraneous semi-colon can cause so much grief. 2003-07-04 11:18:07 +00:00
Maxime Henrion
dbe4792865 The em(4) driver has been converted to busdma and doesn't use
vtophys() anymore, so remove the alpha hack which defines
vtophys() to alpha_XXX_dmamap().
2003-07-04 10:15:16 +00:00
Mike Makonnen
71cfaac0b0 style(9)
o Remove double-spacing, and while I'm here add a couple
  of braces as well.

Requested by:	bde
2003-07-04 06:59:28 +00:00
Olivier Houchard
a10d5f02c8 In setpgrp(), don't assume a pgrp won't exist if the provided pgid is the same
as the target process' pid, it may exist if the process forked before leaving
the pgrp.
Thix fixes a panic that happens when calling setpgid to make a process
re-enter the pgrp with the same pgid as its pid if the pgrp still exists.
2003-07-04 02:21:28 +00:00
John-Mark Gurney
c97325b0c8 WARNING: white space diff
This code reduces the number of trailing white space to be more in line
w/ NetBSD.  I don't regenerate usbdevs, saving that for when it really
changes.
2003-07-04 01:50:39 +00:00
Mike Makonnen
8689793bfb kse_thr_interrupt should target the thread, specifically.
Requested by:	davidxu
2003-07-04 01:41:32 +00:00
Julian Elischer
53dc6459d7 Allow the caller to get an erro direclty if we sent the packet immediatly.
Submitted by: Ian Dowse <iedowse@maths.tcd.ie>
MFC after:	1 day
2003-07-03 22:09:47 +00:00
Warner Losh
b84e866a18 Due to extreme bogusness in the pci bus layer, these drivers were
forced to do slightly bogus power state manipulation.  However, this
is one of those features that is preventing further progress, so mark
them as BURN_BIRDGES like I did for the drivers in sys/dev/...

This, like the other change, are a no-op unless you have BURN_BRIDGES
in your kernel.
2003-07-03 21:39:53 +00:00
Alan Cox
1f78f902a8 Background: pmap_object_init_pt() premaps the pages of a object in
order to avoid the overhead of later page faults.  In general, it
implements two cases: one for vnode-backed objects and one for
device-backed objects.  Only the device-backed case is really
machine-dependent, belonging in the pmap.

This commit moves the vnode-backed case into the (relatively) new
function vm_map_pmap_enter().  On amd64 and i386, this commit only
amounts to code rearrangement.  On alpha and ia64, the new machine
independent (MI) implementation of the vnode case is smaller and more
efficient than their pmap-based implementations.  (The MI
implementation takes advantage of the fact that objects in -CURRENT
are ordered collections of pages.)  On sparc64, pmap_object_init_pt()
hadn't (yet) been implemented.
2003-07-03 20:18:02 +00:00
Mike Makonnen
c197abc49a Signals sent specifically to a particular thread must
be delivered to that thread, regardless of whether it
has it masked or not.

Previously, if the targeted thread had the signal masked,
it would be put on the processes' siglist. If
another thread has the signal umasked or unmasks it before
the target, then the thread it was intended for would never
receive it.

This patch attempts to solve the problem by requiring callers
of tdsignal() to say whether the signal is for the thread or
for the process. If it is for the process, then normal processing
occurs and any thread that has it unmasked can receive it.
But if it is destined for a specific thread, it is put on
that thread's pending list regardless of whether it is currently
masked or not.

The new behaviour still needs more work, though.  If the signal
is reposted for some reason it is always posted back to the
thread that handled it because the information regarding the
target of the signal has been lost by then.

Reviewed by:	jdp, jeff, bde (style)
2003-07-03 19:09:59 +00:00
Tom Rhodes
3c01bab8a3 If bread() returns a zero-length buffer, as can happen after a
failed write, return an error instead of looping forever.

PR:		37035
Submitted by:	das
2003-07-03 14:54:47 +00:00
John Baldwin
5cc1a74e77 Silly compile fixes from resource_disabled() commit.
Reported by:	tinderbox
Pointy hat to:	jhb
2003-07-03 14:33:17 +00:00
Warner Losh
fa4b32fa80 All current uses of pci_set_powerstate are bogus, at least in theory.
However, they are presently necessary due to bigger bogusness in the
pci bus layer not doing the right thing on suspend/resume or on
initial device probe.  This is exactly the sort of thing that the
BURN_BRIDGES option was invented for.  Mark all of them as
BURN_BRIDGES.  As soon as I have the powerstate stuff properly
integrated into the pci bus code, I intend to remove all these
workarounds.
2003-07-03 14:00:57 +00:00
Scott Long
b3655267ff Revert the previous commit, it snuck in by accident.
Submitted by:	ru
2003-07-03 10:16:40 +00:00
Scott Long
477d2d0ee5 Bump __FreeBSD_version to reflect the busdma API change. 2003-07-03 08:35:43 +00:00
John Baldwin
f7ee15901a - Add comments about the maintenance of the per-thread list of contested
locks held by each thread.
- Fix a bug in the original BSD/OS code where a contested lock was not
  properly handed off from the old thread to the new thread when a
  contested lock with more than one blocked thread was transferred from
  one thread to another.
- Don't use an atomic operation to write the MTX_CONTESTED value to
  mtx_lock in the aforementioned special case.  The memory barriers and
  exclusion provided by sched_lock are sufficient.

Spotted by:	alc (2)
2003-07-02 16:14:09 +00:00
John Baldwin
8a9bc9c03b - Use the new resource_disabled() helper function to see if devices are
disabled.
- Change the apm driver to match the acpi driver's behavior by checking to
  see if the device is disabled in the identify routine instead of in the
  probe routine.  This way if the device is disabled it is never created.

Note that a few places (ips(4), Alpha SMP) used "disable" instead of
"disabled" for their hint names, and these hints must be changed to
"disabled".  If this is a big problem, resource_disabled() can always be
changed to honor both names.
2003-07-02 16:09:02 +00:00
John Baldwin
6591b31040 Add a resource_disabled() helper function that returns true (non-zero) if
a specified resource has been disabled via a non-zero 'disabled' hint and
false otherwise.
2003-07-02 16:01:38 +00:00
Hartmut Brandt
318e6bc3a5 Make the bus_dma_tag_create use NULL for the lock arguments. We are
careful to call all map_load calls with BUS_DMA_NOWAIT because we
really don't want some PDUs to wait while others go out - ATM guarantees
the ordering of cells and also of PDUs (within one VC, that is). With
BUS_DMA_NOWAIT bus_dmamap_load should never return EINPROGRESS.

Make the tag used for transmission buffers one larger than the maximum
AAL5 PDU (65535). This is needed, because all PDU sizes need to be round
up to multiple of four for the card and PDUs that are just below the
maximum size will be rounded up to 65536
2003-07-02 13:53:41 +00:00
Ruslan Ermilov
0be33d3321 The .s files were repo-copied to .S files.
Approved by:	marcel
Repocopied by:	joe
2003-07-02 12:57:07 +00:00
Ruslan Ermilov
ae0c4c928a Revert non-style part of the recent two deltas that dealt with
using as(1) to compile plain assembler source files; bsd.lib.mk
has been fixed (in revision 1.147).
2003-07-02 12:45:45 +00:00
Ruslan Ermilov
286bce1c85 sys/ia64/ia64/pal.s has been repocopied to pal.S.
Approved by:	marcel
Repocopied by:	joe
2003-07-02 11:53:55 +00:00
Hartmut Brandt
3fb1076132 Allow VPI/VCI 0/0 to be opened. This will be used by the IDT77252 driver
to provide a "receive all cells" mode that can be used for monitoring.

Check only the relevant MTU size when NOTX or NORX flags are set.
2003-07-02 11:52:46 +00:00
Ruslan Ermilov
d5025f3020 pal_stub.s has been repo-copied to pal_stub.S.
Approved by:	marcel
Repocopied by:	joe
2003-07-02 11:47:33 +00:00
Søren Schmidt
e158f2b820 Update the SATA support code to work more correctly with
real SATA disks now that I can test it.

Add support for the SiI 3112 SATA chip using memory mapped I/O.
Update the support for the SiI 0680 to use the memio interface as well.

Sponsored by:	David Leimbach <leimy2k@mac.com> (3112 based controller)
Sponsored by:	FreeBSD Systems (www.FreeBSDsystems.com) (SATA disks)
2003-07-02 10:50:44 +00:00
Poul-Henning Kamp
e82b33f337 Change idle sleep indentifier to "-" for nfsiod 2003-07-02 08:09:20 +00:00
Poul-Henning Kamp
4a12d8397f Change idle state sleep identifier to "-" for nfsd. 2003-07-02 08:08:32 +00:00
Poul-Henning Kamp
fd02a4233e Only dump 512 bytes of debugging.
Always wait for things to settle before returning.
2003-07-02 08:07:07 +00:00
Poul-Henning Kamp
68c2a41e6c Change the sleep identifier to "-" where random normally sleeps. 2003-07-02 08:04:57 +00:00
Poul-Henning Kamp
d94e36521e typo fix in comment. 2003-07-02 08:01:52 +00:00
Maxime Henrion
b3670b9cd0 Fix a few style(9) nits. 2003-07-02 01:47:47 +00:00
Marcel Moolenaar
c55b999c72 The use of SYSINIT requires the inclusion of <sys/kernel.h> 2003-07-02 01:22:29 +00:00
David Xu
34178711be Allow SA process unblocks a thread blocked in condition variable.
Reviewed by: deischen
2003-07-02 01:19:15 +00:00
Maxime Henrion
75f9bf73ec Make this even closer to other busdma backends. 2003-07-01 21:21:45 +00:00
Maxime Henrion
3b8caa9bab Oops, add back a free() call that I mistakenly removed in
my last commit.
2003-07-01 21:20:51 +00:00
Maxime Henrion
331e012396 Sync more things with other backends. 2003-07-01 19:16:48 +00:00
Maxime Henrion
73f0b07961 Sync with i386's busdma backend. This fixes a few bugs and adds
support for the BUS_DMA_NOWAIT flag in bus_dmamap_load().
2003-07-01 19:02:26 +00:00
Maxime Henrion
02681c8bc2 Sync bounce pages support with the alpha backend. More precisely:
o use a mutex to protect the bounce pages structure.
	o use a SYSINIT function to initialize the bounce pages structures
	  and thus avoid a race condition in alloc_bounce_pages().
	o add support for the BUS_DMA_NOWAIT flag in bus_dmamap_load().
	o remove obsolete splhigh()/splx() calls.
	o remove printf() about incorrect locking in busdma_swi() and sync
	  busdma_swi() with the one of the alpha backend.
	o use __FBSDID.
2003-07-01 18:08:05 +00:00
Ian Dowse
318f2fb4bf Add a new mount flag MNT_BYFSID that can be used to unmount a file
system by specifying the file system ID instead of a path. Use this
by default in umount(8). This avoids the need to perform any vnode
operations to look up the mount point, so it makes it possible to
unmount a file system whose root vnode cannot be looked up (e.g.
due to a dead NFS server, or a file system that has become detached
from the hierarchy because an underlying file system was unmounted).
It also provides an unambiguous way to specify which file system is
to be unmunted.

Since the ability to unmount using a path name is retained only for
compatibility, that case now just uses a simple string comparison
of the supplied path against f_mntonname of each mounted file system.

Discussed on:	freebsd-arch
mdoc help from:	ru
2003-07-01 17:40:23 +00:00
Maxime Henrion
4813f72a9b Honor the boundary of the busdma tag when allocating bounce pages.
This was fixed in revision 1.5 of alpha/alpha/busdma_machdep.c and
was never fixed in other busdma backends using bounce pages.
2003-07-01 16:54:54 +00:00
Scott Long
79501b66a7 Make swi_vm be INTR_MPSAFE. On all platforms, it is only used to activate
busdma_swi().  Now that busdma_swi() uses driver-provided locking, this
should be safe.
2003-07-01 16:00:38 +00:00