fix watchdog regression
This commit is contained in:
parent
2ce4d476ba
commit
f46e0603ad
12
PKGBUILD
12
PKGBUILD
@ -6,7 +6,7 @@ pkgbase=linux # Build stock -ARCH kernel
|
|||||||
#pkgbase=linux-custom # Build kernel with a different name
|
#pkgbase=linux-custom # Build kernel with a different name
|
||||||
_srcname=linux-3.7
|
_srcname=linux-3.7
|
||||||
pkgver=3.7.1
|
pkgver=3.7.1
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
url="http://www.kernel.org/"
|
url="http://www.kernel.org/"
|
||||||
license=('GPL2')
|
license=('GPL2')
|
||||||
@ -19,14 +19,16 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
|
|||||||
# standard config files for mkinitcpio ramdisk
|
# standard config files for mkinitcpio ramdisk
|
||||||
'linux.preset'
|
'linux.preset'
|
||||||
'change-default-console-loglevel.patch'
|
'change-default-console-loglevel.patch'
|
||||||
'fat-3.6.x.patch')
|
'fat-3.6.x.patch'
|
||||||
|
'fix-watchdog-3.7.patch')
|
||||||
md5sums=('21223369d682bcf44bcdfe1521095983'
|
md5sums=('21223369d682bcf44bcdfe1521095983'
|
||||||
'48f5f530b048e387e978e3e49de7742a'
|
'48f5f530b048e387e978e3e49de7742a'
|
||||||
'2cf43e0448a8074eb2ff93035168250b'
|
'2cf43e0448a8074eb2ff93035168250b'
|
||||||
'58a9ba178fedb244a0a86b760fb4bd81'
|
'58a9ba178fedb244a0a86b760fb4bd81'
|
||||||
'eb14dcfd80c00852ef81ded6e826826a'
|
'eb14dcfd80c00852ef81ded6e826826a'
|
||||||
'9d3c56a4b999c8bfbd4018089a62f662'
|
'9d3c56a4b999c8bfbd4018089a62f662'
|
||||||
'88d501404f172dac6fcb248978251560')
|
'88d501404f172dac6fcb248978251560'
|
||||||
|
'3485d6c7ae3af35d16e09d6d9a7ed32a')
|
||||||
|
|
||||||
_kernelname=${pkgbase#linux}
|
_kernelname=${pkgbase#linux}
|
||||||
|
|
||||||
@ -48,6 +50,10 @@ build() {
|
|||||||
# https://bugs.archlinux.org/task/32916
|
# https://bugs.archlinux.org/task/32916
|
||||||
patch -Np1 -i "${srcdir}/fat-3.6.x.patch"
|
patch -Np1 -i "${srcdir}/fat-3.6.x.patch"
|
||||||
|
|
||||||
|
# fix watchdog enable/disable regression
|
||||||
|
# https://bugs.archlinux.org/task/33095
|
||||||
|
patch -Np1 -i "${srcdir}/fix-watchdog-3.7.patch"
|
||||||
|
|
||||||
if [ "${CARCH}" = "x86_64" ]; then
|
if [ "${CARCH}" = "x86_64" ]; then
|
||||||
cat "${srcdir}/config.x86_64" > ./.config
|
cat "${srcdir}/config.x86_64" > ./.config
|
||||||
else
|
else
|
||||||
|
38
fix-watchdog-3.7.patch
Normal file
38
fix-watchdog-3.7.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=kernel%2Fwatchdog.c;h=75a2ab3d0b0208dfa51e40339ffd00206622732e;hp=997c6a16ec2278969a10f251f63f237e7559d42e;hb=3935e89505a1c3ab3f3b0c7ef0eae54124f48905;hpb=74779e22261172ea728b989310f6ecc991b57d62
|
||||||
|
|
||||||
|
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
|
||||||
|
index 997c6a1..75a2ab3 100644
|
||||||
|
--- a/kernel/watchdog.c
|
||||||
|
+++ b/kernel/watchdog.c
|
||||||
|
@@ -344,6 +344,10 @@ static void watchdog_enable(unsigned int cpu)
|
||||||
|
{
|
||||||
|
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
|
||||||
|
|
||||||
|
+ /* kick off the timer for the hardlockup detector */
|
||||||
|
+ hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||||
|
+ hrtimer->function = watchdog_timer_fn;
|
||||||
|
+
|
||||||
|
if (!watchdog_enabled) {
|
||||||
|
kthread_park(current);
|
||||||
|
return;
|
||||||
|
@@ -352,10 +356,6 @@ static void watchdog_enable(unsigned int cpu)
|
||||||
|
/* Enable the perf event */
|
||||||
|
watchdog_nmi_enable(cpu);
|
||||||
|
|
||||||
|
- /* kick off the timer for the hardlockup detector */
|
||||||
|
- hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||||
|
- hrtimer->function = watchdog_timer_fn;
|
||||||
|
-
|
||||||
|
/* done here because hrtimer_start can only pin to smp_processor_id() */
|
||||||
|
hrtimer_start(hrtimer, ns_to_ktime(sample_period),
|
||||||
|
HRTIMER_MODE_REL_PINNED);
|
||||||
|
@@ -369,9 +369,6 @@ static void watchdog_disable(unsigned int cpu)
|
||||||
|
{
|
||||||
|
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
|
||||||
|
|
||||||
|
- if (!watchdog_enabled)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
watchdog_set_prio(SCHED_NORMAL, 0);
|
||||||
|
hrtimer_cancel(hrtimer);
|
||||||
|
/* disable the perf event */
|
@ -2,7 +2,7 @@
|
|||||||
# arg 2: the old package version
|
# arg 2: the old package version
|
||||||
|
|
||||||
KERNEL_NAME=
|
KERNEL_NAME=
|
||||||
KERNEL_VERSION=3.7.1-1-ARCH
|
KERNEL_VERSION=3.7.1-2-ARCH
|
||||||
|
|
||||||
# set a sane PATH to ensure that critical utils like depmod will be found
|
# set a sane PATH to ensure that critical utils like depmod will be found
|
||||||
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
|
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
|
||||||
|
Loading…
Reference in New Issue
Block a user