mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
core/linux-kirkwood fix a bug in BFQ and kernel >=3.10.8
This commit is contained in:
parent
812474fdc9
commit
7c16102cdf
2 changed files with 65 additions and 3 deletions
|
@ -0,0 +1,59 @@
|
|||
From 994451c7668678f1bf3ec86345bef1c1d549ba45 Mon Sep 17 00:00:00 2001
|
||||
From: Arianna Avanzini <avanzini.arianna@gmail.com>
|
||||
Date: Wed, 24 Jul 2013 21:43:47 +0200
|
||||
Subject: [PATCH] block: Switch from BFQ-v6r2 for 3.10.0 to BFQ-v6r2 for
|
||||
3.10.8-rc1.
|
||||
|
||||
---
|
||||
block/bfq-iosched.c | 18 +++++++++++++++---
|
||||
1 file changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
|
||||
index bc57923..bbe79fb 100644
|
||||
--- a/block/bfq-iosched.c
|
||||
+++ b/block/bfq-iosched.c
|
||||
@@ -2930,14 +2930,22 @@ static void bfq_exit_queue(struct elevator_queue *e)
|
||||
kfree(bfqd);
|
||||
}
|
||||
|
||||
-static int bfq_init_queue(struct request_queue *q)
|
||||
+static int bfq_init_queue(struct request_queue *q, struct elevator_type *e)
|
||||
{
|
||||
struct bfq_group *bfqg;
|
||||
struct bfq_data *bfqd;
|
||||
+ struct elevator_queue *eq;
|
||||
+
|
||||
+ eq = elevator_alloc(q, e);
|
||||
+ if (eq == NULL)
|
||||
+ return -ENOMEM;
|
||||
|
||||
bfqd = kmalloc_node(sizeof(*bfqd), GFP_KERNEL | __GFP_ZERO, q->node);
|
||||
- if (bfqd == NULL)
|
||||
+ if (bfqd == NULL) {
|
||||
+ kobject_put(&eq->kobj);
|
||||
return -ENOMEM;
|
||||
+ }
|
||||
+ eq->elevator_data = bfqd;
|
||||
|
||||
/*
|
||||
* Our fallback bfqq if bfq_find_alloc_queue() runs into OOM issues.
|
||||
@@ -2948,11 +2956,15 @@ static int bfq_init_queue(struct request_queue *q)
|
||||
atomic_inc(&bfqd->oom_bfqq.ref);
|
||||
|
||||
bfqd->queue = q;
|
||||
- q->elevator->elevator_data = bfqd;
|
||||
+
|
||||
+ spin_lock_irq(q->queue_lock);
|
||||
+ q->elevator = eq;
|
||||
+ spin_unlock_irq(q->queue_lock);
|
||||
|
||||
bfqg = bfq_alloc_root_group(bfqd, q->node);
|
||||
if (bfqg == NULL) {
|
||||
kfree(bfqd);
|
||||
+ kobject_put(&eq->kobj);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -9,7 +9,7 @@ pkgname=('linux-kirkwood' 'linux-headers-kirkwood')
|
|||
_kernelname=${pkgname#linux}
|
||||
_basekernel=3.10.9
|
||||
pkgver=${_basekernel}
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
cryptover=1.6
|
||||
bfqver=v6r2
|
||||
arch=('arm')
|
||||
|
@ -26,7 +26,8 @@ source=("ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-${_basekernel}.tar.xz"
|
|||
"http://download.gna.org/cryptodev-linux/cryptodev-linux-${cryptover}.tar.gz"
|
||||
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$(echo $_basekernel |cut -c 1-4).0-${bfqver}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-$(echo $_basekernel | cut -c 1-4).patch"
|
||||
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$(echo $_basekernel |cut -c 1-4).0-${bfqver}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-$(echo $_basekernel |cut -c 1-4).patch"
|
||||
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$(echo $_basekernel |cut -c 1-4).0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-$(echo $_basekernel |cut -c 1-4).0.patch")
|
||||
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$(echo $_basekernel |cut -c 1-4).0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-$(echo $_basekernel |cut -c 1-4).0.patch"
|
||||
"0001-block-Switch-from-BFQ-v6r2-for-3.10.0-to-BFQ-v6r2-fo.patch")
|
||||
|
||||
md5sums=('28d1e1117c30fdd861f70ac0f9b677aa'
|
||||
'6aa079410d6bd76847d4390a3da4db47'
|
||||
|
@ -37,7 +38,8 @@ md5sums=('28d1e1117c30fdd861f70ac0f9b677aa'
|
|||
'eade38998313c25fd7934719cdf8a2ea'
|
||||
'f1a179be96469b27c21d114b55b521cb'
|
||||
'a929da16edbd480d7d8f90a15eb8a548'
|
||||
'b9e7cbbb21bbe08a4baea9f7e8bc8083')
|
||||
'b9e7cbbb21bbe08a4baea9f7e8bc8083'
|
||||
'ae3c4e30dc31f33abf7897c2a842f130')
|
||||
|
||||
build() {
|
||||
msg "Patches"
|
||||
|
@ -70,6 +72,7 @@ msg2 "Add BFQ patches"
|
|||
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-$(echo $_basekernel | cut -c 1-4).patch"
|
||||
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-$(echo $_basekernel |cut -c 1-4).patch"
|
||||
patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-$(echo $_basekernel |cut -c 1-4).0.patch"
|
||||
patch -Np1 -i "${srcdir}/0001-block-Switch-from-BFQ-v6r2-for-3.10.0-to-BFQ-v6r2-fo.patch"
|
||||
|
||||
# add latest fixes from stable queue, if needed
|
||||
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
|
||||
|
|
Loading…
Reference in a new issue