Commit Graph

188378 Commits

Author SHA1 Message Date
Xin LI
8e41e26f65 MFV r262983:
4638 Panic in ZFS via rfs3_setattr()/rfs3_write(): dirtying snapshot!

illumos/illumos-gate@2144b121c0
2014-03-11 00:23:50 +00:00
Andrew Turner
2ab2eea1d9 Export _libc_arm_fpu_present as a private symbol to be used by other
system libraries, for example libm.
2014-03-11 00:21:49 +00:00
Ian Lepore
ad15dc0f1b Arrange for arm fork_trampoline() to return to userland via the standard
swi_exit code in exception.S instead of having its own inline expansion
of the DO_AST and PULLFRAME macros.  That means that now all references
to the PUSH/PULLFRAME and DO_AST macros are localized to exception.S,
so move the macros themselves into there and remove them from asmacros.h
2014-03-10 22:52:32 +00:00
Ian Lepore
3130601c78 Change the way the asm GET_CURTHREAD_PTR() macro is defined so that code
using it doesn't have to have an "AST_LOCALS" macro somewhere in the file.
2014-03-10 22:38:07 +00:00
Dimitry Andric
9d9a79e53d Repair a few minor mismerges from r262261 in the clang-sparc64 project
branch.  This is also to minimize differences with upstream.

MFC after:	3 weeks
X-MFC-With:	r262613
2014-03-10 21:58:38 +00:00
Devin Teske
931e2be620 Remove vestigial global, no-longer used since SVN r262904. 2014-03-10 21:37:40 +00:00
Xin LI
4d386a222c 4638 Panic in ZFS via rfs3_setattr()/rfs3_write(): dirtying snapshot!
illumos/illumos-gate@2144b121c0
2014-03-10 21:37:07 +00:00
Devin Teske
bfb8efd0ed Whitespace. 2014-03-10 21:35:27 +00:00
Ian Lepore
0e255c3294 Move the exception vector table (so-called "page0" data) into exception.S
and eliminate vectors.S.  All low-level exception handling is now
consolidated into exception.S.

Along with moving the default FIQ handler, change it to disable FIQs
before returning.  An FIQ should never happen, but if it does, it's got
to be disabled as part of ignoring it.

In general, we have hand-wavy support for FIQs that probably hasn't been
used for 10 years and probably doesn't work (almost certainly doesn't
work for SMP because it only updates the vector on the current cpu).  This
change doesn't really make the overall situation any better or worse.
2014-03-10 19:36:26 +00:00
Ian Lepore
5e4e1d4995 Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.c
and the functionality it provided into arm/exception.S.  Rename the main
irq handling routine from arm_handler_execute() to arm_irq_handler() to
make it more congruent with how other exception handlers are named, and
also update its signature to reflect what has long been reality: it is
passed just a trapframe pointer, no interrupt number argument.
2014-03-10 18:10:09 +00:00
John Baldwin
2efbc4a68d Pass the size of the top-level table to map when mapping the table instead
of the size of the pointer.

Reported by:	Coverity
Coverity CID:	1147171
2014-03-10 16:07:45 +00:00
Baptiste Daroussin
b1771e3dc6 Add the makefile forgotten in previous commit 2014-03-10 15:59:50 +00:00
Baptiste Daroussin
2c4c3f6750 Add a mailer.conf example to use dma 2014-03-10 14:36:27 +00:00
Baptiste Daroussin
36c53d6700 Update libucl to 2014-03-03 2014-03-10 10:39:29 +00:00
Baptiste Daroussin
2ae6de7c25 Update libucl to 2014-03-02 version which fixes an important bug when parsing empty arrays 2014-03-10 10:23:43 +00:00
Hans Petter Selasky
cdea3bef22 Ignore USB keyboard driver calls from critical sections.
Reported by:	Oliver Pinter <oliver.pntr@gmail.com>
MFC after:	1 week
2014-03-10 08:52:30 +00:00
Adrian Chadd
bbd4b4346c Also tag the current HAL power mode in ar9300_set_power_mode(). 2014-03-10 06:05:26 +00:00
Adrian Chadd
8a67b42a74 Migrate the chip power mode status to public ath_hal, rather than the
private per-chip HAL.

This allows the ah_osdep.[ch] code to check whether the power state is
valid for doing chip programming.

It should be a no-op for normal driver work but it does require a
clean kernel/module rebuild, as the size of HAL structures have changed.

Now, this doesn't track whether the hardware is ACTUALLY awake,
as NETWORK_SLEEP wakes the chip up for a short period when traffic
is received.  This doesn't actually set the power mode to AWAKE, so
we have to be careful about how we touch things.

But it's enough to start down the path of implementing station mode
chipset power savings, as a large part of the silliness is making
sure the chip is awake during periodic calibration / ANI and
random places where transmit may be occuring.  I'd rather not a repeat
of debugging power save on ath9k, where races with calibration
and transmit path stuff took a couple years to shake out.

Tested:

