diff options
-rw-r--r-- | libre/linux-libre/3.4.2-rpc_pipefs.patch | 34 | ||||
-rw-r--r-- | libre/linux-libre/PKGBUILD | 13 | ||||
-rw-r--r-- | libre/linux-libre/linux-libre.install | 2 |
3 files changed, 45 insertions, 4 deletions
diff --git a/libre/linux-libre/3.4.2-rpc_pipefs.patch b/libre/linux-libre/3.4.2-rpc_pipefs.patch new file mode 100644 index 000000000..5c3245669 --- /dev/null +++ b/libre/linux-libre/3.4.2-rpc_pipefs.patch @@ -0,0 +1,34 @@ +diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c +index 0404047..21fde99 100644 +--- a/net/sunrpc/rpc_pipe.c ++++ b/net/sunrpc/rpc_pipe.c +@@ -71,7 +71,9 @@ static void rpc_purge_list(wait_queue_head_t *waitq, struct list_head *head, + msg->errno = err; + destroy_msg(msg); + } while (!list_empty(head)); +- wake_up(waitq); ++ ++ if (waitq) ++ wake_up(waitq); + } + + static void +@@ -91,11 +93,9 @@ rpc_timeout_upcall_queue(struct work_struct *work) + } + dentry = dget(pipe->dentry); + spin_unlock(&pipe->lock); +- if (dentry) { +- rpc_purge_list(&RPC_I(dentry->d_inode)->waitq, +- &free_list, destroy_msg, -ETIMEDOUT); +- dput(dentry); +- } ++ rpc_purge_list(dentry ? &RPC_I(dentry->d_inode)->waitq : NULL, ++ &free_list, destroy_msg, -ETIMEDOUT); ++ dput(dentry); + } + + ssize_t rpc_pipe_generic_upcall(struct file *filp, struct rpc_pipe_msg *msg, +-- +1.7.7.6 + + diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 4f10a211a..78f03392c 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -14,8 +14,8 @@ _kernelname=-LIBRE _basekernel=3.4 _sublevel=2 pkgver=${_basekernel}.${_sublevel} -_lxopkgver=${_basekernel}.1 # nearly always the same as pkgver -pkgrel=1 +_lxopkgver=${_basekernel}.2 # nearly always the same as pkgver +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -32,6 +32,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'boot-logo.patch' 'change-default-console-loglevel.patch' 'i915-fix-ghost-tv-output.patch' + '3.4.2-rpc_pipefs.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('a5e128ca059cceb8b69148b41ff4ac6f' 'ea827952923c8a926c0831ad3f124190' @@ -43,7 +44,8 @@ md5sums=('a5e128ca059cceb8b69148b41ff4ac6f' '04b21c79df0a952c22d681dd4f4562df' '9d3c56a4b999c8bfbd4018089a62f662' '263725f20c0b9eb9c353040792d644e5' - 'f70a4bf0ee00d8be680cfbd65459836d') + '18b3877f9014c8cdd5eb8f6a9e8a3a3a' + '972b3b460764780ee48f031a043a9c09') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -60,6 +62,11 @@ build() { # Add freedo as boot logo patch -Np1 -i "${srcdir}/boot-logo.patch" + # fix nfs4 regression + patch -Np1 -i "${srcdir}/3.4.2-rpc_pipefs.patch" + # add latest fixes from stable queue, if needed + # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git + # Some chips detect a ghost TV output # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html # Arch Linux bug report: FS#19234 diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install index 584f0f645..985ebf0c7 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.4.2-1-LIBRE +KERNEL_VERSION=3.4.2-2-LIBRE post_install () { # updating module dependencies |