This commit is contained in:
Dan Ziemba 2015-06-09 00:47:54 -04:00
parent a4338493c3
commit fed99cd73c
3 changed files with 9 additions and 66 deletions

View File

@ -1,6 +1,6 @@
pkgbase = linux-vfio pkgbase = linux-vfio
pkgver = 4.0.4 pkgver = 4.0.5
pkgrel = 2 pkgrel = 1
url = http://www.kernel.org/ url = http://www.kernel.org/
arch = i686 arch = i686
arch = x86_64 arch = x86_64
@ -13,12 +13,11 @@ pkgbase = linux-vfio
options = !strip options = !strip
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.sign
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.0.4.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.0.5.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.0.4.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.0.5.sign
source = config source = config
source = config.x86_64 source = config.x86_64
source = linux.preset source = linux.preset
source = md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch
source = change-default-console-loglevel.patch source = change-default-console-loglevel.patch
source = override_for_missing_acs_capabilities.patch source = override_for_missing_acs_capabilities.patch
source = i915_317.patch source = i915_317.patch
@ -29,7 +28,6 @@ pkgbase = linux-vfio
sha256sums = e8d639582697f22333a96aa1614bcf5d9bcf2e6683a3d5296f9cfc64843606f1 sha256sums = e8d639582697f22333a96aa1614bcf5d9bcf2e6683a3d5296f9cfc64843606f1
sha256sums = 5dadd75693e512b77f87f5620e470405b943373613eaf4df561037e9296453be sha256sums = 5dadd75693e512b77f87f5620e470405b943373613eaf4df561037e9296453be
sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c
sha256sums = bc83293e64653d60793708a0e277741f57c018f5ea3551a8aff3a220df917ceb
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99 sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
sha256sums = 975f79348119bfba8dd972a9fbfe6b38484c45bfd228f2f6d48a0c02426ba149 sha256sums = 975f79348119bfba8dd972a9fbfe6b38484c45bfd228f2f6d48a0c02426ba149
sha256sums = f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19 sha256sums = f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19
@ -42,20 +40,20 @@ pkgname = linux-vfio
depends = kmod depends = kmod
depends = mkinitcpio>=0.7 depends = mkinitcpio>=0.7
optdepends = crda: to set the correct wireless channels of your country optdepends = crda: to set the correct wireless channels of your country
provides = kernel26-vfio=4.0.4 provides = kernel26-vfio=4.0.5
conflicts = kernel26-vfio conflicts = kernel26-vfio
replaces = kernel26-vfio replaces = kernel26-vfio
backup = etc/mkinitcpio.d/linux-vfio.preset backup = etc/mkinitcpio.d/linux-vfio.preset
pkgname = linux-vfio-headers pkgname = linux-vfio-headers
pkgdesc = Header files and scripts for building modules for Linux-vfio kernel pkgdesc = Header files and scripts for building modules for Linux-vfio kernel
provides = kernel26-vfio-headers=4.0.4 provides = kernel26-vfio-headers=4.0.5
conflicts = kernel26-vfio-headers conflicts = kernel26-vfio-headers
replaces = kernel26-vfio-headers replaces = kernel26-vfio-headers
pkgname = linux-vfio-docs pkgname = linux-vfio-docs
pkgdesc = Kernel hackers manual - HTML documentation that comes with the Linux-vfio kernel pkgdesc = Kernel hackers manual - HTML documentation that comes with the Linux-vfio kernel
provides = kernel26-vfio-docs=4.0.4 provides = kernel26-vfio-docs=4.0.5
conflicts = kernel26-vfio-docs conflicts = kernel26-vfio-docs
replaces = kernel26-vfio-docs replaces = kernel26-vfio-docs

View File