* AR5416, STA mode
2014-03-10 06:03:35 +00:00
Ian Lepore
cd309dac82 Make the default exception handler vectors point to where I thought they
were already pointing: the default handlers (not a panic that says there
is no default handler).
2014-03-10 01:34:38 +00:00
Jilles Tjoelker
dd4abc6a5c ttys(5): Pseudo-terminals are not listed and the network keyword is obsolete. 2014-03-09 22:38:11 +00:00
Julio Merino
6f402eb3cc Fix ncal tests so that they run cleanly with prove.
Basically just make the test plan match what is actually being run.
2014-03-09 22:16:39 +00:00
Julio Merino
fb3e85e1dc Fix pkill tests so that they run cleanly with prove.
This fixes a pgrep test that assumed that PID 2 was named g_event.  This
does not seem to be the case any longer (and I don't know if it ever was
in all possible setups).

Change this test to use the idle loop instead and determine its expected
PID using ps without assuming any specific ID.
2014-03-09 22:14:20 +00:00
Julio Merino
385cd39138 Fix yacc tests so that they run cleanly with prove.
First, change the driver to run the installed yacc instead of the one from
/usr/obj (which might not be there), just as we (intend to) do with all
other tests.

Second, regenerate the expected output files from scratch.  Based on visual
inspection, the differences seem OK.  But this highlights that the tests in
here are too fragile and, possibly, useless: we should be testing the
behavior of the generated program, not the literal output.  Something to be
addressed later.
2014-03-09 22:05:23 +00:00
Julio Merino
e199cf8185 Fix sed tests so that they run cleanly with prove. 2014-03-09 21:56:29 +00:00
Ian Lepore
a297028904 Remove all traces of support for ARM chips prior to the arm9 series. We
never actually ran on these chips (other than using SA1 support in an
emulator to do the early porting to FreeBSD long long ago).  The clutter
and complexity of some of this code keeps getting in the way of other
maintenance, so it's time to go.
2014-03-09 21:12:31 +00:00
Marcel Moolenaar
bc0770d707 Change the terminal type/class for enabled serial lines to 3wire. This
allows us to change the uart(4) driver to not hardcode specific line
settings for the serial console.

A terminal type of 3wire makes sure the console still works when no DCD
signal is present, which preserves behviour. When it is known that the
terminal server (or DCE in general) provides DCD, a terminal type/class
of std can be used. This has the effect of being logged out when one
disconnects from the console -- improving security overall.

Likewise, when uart(4) does not fixate the baudrate, one can change
the terminal type/class to set a specific baudrate. An operator can use
this to change the console speed mid-flight, without needing a reboot.
Of course it helps in this respect if and when the firmware can be
configured from the OS.

The above mentioned capabilities depend on uart(4) being changed, which
is to happen next.
2014-03-09 21:06:22 +00:00
Marcel Moolenaar
489dd78441 Add 3wire and std as terminal types/classes. These are similar to
the existing terminal types/classes that have the baudrate suffix,
but differ in that no baudrate is set/defined.

