| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
keep the locking and solve the real problem.
|
|
|
|
| |
did anything, so this commit should be considered a NO-OP.
|
|
|
|
|
|
| |
@sys/dev/acpica/acpi_pci_link.c:153" panic by backing out rev 1.37 in the SMP
case. It appears that on a dual-proc machine the assertions in the rev 1.37
commit log hold true.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce domain_init_status to keep track of the init status of the domains
list (surprise). 0 = uninitialized, 1 = initialized/unpopulated, 2 =
initialized/done. Higher values can be used to support late addition of
domains which right now "works", but is potential dangerous. I choose to
only give a warning when doing so.
Use domain_init_status with if_attachdomain[1]() to ensure that we have a
complete domains list when we init the if_afdata array. Store the current
value of domain_init_status in if_afdata_initialized. This way we can update
if_afdata after a new protocol has been added (once that is allowed).
Submitted by: se (with changes)
Reviewed by: julian, glebius, se
PR: kern/73321 (partly)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
call net_add_domain(). Calling this function too early (or late) breaks
assertations about the global domains list.
Actually it should be forbidden to call net_add_domain() outside of
SI_SUB_PROTO_DOMAIN completely as there are many places where we traverse
the domains list unprotected, but for now we allow late calls (mostly to
support netgraph). In order to really fix this we have to lock the domains
list in all places or find another way to ensure that we can safely walk the
list while another thread might be adding a new domain.
Spotted by: se
Reviewed by: julian, glebius
PR: kern/73321 (partly)
|
|
|
|
| |
lines while here.
|
|
|
|
| |
Pointy hat: njl from nskyline_r35 at yahoo com
|
|
|
|
|
| |
anyway and for some reason, witness seems confused about what's already
locked and triggers a false panic.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lock collision.
2. Fix two race conditions. One is between _umtx_unlock and signal,
also a thread was marked TDF_UMTXWAKEUP by _umtx_unlock, it is
possible a signal delivered to the thread will cause msleep
returns EINTR, and the thread breaks out of loop, this causes
umtx ownership is not transfered to the thread. Another is in
_umtx_unlock itself, when the function sets the umtx to
UMTX_UNOWNED state, a new thread can come in and lock the umtx,
also the function tries to set contested bit flag, but it will
fail. Although the function will wake a blocked thread, if that
thread breaks out of loop by signal, no contested bit will be set.
|
|
|
|
|
| |
stubs that at least handle the stack correctly. This makes it much easier to
experiment with loader scripts from userland.
|
|
|
|
|
|
|
|
|
| |
observations lead me to believe that the convetion for pc98 boot
loaders is to have a jump unstruction, followed by a string, followed
by code. The jump usually doesn't have a nop after it and usually the
string is NUL terminated, but Grub/98 breaks both of these rules.
# I looked for, but failed to find the Minux boot blocks for PC-9801 port.
|
|
|
|
|
| |
MSR in kernel mode. Redefine PSL_USERSET in terms of this by or'ing
in PSL_PR.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
512. If I had an audio cdrom in my cd player when I booted my system,
I'd get a panic from geom because you can't read 8192 bytes from an
audio cdrom.
Remove XXX comment about IPL1 and replace it with some information
from my soon to be published web page on the pc98 disk layout. The
IPL1 test was the result of an observation of a disk with FreeBSD's
boot0 program. It was testing part of an area what appears to be
reserved for a boot loader name, which comes after a jump over this
area. I don't yet know if it is required to be any specific jump
instruction, or if the destination has to be location 11. [1]
[1] FreeBSD Press No. 13, page 115, poorly translated by myself. The
picture there shows offset 8 as the destination of the jump, but
FreeBSD's boot0 program has three padding NULs after the IPL1 name and
uses a 16-bit 'jmp' instruction.
|
|
|
|
|
|
|
|
|
|
|
|
| |
resource lists. It used to be sized based only on _CRS, hence _PRS could
perform an out-of-bounds access if it was larger (i.e., when there are
dependent functions). Add asserts to detect this case. Note, this is
only a temporary fix and I believe _PRS and _CRS should have separate
arrays.
Also, fix a typo where the wrong irq was being check for the APIC case.
Submitted by: tegge
|
| |
|
|
|
|
| |
cpu 0. Also, restructure cpu_reset to be cleaner (no functional change.)
|
| |
|
|
|
|
|
| |
possible, like on i386. Registers are handled differently for caller
vs callee saved registers.
|
|
|
|
| |
choice because it is so in sync with stathz (128hz or 4096hz etc).
|
| |
|
|
|
|
|
| |
eliminate the evil cpu_reset_proxy code now that it will never be
activated. i386 should pick this up as well.
|
|
|
|
|
|
|
|
|
| |
to do a window update to the peer (thru an ACK) from soreceive()
itself. TCP will do that upon return from the socket callback.
Sending a window update from soreceive() results in a lock reversal.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Reviewed by: rwatson
|
|
|
|
|
|
|
|
| |
soreceive(), then pass in M_DONTWAIT to m_copym(). Also fix up error
handling for the case where m_copym() returns failure.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Reviewed by: rwatson
|
|
|
|
|
|
|
| |
in the error cases, causing panics.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Reviewed by: rwatson
|
|
|
|
|
|
|
|
|
| |
that the exclusive lock is already held, then we call panic. Don't
clobber internal lock state before panic'ing. This change improves
debugging if this case were to happen.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Reviewed by: rwatson
|
|
|
|
| |
that they are equivalent.
|
|
|
|
|
| |
Found by: Pawel Worach and Daniel Hartmeier
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
|
|
|
|
| |
internal variables as well to reflect the change.
|
|
|
|
|
| |
trigger for other misbehaviour in the sym driver that was causing freezes at
boot. Thanks to phk@ for reporting and testing this.
|
|
|
|
|
|
|
|
| |
2km away from where I'm living, so that I can fix these typos sooner.
s/SA_MAX/AF_MAX/ is previous commit.
Reported by: marcus, ups, Yiawei Ye, dwhite
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Approved by: Robert Watson <rwatson@freebsd.org>
Add locking to the IPv6 scoping code.
All spl() like calls have also been removed.
Cleaning up the handling of ifnet data will happen at a later date.
|
|
|
|
|
| |
frankly tired of the controversy. When people ask me why FreeBSD isn't user-
friendly, I'll tell them that I tried. RIP.
|
|
|
|
|
|
| |
PR: kern/73766
Submitted by: Valentin Nechayev
MFC after: 1 week
|
|
|
|
|
| |
PR: kern/73286
Submitted by: Daan Vreeken
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
correct open/close behaviour of filesystems:
When an ioctl to modify the MBR arrives, we cannot take for granted that
we have the consumer open.
The symptom is that one cannot run 'boot0cfg -s2 /dev/ad0' in single-user
mode because / is the only open partition in only open r1w0e1.
If it is not, we attempt to increase the write count by one and
decrease it again afterwards.
Presumably most if not all other slices suffer from the same problem.
|
|
|
|
|
| |
Reported by: Bryan Fulton and Ted Unangst, Coverity, Inc.
Found by: The SWAT analysis tool
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the address of a channel on a SCC, it returns 0 on failure. [1]
- Hardcode channel 1 for the keyboard on Z8530, the information present
in the Open Firmware device tree doesn't allow to determine this via
uart_cpu_channel(). This makes the keyboard (if one backs out rev. 1.5
of sys/dev/puc/puc_sbus.c and has both keyboard and mouse plugged in to
avoid the hang that revision works around) and consequently syscons(4)
on Ultra 2 work. There's a problem with the keyboard LEDs similar to
the one on Ultra 60 (LEDs don't get lit under X) though, instead of
lighting just a specific single one all get lit and can't be turned off
again. [1]
- Add comments about what uart_cpu_channel() and uart_cpu_getdev_keyboard()
do and their constraints.
- Improve the comments about what uart_cpu_getdev_[console,dbgport]() do,
they don't return an address (as in bus) but an Open Firmware package
handle.
Reviewed by: marcel (modulo the comments) [1]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead acquire it conditionally in closef() if it is required for
advisory locking. This removes Giant from the close() path of sockets
and pipes (and any other objects that don't acquire Giant in their
fo_close path, such as kqueues). Giant will still be acquired twice for
vnodes -- once for advisory lock teardown, and a second time in the
fo_close method. Both Poul-Henning and I believe that the advisory lock
teardown code can be moved into the vn_closefile path shortly.
This trims a percent or two off the cost of most non-vnode close
operations on SMP, but has a fairly minimal impact on UP where the cost
of a single mutex operation is pretty low.
|
| |
|
| |
|
|
|
|
| |
write of various time/rtt-related fields in the tcpcb.
|
|
|
|
|
|
|
|
| |
pointer updates: test available space while holding the socket buffer
mutex, and continue to hold until until the pointer update has been
performed.
MFC after: 2 weeks
|
|
|
|
|
|
|
| |
o Remove a bogus comment that relates to alpha.
o s/u_int64_t/uint64_t/g
o Add bi_spare2 to make the internal padding explicit.
o Move BOOTINFO_MAGIC after the field it applies to.
|
|
|
|
|
| |
and efi_readin(). This removes MD code from copy.c.
o Don't unconditionally add pal.S to SRCS. It's specific to ia64.
|
|
|
|
|
|
| |
changing the Makefile, fail the creation of loader.efi when there are
unresolved symbols in loader.sym. This avoids silently creating a
faulty EFI binary.
|