@ -2,8 +2,8 @@
pkgbase=linux-vfio pkgbase=linux-vfio
_srcname=linux-4.0 _srcname=linux-4.0
pkgver=4.0.4 pkgver=4.0.5
pkgrel=2 pkgrel=1
arch=('i686' 'x86_64') arch=('i686' 'x86_64')
url="http://www.kernel.org/" url="http://www.kernel.org/"
license=('GPL2') license=('GPL2')
@ -17,7 +17,6 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
'config' 'config.x86_64' 'config' 'config.x86_64'
# standard config files for mkinitcpio ramdisk # standard config files for mkinitcpio ramdisk
'linux.preset' 'linux.preset'
'md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch'
'change-default-console-loglevel.patch' 'change-default-console-loglevel.patch'
'override_for_missing_acs_capabilities.patch' 'override_for_missing_acs_capabilities.patch'
'i915_317.patch' 'i915_317.patch'
@ -29,7 +28,6 @@ sha256sums=('0f2f7d44979bc8f71c4fc5d3308c03499c26a824dd311fdf6eef4dee0d7d5991'
'e8d639582697f22333a96aa1614bcf5d9bcf2e6683a3d5296f9cfc64843606f1' 'e8d639582697f22333a96aa1614bcf5d9bcf2e6683a3d5296f9cfc64843606f1'
'5dadd75693e512b77f87f5620e470405b943373613eaf4df561037e9296453be' '5dadd75693e512b77f87f5620e470405b943373613eaf4df561037e9296453be'
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
'bc83293e64653d60793708a0e277741f57c018f5ea3551a8aff3a220df917ceb'
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
'975f79348119bfba8dd972a9fbfe6b38484c45bfd228f2f6d48a0c02426ba149' '975f79348119bfba8dd972a9fbfe6b38484c45bfd228f2f6d48a0c02426ba149'
'f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19') 'f86ce528b63f198b84c4d8d92d35329aa4000d462217dc2db03bac5eb693cf19')
@ -49,9 +47,6 @@ prepare() {
# add latest fixes from stable queue, if needed # add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
# https://bugzilla.kernel.org/show_bug.cgi?id=98501
patch -Np1 -i "${srcdir}/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch"
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream # remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)

View File

@ -1,50 +0,0 @@
From a81157768a00e8cf8a7b43b5ea5cac931262374f Mon Sep 17 00:00:00 2001
From: Eric Work <work.eric@gmail.com>
Date: Mon, 18 May 2015 23:26:23 -0700
Subject: [PATCH] md/raid0: fix restore to sector variable in
raid0_make_request
The variable "sector" in "raid0_make_request()" was improperly updated
by a call to "sector_div()" which modifies its first argument in place.
Commit 47d68979cc968535cb87f3e5f2e6a3533ea48fbd restored this variable
after the call for later re-use. Unfortunetly the restore was done after
the referenced variable "bio" was advanced. This lead to the original
value and the restored value being different. Here we move this line to
the proper place.
One observed side effect of this bug was discarding a file though
unlinking would cause an unrelated file's contents to be discarded.
Signed-off-by: NeilBrown <neilb@suse.de>
Fixes: 47d68979cc96 ("md/raid0: fix bug with chunksize not a power of 2.")
Cc: stable@vger.kernel.org (any that received above backport)
URL: https://bugzilla.kernel.org/show_bug.cgi?id=98501
---
drivers/md/raid0.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 6a68ef5..efb654e 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -524,6 +524,9 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
? (sector & (chunk_sects-1))
: sector_div(sector, chunk_sects));
+ /* Restore due to sector_div */
+ sector = bio->bi_iter.bi_sector;
+
if (sectors < bio_sectors(bio)) {
split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set);
bio_chain(split, bio);
@@ -531,7 +534,6 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
split = bio;
}
- sector = bio->bi_iter.bi_sector;
zone = find_zone(mddev->private, &sector);
tmp_dev = map_sector(mddev, zone, sector, &sector);
split->bi_bdev = tmp_dev->bdev;
--
2.4.1