[arch-commits] Commit in kernel26-lts/trunk (PKGBUILD buildfix.diff)
andyrtr at archlinux.org
andyrtr at archlinux.org
Wed Mar 2 18:20:50 UTC 2011
Date: Wednesday, March 2, 2011 @ 13:20:50
Author: andyrtr
Revision: 111967
upgpkg: kernel26-lts 2.6.32.30-1
upstream update 2.6.32.30; add a buildfix for x86_64
Added:
kernel26-lts/trunk/buildfix.diff
Modified:
kernel26-lts/trunk/PKGBUILD
---------------+
PKGBUILD | 11 ++++++++---
buildfix.diff | 47 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2011-03-02 18:19:30 UTC (rev 111966)
+++ PKGBUILD 2011-03-02 18:20:50 UTC (rev 111967)
@@ -5,21 +5,24 @@
pkgname=('kernel26-lts' 'kernel26-lts-headers') # Build stock -lts kernel
_kernelname=${pkgname#kernel26}
_basekernel=2.6.32
-pkgver=${_basekernel}.29
-pkgrel=3
+pkgver=${_basekernel}.30
+pkgrel=1
arch=('i686' 'x86_64')
license=('GPL2')
url="http://www.kernel.org"
source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/patch-$pkgver.bz2
libata-alignment.patch
+ # buildfix - revert http://git.kernel.org/?p=linux/kernel/git/longterm/linux-2.6.32.y.git;a=commitdiff;h=484d82b6e2e4239ba7a722e0c532e9aff64be51a
+ buildfix.diff
# the main kernel config files
config config.x86_64
# standard config files for mkinitcpio ramdisk
${pkgname}.preset)
md5sums=('260551284ac224c3a43c4adac7df4879'
- '023b3f22a815417b2f29c1e395991024'
+ 'c300a25a2a4994c36b5c0035bc8ebda4'
'30851deee235a7486bd408cbe8eb2d71'
+ 'fd6d8b475be7adbb9a06f14586fa2629'
'5e0b3fe84e762774469475cca6fb2fee'
'71d8b368b6ec167488286195c37dd7de'
'2cbfeb3e2a18d45f82f613e97fc23355')
@@ -36,6 +39,8 @@
if [ "$CARCH" = "x86_64" ]; then
cat ../config.x86_64 >./.config
+ # http://linux.kernel.org/mailman/private/stable/2011-March/071529.html
+ patch -Rp1 -i ${srcdir}/buildfix.diff
else
cat ../config >./.config
fi
Added: buildfix.diff
===================================================================
--- buildfix.diff (rev 0)
+++ buildfix.diff 2011-03-02 18:20:50 UTC (rev 111967)
@@ -0,0 +1,47 @@
+From: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
+Date: Fri, 25 Feb 2011 22:44:16 +0000 (-0800)
+Subject: swiotlb: fix wrong panic
+X-Git-Tag: v2.6.32.30~9
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Flongterm%2Flinux-2.6.32.y.git;a=commitdiff_plain;h=484d82b6e2e4239ba7a722e0c532e9aff64be51a
+
+swiotlb: fix wrong panic
+
+commit fba99fa38b023224680308a482e12a0eca87e4e1 upstream.
+
+swiotlb's map_page wrongly calls panic() when it can't find a buffer fit
+for device's dma mask. It should return an error instead.
+
+Devices with an odd dma mask (i.e. under 4G) like b44 network card hit
+this bug (the system crashes):
+
+ http://marc.info/?l=linux-kernel&m=129648943830106&w=2
+
+If swiotlb returns an error, b44 driver can use the own bouncing
+mechanism.
+
+Reported-by: Chuck Ebbert <cebbert at redhat.com>
+Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
+Tested-by: Arkadiusz Miskiewicz <arekm at maven.pl>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+
+diff --git a/lib/swiotlb.c b/lib/swiotlb.c
+index ac25cd2..7740ee8 100644
+--- a/lib/swiotlb.c
++++ b/lib/swiotlb.c
+@@ -631,8 +631,10 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
+ /*
+ * Ensure that the address returned is DMA'ble
+ */
+- if (!dma_capable(dev, dev_addr, size))
+- panic("map_single: bounce buffer is not DMA'ble");
++ if (!dma_capable(dev, dev_addr, size)) {
++ swiotlb_tbl_unmap_single(dev, map, size, dir);
++ dev_addr = swiotlb_virt_to_bus(dev, io_tlb_overflow_buffer);
++ }
+
+ return dev_addr;
+ }
+
More information about the arch-commits
mailing list