diff options
author | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2013-01-20 15:38:15 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2013-01-20 15:38:15 -0300 |
commit | c28258d27bd9d58760eb647f912bb98a536aa753 (patch) | |
tree | 261e61872b291c02790e5483c769710942547731 /libre/linux-libre | |
parent | eefed5e3db847eccce0207f89c7430b9ec4994b7 (diff) | |
parent | 949fa4e5ed405aaddcebff7e21008f03cdffa580 (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
community/erlang/PKGBUILD
community/fcitx-mozc/PKGBUILD
community/geda-gaf/PKGBUILD
community/mplayer2/PKGBUILD
community/parcellite/PKGBUILD
community/python2-pytables/PKGBUILD
community/ruby-gtk2/PKGBUILD
core/kbd/PKGBUILD
core/systemd/PKGBUILD
extra/calligra/PKGBUILD
extra/dmapi/PKGBUILD
extra/gstreamer0.10-ugly/PKGBUILD
extra/gvfs/PKGBUILD
extra/libcdio/PKGBUILD
extra/libtorrent-rasterbar/PKGBUILD
extra/llvm/PKGBUILD
extra/nx/PKGBUILD
extra/ocaml/PKGBUILD
extra/php-xcache/PKGBUILD
extra/qtwebkit/PKGBUILD
extra/vcdimager/PKGBUILD
extra/w3m/PKGBUILD
extra/xorg-bdftopcf/PKGBUILD
extra/xorg-xcalc/PKGBUILD
extra/xorg-xconsole/PKGBUILD
extra/xorg-xedit/PKGBUILD
extra/xorg-xmag/PKGBUILD
extra/xorg-xmessage/PKGBUILD
extra/xorg-xvidtune/PKGBUILD
libre/unzip-libre/PKGBUILD
social/opentracker/PKGBUILD
Diffstat (limited to 'libre/linux-libre')
-rw-r--r-- | libre/linux-libre/PKGBUILD | 20 | ||||
-rw-r--r-- | libre/linux-libre/config.i686 | 4 | ||||
-rw-r--r-- | libre/linux-libre/config.x86_64 | 4 | ||||
-rw-r--r-- | libre/linux-libre/drm-fix-track-free-areas-3.7.patch | 153 | ||||
-rw-r--r-- | libre/linux-libre/linux-libre.install | 2 |
5 files changed, 165 insertions, 18 deletions
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 162169e03..98430d160 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -10,10 +10,10 @@ pkgbase=linux-libre # Build stock -LIBRE kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.7 -_sublevel=1 +_sublevel=3 pkgver=${_basekernel}.${_sublevel} -pkgrel=2.1 -_lxopkgver=${_basekernel}.1 # nearly always the same as pkgver +pkgrel=1 +_lxopkgver=${_basekernel}.2 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -30,20 +30,18 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'boot-logo.patch' 'change-default-console-loglevel.patch' 'fat-3.6.x.patch' - 'fix-watchdog-3.7.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('06bf9601d859531e7378eb43d4ca7dd3' - '6f4bb80d3d91b69daf5ccfea836d02df' - '54b20031deeff214ed21074ab179cab2' - '65d8ca049850d18b97f59fa7a7b879f2' + 'dc98d320024ef8c3be42e13be30c6673' + '741f96278cbf12996166128a4657ce58' + '0665c18c1ba3abbea5cd4cde91300854' 'e49ac236dfeef709f91a3d993ea7b62c' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' '04b21c79df0a952c22d681dd4f4562df' '9d3c56a4b999c8bfbd4018089a62f662' '88d501404f172dac6fcb248978251560' - '3485d6c7ae3af35d16e09d6d9a7ed32a' - 'b56c33eaee920970151fffdfc7df0766') + '7b26fef2bd39b7f6f26b7afcbc9d570f') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -72,10 +70,6 @@ build() { # https://bugs.archlinux.org/task/32916 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" == "mips64el" ]; then sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \ diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 5413daf03..5c6f3f62a 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -733,7 +733,7 @@ CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -# CONFIG_ARPD is not set +CONFIG_ARPD=y CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_INET_AH=m @@ -5735,7 +5735,7 @@ CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_DYNAMIC_DEBUG is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 19eb22d1f..c213f8707 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -703,7 +703,7 @@ CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y -# CONFIG_ARPD is not set +CONFIG_ARPD=y CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_INET_AH=m @@ -5503,7 +5503,7 @@ CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_INTERVAL_TREE_TEST is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_DYNAMIC_DEBUG is not set +CONFIG_DYNAMIC_DEBUG=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set CONFIG_ASYNC_RAID6_TEST=m diff --git a/libre/linux-libre/drm-fix-track-free-areas-3.7.patch b/libre/linux-libre/drm-fix-track-free-areas-3.7.patch new file mode 100644 index 000000000..6d00c6d3e --- /dev/null +++ b/libre/linux-libre/drm-fix-track-free-areas-3.7.patch @@ -0,0 +1,153 @@ +From 9ff0ab9881bd47f7d8a95c07a2fa61f594a91d0a Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 16 Dec 2012 16:15:00 +0000 +Subject: [PATCH] drm: Only evict the blocks required to create the requested + hole + +Avoid clobbering adjacent blocks if they happen to expire earlier and +amalgamate together to form the requested hole. + +In passing this fixes a regression from +commit ea7b1dd44867e9cd6bac67e7c9fc3f128b5b255c +Author: Daniel Vetter <daniel.vetter@ffwll.ch> +Date: Fri Feb 18 17:59:12 2011 +0100 + + drm: mm: track free areas implicitly + +which swaps the end address for size (with a potential overflow) and +effectively causes the eviction code to clobber almost all earlier +buffers above the evictee. + +v2: Check the original hole not the adjusted as the coloring may confuse +us when later searching for the overlapping nodes. Also make sure that +we do apply the range restriction and color adjustment in the same +order for both scanning, searching and insertion. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Daniel Vetter <daniel.vetter@ffwll.ch> +--- + drivers/gpu/drm/drm_mm.c | 45 +++++++++++++++++---------------------------- + include/drm/drm_mm.h | 2 +- + 2 files changed, 18 insertions(+), 29 deletions(-) + +diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c +index 0761a03..665553c 100644 +--- a/drivers/gpu/drm/drm_mm.c ++++ b/drivers/gpu/drm/drm_mm.c +@@ -213,11 +213,13 @@ static void drm_mm_insert_helper_range(struct drm_mm_node *hole_node, + + BUG_ON(!hole_node->hole_follows || node->allocated); + +- if (mm->color_adjust) +- mm->color_adjust(hole_node, color, &adj_start, &adj_end); +- + if (adj_start < start) + adj_start = start; ++ if (adj_end > end) ++ adj_end = end; ++ ++ if (mm->color_adjust) ++ mm->color_adjust(hole_node, color, &adj_start, &adj_end); + + if (alignment) { + unsigned tmp = adj_start % alignment; +@@ -489,7 +491,7 @@ void drm_mm_init_scan(struct drm_mm *mm, + mm->scan_size = size; + mm->scanned_blocks = 0; + mm->scan_hit_start = 0; +- mm->scan_hit_size = 0; ++ mm->scan_hit_end = 0; + mm->scan_check_range = 0; + mm->prev_scanned_node = NULL; + } +@@ -516,7 +518,7 @@ void drm_mm_init_scan_with_range(struct drm_mm *mm, + mm->scan_size = size; + mm->scanned_blocks = 0; + mm->scan_hit_start = 0; +- mm->scan_hit_size = 0; ++ mm->scan_hit_end = 0; + mm->scan_start = start; + mm->scan_end = end; + mm->scan_check_range = 1; +@@ -535,8 +537,7 @@ int drm_mm_scan_add_block(struct drm_mm_node *node) + struct drm_mm *mm = node->mm; + struct drm_mm_node *prev_node; + unsigned long hole_start, hole_end; +- unsigned long adj_start; +- unsigned long adj_end; ++ unsigned long adj_start, adj_end; + + mm->scanned_blocks++; + +@@ -553,14 +554,8 @@ int drm_mm_scan_add_block(struct drm_mm_node *node) + node->node_list.next = &mm->prev_scanned_node->node_list; + mm->prev_scanned_node = node; + +- hole_start = drm_mm_hole_node_start(prev_node); +- hole_end = drm_mm_hole_node_end(prev_node); +- +- adj_start = hole_start; +- adj_end = hole_end; +- +- if (mm->color_adjust) +- mm->color_adjust(prev_node, mm->scan_color, &adj_start, &adj_end); ++ adj_start = hole_start = drm_mm_hole_node_start(prev_node); ++ adj_end = hole_end = drm_mm_hole_node_end(prev_node); + + if (mm->scan_check_range) { + if (adj_start < mm->scan_start) +@@ -569,11 +564,14 @@ int drm_mm_scan_add_block(struct drm_mm_node *node) + adj_end = mm->scan_end; + } + ++ if (mm->color_adjust) ++ mm->color_adjust(prev_node, mm->scan_color, ++ &adj_start, &adj_end); ++ + if (check_free_hole(adj_start, adj_end, + mm->scan_size, mm->scan_alignment)) { + mm->scan_hit_start = hole_start; +- mm->scan_hit_size = hole_end; +- ++ mm->scan_hit_end = hole_end; + return 1; + } + +@@ -609,19 +607,10 @@ int drm_mm_scan_remove_block(struct drm_mm_node *node) + node_list); + + prev_node->hole_follows = node->scanned_preceeds_hole; +- INIT_LIST_HEAD(&node->node_list); + list_add(&node->node_list, &prev_node->node_list); + +- /* Only need to check for containement because start&size for the +- * complete resulting free block (not just the desired part) is +- * stored. */ +- if (node->start >= mm->scan_hit_start && +- node->start + node->size +- <= mm->scan_hit_start + mm->scan_hit_size) { +- return 1; +- } +- +- return 0; ++ return (drm_mm_hole_node_end(node) > mm->scan_hit_start && ++ node->start < mm->scan_hit_end); + } + EXPORT_SYMBOL(drm_mm_scan_remove_block); + +diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h +index 06d7f79..a1b66b7 100644 +--- a/include/drm/drm_mm.h ++++ b/include/drm/drm_mm.h +@@ -70,7 +70,7 @@ struct drm_mm { + unsigned long scan_color; + unsigned long scan_size; + unsigned long scan_hit_start; +- unsigned scan_hit_size; ++ unsigned long scan_hit_end; + unsigned scanned_blocks; + unsigned long scan_start; + unsigned long scan_end; +-- +1.7.10.4 + diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install index 61aa977c0..278894359 100644 --- a/libre/linux-libre/linux-libre.install +++ b/libre/linux-libre/linux-libre.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME= -KERNEL_VERSION=3.7.1-2.1-LIBRE +KERNEL_VERSION=3.7.3-1-LIBRE # 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' |