Commit Graph

39927 Commits

Author SHA1 Message Date
peter
f6f3e2ff8f Fix lookup of module metadata on amd64 systems. While this is in
common code, the non-trivial part is #ifdef'ed and only executes when
loading amd64 kernels. The rest is trivial but needed for the the amd64
case. (Two variables changed from char ** to Elf_Addr).

Approved by:	re (amd64 "low-risk" stuff)
2003-05-12 05:48:09 +00:00
phk
587d476cf9 Don't pass NULL pointer to memset if we are compiled with DIAGNOSTIC
Approved by:	re/rwatson
2003-05-12 05:09:56 +00:00
phk
154b84916c Don't #define memset() to bzero(), it is far too prone to bite somebody.
Approved by:	re/scottl
2003-05-12 05:08:38 +00:00
peter
25e260ffe6 Revert leftover AMD64 disable-acpi-module stuff. 2003-05-12 04:57:05 +00:00
murray
6dcde98e03 Regen.
Approved by:	re
2003-05-12 04:27:22 +00:00
peter
0cfa424a1b AMD64 physical space is much larger than i386, de-i386 the bus_space and
bus_dma MD code for AMD64.  (And a trivial ifdef update in dev/kbd because
of this).  More updates are needed here to take advantage of the 64 bit
instructions.