The purpose of these new types/classes is to allow them to be used
for the serial console. Currently the uart(4) driver fixates the
baudrate and the CLOCAL flag, which means that it doesn't matter
whether you give it std.<baud> or 3wire.<baud> as the terminal type
to getty and what exactly <baud> is set to. It's being overridden
by uart(4). The goal is to change uart(4) not to override these
settings.
2014-03-09 20:51:14 +00:00
Julio Merino
68f5aa61eb Fix printf tests so that they run cleanly with prove. 2014-03-09 19:37:01 +00:00
Julio Merino
a3c2c920d3 Fix m4 tests so that they run cleanly with prove. 2014-03-09 19:25:53 +00:00
Ian Lepore
510ccb2fd4 The arm exception entry points currently vector through a function pointer
to the actual handler routine.  All the pointers are static-intialized to
the only handlers available, and yet various platform-specific inits still
set those pointers (to the values they're already initialized to).  Begin
to drain the swamp by removing all the redundant external declarations and
runtime setting of the pointers that's scattered around various places.
2014-03-09 18:08:27 +00:00
Ian Lepore
4ce4252794 Make undefined exception entry MPSAFE.
The old code used static storage to preserve a couple registers while
setting up the trapframe for the main handler.  Doing so was the last
leftover crumbs from the days when a low-level debugger was hooked into
the exception entry code.

Now the exception entry sequence is essentially the same as for the
other exceptions, which still involves needlessly indirecting through
a function pointer which points to the same code on every platform.
Removing that indirection will be handled as a separate cleanup.

This work is based on an analysis by Juergen Weiss.
2014-03-09 15:36:56 +00:00
Ian Lepore
9309212899 When a thread begins life it doesn't own the VFP hardware state on any cpu. 2014-03-09 14:54:05 +00:00
Ian Lepore
7a797a2408 Always call vfp_discard() on thread death, not just when the VFP is
enabled.  In vfp_discard(), if the state in the VFP hardware belongs to
the thread which is dying, NULL out pcpu fpcurthread to indicate the
state currently in the hardware belongs to nobody.

Submitted by:	Juergen Weiss
Pointy hat to:	me
2014-03-09 14:24:05 +00:00
Jilles Tjoelker
fcc482b365 kldconfig: Remove some code for compatibility with FreeBSD 4.x.
Verified using md5(1).
2014-03-09 13:19:37 +00:00
John-Mark Gurney
41f554961d various formating fixes, use NUL for NUL bytes..
drop out dated perf numbers (can't imagine people are still running
Pentium MMX 166's anymore)...

bump date...

drop max length of salt of 8 since _PASSWORD_LEN is now large, 128..
and state the max length of the salt depends upon the module,
sha-{256,512} have a max salt of 16..

recommend 8 characters of salt instead of just 2...

MFC after:	1 week
2014-03-09 07:45:59 +00:00
Ian Lepore
f00519b613 Remove all dregs of a per-thread undefined-exception-mode stack. This is
a leftover from the days when a low-level debugger had hooks in the
undefined exception vector and needed stack space to function.  These days
it effectively isn't used because we switch immediately to the svc32 mode
stack on exception entry.  For that, the single undef mode stack per core
that gets set up at init time works fine.

The stack wasn't necessary but it was harmful, because the space for it
was carved out of the normal per-thread svc32 stack, in effect cutting
that 8K stack in half.  If svc32 mode used more than 4k of stack space it
wandered down into the undef mode stack, and then an undef exception would
overwrite a couple words on the stack while switching to svc32 mode,
corrupting the scv32 stack.  Having another stack abut the bottom of the
svc32 stack also effectively mooted the guard page below the stack.

This work is based on analysis and patches submitted by Juergen Weiss.
2014-03-09 03:49:06 +00:00
Ian Lepore
ba1c2daad4 Rework the VFP code that handles demand-based save and restore of state.
The old code was full of complexity that would only matter if the
kernel itself used the VFP hardware.  Now that's reduced to either killing
the userland process or panicking the kernel on an illegal VFP instruction.

This removes most of the complexity from the assembler code, reducing it
to just calling the save code if the outgoing thread used the VFP.

The routine that stores the VFP state now takes a flag that indicates
whether the hardware should be disabled after saving state.  Right now it
always is, but this makes the code ready to be used by get/set_mcontext()
(doing so will be addressed in a future commit).

Remove the arm-specific pc_vfpcthread from struct pcpu and use the MI
field pc_fpcurthread instead.

Reviewed by:	cognet
2014-03-09 03:00:03 +00:00
Warner Losh
9d6f987b13 Remove bogus define that causes compile errors. Most of the defines
for SAM9X are going away soonish anyway (once FDT works), but until
then...
2014-03-09 02:28:30 +00:00
Neel Natu
f5f87548b9 Fix panic "_mtx_lock_sleep: recursed on non-recursive mutex ttymtx" caused when
acquiring the tty lock in bvm_tty_close(). Instead just assert that the tty
lock is held before calling callout_reset().
2014-03-09 02:07:15 +00:00
Glen Barber
b719fba2ea Update board definition for WANDBOARD-QUAD to match crochet.
Sponsored by:	The FreeBSD Foundation
2014-03-09 02:00:48 +00:00
Ian Lepore
8310d0d914 Follow r262916 with one more config file that references a renamed common.c 2014-03-09 01:52:21 +00:00
Jilles Tjoelker
236a5a7938 install: Use posix_spawnp() for starting strip and improve error messages. 2014-03-08 23:05:28 +00:00
Warner Losh
5dceed8aeb Back out r262921. I don't know what I was thinking, but it is lame. 2014-03-08 19:59:52 +00:00
Jilles Tjoelker
4646e82dcd sh: Successfully do nothing when killing a terminated job.
If a job has terminated but is still known, silently do nothing when using
the kill builtin with the job specifier. Formerly, the shell called kill()
with the process group ID that might have been reused.
2014-03-08 19:44:34 +00:00
Rui Paulo
a2be2710b4 Call ieee80211_dump_pkt() based on IFF_DUMPPKTS().
MFC after:	3 days
2014-03-08 19:35:31 +00:00
Hiroki Sato
b0478c2bb7 Fix another bug in multicast filtering. i.MX uses 6 bits from MSB in
LE CRC32 for the hash value, not the lowest 6 bits in BE CRC32.

Tested by:	Takanori Sawada
PR:		arm/187179
2014-03-08 14:58:39 +00:00
Warner Losh
49fa38e888 Move AIC related stuff to own file. 2014-03-08 06:06:50 +00:00
Warner Losh
ebb61891fb Properly round on unmapping. 2014-03-08 06:06:42 +00:00
Warner Losh
1dd7152066 Make at91_soc_id() public. 2014-03-08 05:03:56 +00:00
Warner Losh
803253c874 Set the baud rate if it isn't 0 (meaning it has been specified) not
only if it is 0 (meaning that it hasn't been specified and is likely
to turn off the UART's transmitter).
2014-03-08 03:39:15 +00:00