mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
community/vhba-module to 20100822-4
This commit is contained in:
parent
deb9b52044
commit
3adcada44b
3 changed files with 104 additions and 0 deletions
32
community/vhba-module/PKGBUILD
Normal file
32
community/vhba-module/PKGBUILD
Normal file
|
@ -0,0 +1,32 @@
|
|||
# $Id: PKGBUILD 44936 2011-04-13 05:20:34Z schiv $
|
||||
# Maintainer: Mateusz Herych <heniekk@gmail.com>
|
||||
# Contributor: Charles Lindsay <charles@chaoslizard.org>
|
||||
|
||||
# PlugApps: Kevin Mihelich <kevin@plugapps.com>
|
||||
# - Remove -ARCH from kernver
|
||||
|
||||
plugrel=1
|
||||
|
||||
pkgname=vhba-module
|
||||
pkgver=20100822
|
||||
_kernver='2.6.38-ARCH'
|
||||
pkgrel=4
|
||||
pkgdesc="Kernel module that emulates SCSI devices"
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://cdemu.sourceforge.net/"
|
||||
license=('GPL2')
|
||||
depends=('kernel26>=2.6.38' 'kernel26<2.6.39')
|
||||
makedepends=('kernel26-headers>=2.6.38' 'git')
|
||||
install=vhba-module.install
|
||||
source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz
|
||||
vhba-kernel2.6.37.patch)
|
||||
md5sums=('1d2f06ae33c5d15b7c29e467e4658aa2'
|
||||
'f0499fc54f6ef9b8d6ca0b9e940c5906')
|
||||
|
||||
build() {
|
||||
cd "$srcdir/$pkgname-$pkgver"
|
||||
git apply -p2 ../vhba-kernel2.6.37.patch
|
||||
make -j1 KDIR=/usr/src/linux-${_kernver} || return 1
|
||||
install -D vhba.ko "$pkgdir/lib/modules/${_kernver}/extra/vhba.ko" || return 1
|
||||
sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/vhba-module.install"
|
||||
}
|
56
community/vhba-module/vhba-kernel2.6.37.patch
Normal file
56
community/vhba-module/vhba-kernel2.6.37.patch
Normal file
|
@ -0,0 +1,56 @@
|
|||
From 9ad7ec7fae387f05249b9f4e6accb3bc3b0b8b0f Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gmail.com>
|
||||
Date: Thu, 6 Jan 2011 03:39:26 -0500
|
||||
Subject: [PATCH] Make vhba compatible with kernel 2.6.37 SCSI host API
|
||||
|
||||
Due to the SCSI host lock push-down changes introduced in 2.6.37 (see
|
||||
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f281233d3eba15fb225d21ae2e228fd4553d824a
|
||||
for more details), trying to use current vhba on 2.6.37 leads to oopses
|
||||
and kernel panics - e.g. see http://bugs.gentoo.org/show_bug.cgi?id=350753
|
||||
|
||||
Add some #ifdefs to enable compatibility both with 2.6.37 and older API.
|
||||
Note that if future kernel versions remove the DEF_SCSI_QCMD macro, this
|
||||
issue will need to be revisited.
|
||||
|
||||
Signed-off-by: Alexandre Rostovtsev <tetromino@gmail.com>
|
||||
---
|
||||
vhba-module/vhba.c | 9 ++++++++-
|
||||
1 files changed, 8 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/vhba-module/vhba.c b/vhba-module/vhba.c
|
||||
index 059f6ce..9d13016 100644
|
||||
--- a/vhba-module/vhba.c
|
||||
+++ b/vhba-module/vhba.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/poll.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/version.h>
|
||||
#ifdef CONFIG_COMPAT
|
||||
#include <linux/compat.h>
|
||||
#endif
|
||||
@@ -363,7 +364,7 @@ static void vhba_free_command(struct vhba_command *vcmd)
|
||||
spin_unlock_irqrestore(&vhost->cmd_lock, flags);
|
||||
}
|
||||
|
||||
-static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
+static int vhba_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
|
||||
{
|
||||
struct vhba_device *vdev;
|
||||
int retval;
|
||||
@@ -388,6 +389,12 @@ static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmn
|
||||
return retval;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
|
||||
+DEF_SCSI_QCMD(vhba_queuecommand)
|
||||
+#else
|
||||
+#define vhba_queuecommand vhba_queuecommand_lck
|
||||
+#endif
|
||||
+
|
||||
static int vhba_abort(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct vhba_device *vdev;
|
||||
--
|
||||
1.7.3.4
|
||||
|
16
community/vhba-module/vhba-module.install
Normal file
16
community/vhba-module/vhba-module.install
Normal file
|
@ -0,0 +1,16 @@
|
|||
post_install() {
|
||||
echo ">> Place 'vhba' in MODULES= in /etc/rc.conf to enable vhba on system boot."
|
||||
echo ">> This module needs to be recompiled for every kernel version upgrade."
|
||||
KERNEL_VERSION='2.6.37-ARCH'
|
||||
depmod $KERNEL_VERSION > /dev/null 2>&1
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
post_install
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
KERNEL_VERSION='2.6.37-ARCH'
|
||||
depmod $KERNEL_VERSION > /dev/null 2>&1
|
||||
}
|
||||
|
Loading…
Reference in a new issue