Linus,
I have added another commit to the powerpc.git merge branch, so when
you do:
git pull \
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git merge
you'll get a fix for a bug where the hardware data breakpoint would
sometimes fail to trigger on powerpc, if multiple threads put a
breakpoint on the same address. The bug has been around for a while
and Michael Ellerman just found the cause and posted a fix.
Thanks,
Paul.
arch/powerpc/configs/pasemi_defconfig | 142 ++++++++++++++++++++-------------
arch/powerpc/kernel/process.c | 10 +-
2 files changed, 93 insertions(+), 59 deletions(-)
commit a2ceff5e555e664751bc653a4d9b133efa18c742
Author: Michael Ellerman <michael@ellerman.id.au>
Date: Fri Mar 28 19:11:48 2008 +1100
[POWERPC] Fix missed hardware breakpoints across multiple threads
There is a bug in the powerpc DABR (data access breakpoint) handling,
which can result in us missing breakpoints if several threads are trying
to break on the same address.
The circumstances are that do_page_fault() calls do_dabr(), this clears
the DABR (sets it to 0) and sets up the signal which will report to
userspace that the DABR was hit. The do_signal() code will restore the DABR
value on the way out to userspace.
If we reschedule before calling do_signal(), __switch_to() will check the
cached DABR value and compare it to the new thread's value, if they match
we don't set the DABR in hardware.
So if two threads have the same DABR value, and we schedule from one to
the other after taking the interrupt for the first thread hitting the DABR,
the second thread will run without the DABR set in hardware.
The cleanest fix is to move the cache update into set_dabr(), that way we
can't forget to do it.
Reported-by: Jan Kratochvil <jan.kratochvil@redhat.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
commit 5c29934de29ddd7ecd913d83cad28e872f2e8c78
Author: Olof Johansson <olof@lixom.net>
Date: Tue Mar 25 10:28:26 2008 -0500
[POWERPC] update pasemi_defconfig
Disable GEN_RTC since it conflicts with the i2c rtc drivers registering,
besides that keep most of the new defaults.
Signed-off-by: Olof Johansson <olof@lixom.net>
--
| Linus Torvalds | Re: [GIT]: Networking |
| Mark Lord | Re: [Bug #10391] 2.6.25-rc7/8: Another resume regression |
| David Miller | Slow DOWN, please!!! |
| James Bottomley | [Ksummit-2008-discuss] Fixing the Kernel Janitors project |
git: | |
| Ittay Dror | detecting rename->commit->modify->commit |
| Peter Stahlir | Git as a filesystem |
| Junio C Hamano | [ANNOUNCE] GIT 1.5.4 |
| Andreas Hildebrandt | CVS-$Id:$ replacement in git? |
| Gilles Chehade | Re: Real men don't attack straw men |
| carlopmart | About Xen: maybe a reiterative question but .. |
| Christophe Rioux | OpenBSD as host for VMWare Server |
| Kevin Neff | Patching a SSH 'Weakness' |
| David Miller | Re: [BUG] New Kernel Bugs |
| Pavel Emelyanov | [PATCH 4/5] Mark the setup_net as __net_init |
| Chris Snook | [PATCH 0/4] atlx: add atl2 support |
| Jeff Garzik | Re: [RFC][PATCH 1/1] cxgb3i: cxgb3 iSCSI initiator |
| high memory | 5 hours ago | Linux kernel |
| semaphore access speed | 8 hours ago | Applications and Utilities |
| the kernel how to power off the machine | 9 hours ago | Linux kernel |
| Easter Eggs in windows XP | 12 hours ago | Windows |
| Shared swap partition | 12 hours ago | Linux general |
| Root password | 13 hours ago | Linux general |
| Where/when DNOTIFY is used? | 15 hours ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 17 hours ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 17 hours ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 23 hours ago | Linux general |