Approved by:	re (blanket amd64/*)
2003-05-12 02:44:37 +00:00
peter
c688fcc3ca Give a %fs and %gs to userland. Use swapgs to obtain the kernel %GS.base
value on entry and exit.  This isn't as easy as it sounds because when
we recursively trap or interrupt, we have to avoid duplicating the
swapgs instruction or we end up back with the userland %gs.  I implemented
this by testing TF_CS to see if we're coming from supervisor mode
already, and check for returning to supervisor. To avoid a race with
interrupts in the brief period after beginning executing the handler and
before the swapgs, convert all trap gates to interrupt gates, and reenable
interrupts immediately after the swapgs.  I am not happy with this.
There are other possible ways to do this that should be investigated.
(eg: storing the GS.base MSR value in the trapframe)

Add some sysarch functions to let the userland code get to this.

Approved by:	re (blanket amd64/*)
2003-05-12 02:37:29 +00:00
simokawa
6d94cd1e18 Make it compiled on 4-stable.
Approved by: re (scottl)
2003-05-12 00:42:28 +00:00
joe
190f2bb71d Extend the digital camera support (umass) to the PENTAX Optio 330GS.
Submitted by:	Jan-Oliver Neumann <neumannj@arcor.de>
By way of:	n_hibma
Approved by:	re (jhb & bmah)
MFC After:	7 days
2003-05-11 23:55:28 +00:00
peter
581fa87ddd Call it an AMD64 Processor, not a Hammer. Also, it seems that the cpuid
model numbers are wider than I first thought.

Approved by: re (blanket amd64/*)
2003-05-11 23:01:04 +00:00
peter
756ca1f04c I missed another printf format error while extracting the patch.
Approved by: re (blanket amd64/*)
2003-05-11 22:55:40 +00:00
peter
7ba8edf901 Make atdevbase long for the KERNBASE > 4GB case
Approved by: re (amd64/* blanket)
2003-05-11 22:53:43 +00:00
peter
8920847356 For amd64 kernels, repeat the 1GB mapping over the entire address space
instead of just at 0GB and 1GB marks.  This gives more flexibility for
the choice of KERNBASE.

Approved by:	re (amd64 stuff)
2003-05-11 22:42:29 +00:00
peter
f6ba7180dc Fix printf format errors that were undetected due to using the standard
FSF compiler during early development.
2003-05-11 22:40:25 +00:00
peter
89e93481ff Export PML4SHIFT and PDPSHIFT
Approved by: re (blanket amd64/*)
2003-05-11 22:39:40 +00:00
peter
d8c525a6c6 Since compiling natively, the compile environment has been less forgiving
about silly typos.  Use the correct comment sequences.
2003-05-11 22:38:54 +00:00
mdodd
232af61924 Provide exec_linux_setregs() to override exec_setregs().
Linux initializes %gs to 0.  Mimic this behavior.

Submitted by:	 Christian Zander <zander@minion.de>
Reviewed by:	 jake
Approved by:	 re
2003-05-11 21:51:11 +00:00
simokawa
2d4780fd3a - Use moderate gap counts listed in IEEE1394a.
- Simplify and correct the bus manager election process.
- Check link_active when choosing cycle master.
- Fix location of the cmr bit.

Approved by: re (scottl)
2003-05-11 10:32:20 +00:00
scottl
351c730887 Hook up the ips module 2003-05-11 06:40:09 +00:00
scottl
d65ad6bdb8 Add notes about the 'ips' driver. 2003-05-11 06:39:05 +00:00
scottl
1612fd1559 Add files for the 'ips' driver. 2003-05-11 06:37:52 +00:00
scottl
e51c9992d8 Add the 'ips' driver for the IBM (now Adaptec) ServeRAID controller
series.  This driver was generously developed and released by David
Jeffreys and Adaptec.  I've updated it to work with 5.x and fixed a
few bugs.

MFC After:	1 week
2003-05-11 06:36:49 +00:00
scottl
25a029e229 garbage collect the reserved major for the ips disk device. GEOM makes
it unneeded.
2003-05-11 06:18:33 +00:00
julian
e27601698d Last commit of the bluetooth upgrade. (this patch was forgotten in the first
commit)

Submitted by: Maksim Yevmenkin <m_evmenkin@yahoo.com>
Approved by: re@
2003-05-10 22:11:25 +00:00
julian
dc5734d94b Part one of undating the bluetooth code to the newest version
Submitted by:   Maksim Yevmenkin <m_evmenkin@yahoo.com>
Approved by: re@
2003-05-10 21:44:42 +00:00
bmilekic
988354fc06 Make m_freem() just use m_free() instead of duplicating the code. The
reason for the duplication was that m_freem() was meant to eventually
be optimized to hold the lock of the cache being freed to as long as
possible across frees but the difficulty of implementing said
optimization right now is too high, given that in some cases (see MAC
and non-cluster external buffers), we need to call into other subsytems,
something not permissible when the cache lock is held.

This change minimizes code duplication while keeping at least the
atomic mbuf+cluster free optimization.

Suggested by: luigi
2003-05-10 18:08:23 +00:00
sos
f4683501f3 Add a couble new Intel PCI id's
Approved by: re@
2003-05-10 14:49:19 +00:00
peter
8c83012dec Remove special hacks for FSF cross tools now that it builds natively. 2003-05-10 01:12:24 +00:00
peter
952d1b68b2 Provide a fake varargs implementation for lint's benefit. This way
it can see the intent of the va_* macros, even though it cannot work.

Approved by:	re (blanket amd64/*)
2003-05-10 00:55:15 +00:00
peter
4d4f676db4 Remove _ARCH_INDIRECT ifdefs. They existed for lib/msun/* on i386, which
could use different versions of the math code depending on whether there
was real floating point hardware or math emulation.  Since the fpu is
part of the core specification on amd64, there is no need for this here.

Approved by:	re (blanket amd64/*)
2003-05-10 00:53:34 +00:00
peter
26c4873253 bcopyb() isn't used on amd64 kernel (it only exists for i386/pcvt)
Approved by:	re (blanket amd64/*)
2003-05-10 00:51:29 +00:00
peter
63c2624c81 Finish translating i386/support.s into amd64 asm - replace bcopy etc with
asm versions.  This yields about a 5% kernel compile time speedup.
2003-05-10 00:49:56 +00:00
phk
8ece7cbc43 When a GEOM (/dev-)device is closed and we find that I/O requests are
still outstanding, give them a chance to complete.

If after 10 seconds we still find outstanding I/O requests, complete
the close with a console warning that the system is likely to panic
later on.

This is a workaround for umount -f not quite doing the right thing.

Approved by:    re/scottl
2003-05-09 21:25:28 +00:00
jhb
9efb8e111e Remove Giant from kern_sigsuspend() and osigsuspend() as these should now
be MP safe.

Approved by:	re (scottl)
2003-05-09 19:11:32 +00:00
peter
31356c64a8 Include the MXCSR initial values, based on the AMD docs. This file
should really be renamed to fpu.h and npx.c to fpu.c since its part of
the core architecture on amd64 systems, not an isa 'numeric processor
extension'.
2003-05-09 18:28:05 +00:00
peter
9bc9519226 Turn syscons on now that it works, so that anybody trying to run this
can see something.  Probing for keyboard still works for auto serial
console mode.
2003-05-09 18:26:06 +00:00
peter
a0202b59a9 Trivial addition of __amd64__ to the ifdefs for platforms that use
i386-style vga console support.

Approved by:  re
2003-05-09 18:24:40 +00:00
silby
fed900cd9f Redefine M_FREELIST to be 0x8000; 0x4000 conflicted with two other
uses of m_flags in the kernel.  (A future commit will move all
private m_flags users here so they're obvious without a great
deal of searching.)

This should fix the mbuf double-free panics those using ppp or
ipfw reset rules have been seeing since the double-free detection
code went in.
2003-05-09 02:15:52 +00:00
alc
2a876b006b Give the kmem object's mutex a unique name, instead of "vm object",
to avoid false reports of lock-order reversal with a system map mutex.

Approved by:	re (jhb)
2003-05-09 02:13:23 +00:00
rwatson
1a81aef457 Rename MAC_MAX_POLICIES to MAC_MAX_SLOTS, since the variables and
constants in question refer to the number of label slots, not the
maximum number of policies that may be loaded.  This should reduce
confusion regarding an element in the MAC sysctl MIB, as well as
make it more clear what the affect of changing the compile-time
constants is.

Approved by:	re (jhb)
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-05-08 19:49:42 +00:00
jhb
503dbfc11c Acquire Giant at the start of the raid rebuild kthreads.
Reported by:	Masachika ISHIZUKA <ishizuka@ish.org>
Reviewed by:	sos
Approved by:	re (bmah)
2003-05-08 16:38:14 +00:00
peter
5596d2cb7e Oops. Turn T_PAGEFLT back into an interrupt gate. It is *critical*
that interrupts be disabled and remain disabled until %cr2 is read.
Otherwise we can preempt and another process can fault, and by the
time we read %cr2, we see a different processes fault address.  This
Greatly Confuses vm_fault() (to say the least).  The i386 port has
got this marked as a bug workaround for a Cyrix CPU, which is what
lead me astray.  Its actually necessary for preemption, regardless
of whether Cyrix cpus had a bug or not.
2003-05-08 08:25:51 +00:00
peter
c4cbceb407 Exclude sys/boot for amd64. There are still toolchain issues to deal
with.  In theory, gcc -m32 should work, but for now, do not tempt fate.

Approved by:	re (scottl)
2003-05-08 06:35:39 +00:00
grog
2d5f55a20d ioctl VINUM_READCONFIG: Don't lock configuration here. vinum_scandisk
needs to do it anyway to handle the startup case.  This is
            part of a fix for the recently reported hangs.

Approved by:  re (scottl)
2003-05-08 00:36:20 +00:00
peter
83575bc69c Leave space for the 128 byte red-zone on the stack. 2003-05-08 00:13:24 +00:00
peter
aa8e46304f #include <machine/metadata.h> was missing; add it 2003-05-08 00:12:37 +00:00
peter
068f75971f Fix a preemption race. I was reenabling interrupts in the fast system
call handler before it was safe.  It was possible for to lose context
and for something else to clobber the PCPU scratch variable.  This
moves the interrupt enable *way* too late, but its better safe than
sorry for the moment.
2003-05-08 00:05:00 +00:00
ps
da94d06b93 - Change the full Asic revision defines to CHIPID to better since the
ASIC revision is really the major number of the CHIPID.  Also store
  the chipid, asic rev and chip revision in the softc for later use.

- The write twice to send producer index workaround only applies to
  the 5700_BX chips, so only do it there.
  Requested by: jdp

- Do not initalize the LED's to 0x00.  The default configuration
  the chip comes up in should yeild proper operation of the LED's.
  Confirmed by: John Cagle <john.cagle@hp.com>

Approved by:	re (blanket)
2003-05-07 21:51:13 +00:00
rwatson
cdd2c23d20 Clean up locking for the MAC Framework:
(1) Accept that we're now going to use mutexes, so don't attempt
    to avoid treating them as mutexes.  This cleans up locking
    accessor function names some.

(2) Rename variables to _mtx, _cv, _count, simplifying the naming.

(3) Add a new form of the _busy() primitive that conditionally
    makes the list busy: if there are entries on the list, bump
    the busy count.  If there are no entries, don't bump the busy
    count.  Return a boolean indicating whether or not the busy
    count was bumped.

(4) Break mac_policy_list into two lists: one with the same name
    holding dynamic policies, and a new list, mac_static_policy_list,
    which holds policies loaded before mac_late and without the
    unload flag set.  The static list may be accessed without
    holding the busy count, since it can't change at run-time.

(5) In general, prefer making the list busy conditionally, meaning
    we pay only one mutex lock per entry point if all modules are
    on the static list, rather than two (since we don't have to
    lower the busy count when we're done with the framework).  For
    systems running just Biba or MLS, this will halve the mutex
    accesses in the network stack, and may offer a substantial
    performance benefits.

(6) Lay the groundwork for a dynamic-free kernel option which
    eliminates all locking associated with dynamically loaded or
    unloaded policies, for pre-configured systems requiring
    maximum performance but less run-time flexibility.

These changes have been running for a few weeks on MAC development
branch systems.

Approved by:	re (jhb)
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2003-05-07 17:49:24 +00:00
jhb
905e807e48 Style nits.
Approved by:	re (bmah)
2003-05-07 17:21:38 +00:00