Searched hist:251684 (Results 1 - 1 of 1) sorted by relevance
/freebsd-10.0-release/sys/kern/ | ||
H A D | kern_umtx.c | diff 251684 Thu Jun 13 07:35:20 MDT 2013 kib Fix two issues with the spin loops in the umtx(2) implementation. - When looping, check for the pending suspension. Otherwise, other usermode thread which races with the looping one, could try to prevent the process from stopping or exiting. - Add missed checks for the faults from casuword*(). The code is structured in a way which makes the loops exit if the specified address is invalid, since both fuword() and casuword() return -1 on the fault. But if the address is mapped readonly, the typical value read by fuword() is different from -1, while casuword() returns -1. Absent the checks for casuword() faults, this is interpreted as the race with other thread and causes non-interruptible spinning in the kernel. Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks |
Completed in 83 milliseconds