View Issue Details

IDProjectCategoryView StatusLast Update
0000541channel: elrepo/el7--elrepo--request-for-enhancement--public2017-01-10 16:52
Reporterburakkucat Assigned Toburakkucat  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionnot fixable 
Summary0000541: Please provide a rr174x kmod package for EL7
DescriptionAs summary, above.

Currently the following files are provided, giving support for EL5 & EL6 users --

elrepo/el5/i386/RPMS/kmod-rr174x-2.4-2.el5.elrepo.i686.rpm
elrepo/el5/i386/RPMS/kmod-rr174x-PAE-2.4-2.el5.elrepo.i686.rpm
elrepo/el5/i386/RPMS/kmod-rr174x-xen-2.4-2.el5.elrepo.i686.rpm
elrepo/el5/SRPMS/rr174x-kmod-2.4-2.el5.elrepo.src.rpm
elrepo/el5/x86_64/RPMS/kmod-rr174x-2.4-2.el5.elrepo.x86_64.rpm
elrepo/el5/x86_64/RPMS/kmod-rr174x-xen-2.4-2.el5.elrepo.x86_64.rpm
elrepo/el6/i386/RPMS/kmod-rr174x-2.4-1.el6.elrepo.i686.rpm
elrepo/el6/SRPMS/rr174x-kmod-2.4-1.el6.elrepo.src.rpm
elrepo/el6/x86_64/RPMS/kmod-rr174x-2.4-1.el6.elrepo.x86_64.rpm

Original request made by Leon Fauster on the ELRepo Users' mailing list [1].

[1] http://lists.elrepo.org/pipermail/elrepo/2014-December/002452.html
TagsNo tags attached.
Attached Files
RR64xl-Linux-Src-v1.3-130325-0207.patch (6,984 bytes)   
# Adaptation from 
# http://www.highpoint-tech.com/BIOS_Driver/RR64xL/Linux/RR64xl-Linux-Src-v1.3-130325-0207.tar.gz
# --
# LF

--- inc/linux/Makefile.def.org	2009-10-09 08:34:40.000000000 +0200
+++ inc/linux/Makefile.def	2014-12-25 12:38:34.000000000 +0100
@@ -74,19 +74,30 @@
 KERNELDIR := /lib/modules/$(shell uname -r)/build
 endif
 
-KERNEL_VER := 2.$(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\  -f3` / 256 % 256)
+VERSION_H := $(shell sh -c " \
+if test -f $(KERNELDIR)/include/linux/version.h; then \
+    echo $(KERNELDIR)/include/linux/version.h; \
+elif test -f $(KERNELDIR)/include/generated/uapi/linux/version.h; then \
+    echo $(KERNELDIR)/include/generated/uapi/linux/version.h; \
+fi")
+
+MAJOR := $(shell expr `grep LINUX_VERSION_CODE $(VERSION_H) | cut -d\  -f3` / 65536 % 65536)
+MINOR := $(shell expr `grep LINUX_VERSION_CODE $(VERSION_H) | cut -d\  -f3` / 256 % 256)
+KERNEL_VER := $(MAJOR).$(MINOR)
 
 ifeq ($(KERNEL_VER),)
 $(error Cannot find kernel version. Check $(KERNELDIR)/include/linux/version.h.)
 endif
 
+ifneq ($(MAJOR), 3)
 ifneq ($(KERNEL_VER), 2.6)
 ifneq ($(KERNEL_VER), 2.4)
-$(error Only kernel 2.4/2.6 is supported but you use $(KERNEL_VER))
+$(error Only kernel 2.4/2.6/3.x is supported but you use $(KERNEL_VER))
+endif
 endif
 endif
 
-ifeq ($(KERNEL_VER), 2.6)
+ifneq ($(KERNEL_VER), 2.4)
 
 TARGET := $(TARGETNAME).ko
 
--- osm/linux/osm_linux.h.org	2009-10-09 08:34:41.000000000 +0200
+++ osm/linux/osm_linux.h	2013-03-24 19:07:35.000000000 +0100
@@ -1,4 +1,4 @@
-/* $Id: osm_linux.h,v 1.25 2009/07/16 01:15:17 zsf Exp $
+/* $Id: osm_linux.h,v 1.26r 2010/05/11 03:09:27 lcn Exp $
  *
  * HighPoint RAID Driver for Linux
  * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved.
@@ -6,13 +6,15 @@
 #ifndef _OSM_LINUX_H
 #define _OSM_LINUX_H
 
+#include <linux/version.h>
+
 /* system headers */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)
 #ifndef AUTOCONF_INCLUDED
 #include <linux/config.h>
 #endif
-
-#include <linux/version.h>
+#endif
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)) && defined(MODVERSIONS)
 #include <linux/modversions.h>
--- osm/linux/os_linux.c.org	2009-10-09 08:34:41.000000000 +0200
+++ osm/linux/os_linux.c	2014-12-25 12:50:09.000000000 +0100
@@ -1,4 +1,4 @@
-/* $Id: os_linux.c,v 1.33 2009/02/18 01:26:29 zsf Exp $
+/* $Id: os_linux.c,v 1.36r 2010/06/01 01:42:36 lcn Exp $
  *
  * HighPoint RAID Driver for Linux
  * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved.
@@ -78,7 +78,7 @@
 		microseconds -= 1000;
 	}
 	udelay(microseconds);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) && defined(__x86_64__)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) && defined(__x86_64__)) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18))
 	touch_nmi_watchdog();
 #endif
 }
@@ -191,6 +191,11 @@
 	list->head = p;
 }
 
+BUS_ADDRESS get_dmapool_phy_addr(void *osext, void * dmapool_virt_addr)
+{
+	return (BUS_ADDRESS)virt_to_bus(dmapool_virt_addr);
+}
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,18)) && defined(CONFIG_HIGHMEM)
 void *os_kmap_sgptr(PSG psg)
 {
@@ -198,7 +203,11 @@
 
 	if (page)
 		return (PageHighMem(page)?
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+				(char *)kmap_atomic(page) :
+#else 
 				(char *)kmap_atomic(page, HPT_KMAP_TYPE) :
+#endif
 				(char *)page_address(page))
 			+ (psg->addr.bus & 0xffffffff);
 	else
@@ -208,7 +217,11 @@
 void os_kunmap_sgptr(void *ptr)
 {
 	if ((HPT_UPTR)ptr >= (HPT_UPTR)high_memory)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+		kunmap_atomic(ptr);
+#else 
 		kunmap_atomic(ptr, HPT_KMAP_TYPE);
+#endif
 }
 #else 
 void *os_kmap_sgptr(PSG psg) { return psg->addr._logical; }
@@ -259,7 +272,9 @@
 				for (minor=0; minor<=240; minor+=16) {
 					struct block_device *bdev = bdget(MKDEV(major[i], minor));
 					if (bdev &&
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
+						blkdev_get(bdev, FMODE_READ,NULL)
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
 						blkdev_get(bdev, FMODE_READ)
 #else 
 						blkdev_get(bdev, FMODE_READ, 0 __BDEV_RAW)
@@ -586,7 +601,7 @@
 #endif
 }
 
-int hpt_dbg_level = 1;
+int hpt_dbg_level = 7;
 #if defined(MODULE)
 #if LINUX_VERSION_CODE >KERNEL_VERSION(2, 5, 0)
 module_param(hpt_dbg_level, uint, 0);
--- osm/linux/osm_linux.c.org	2009-10-09 08:34:41.000000000 +0200
+++ osm/linux/osm_linux.c	2013-03-24 19:07:35.000000000 +0100
@@ -1,4 +1,4 @@
-/* $Id: osm_linux.c,v 1.80 2009/04/07 03:18:03 zsf Exp $
+/* $Id: osm_linux.c,v 1.83r 2010/05/11 03:09:27 lcn Exp $
  *
  * HighPoint RAID Driver for Linux
  * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved.
@@ -9,7 +9,7 @@
 MODULE_AUTHOR ("HighPoint Technologies, Inc.");
 MODULE_DESCRIPTION ("RAID driver");
 
-static int autorebuild = 0;
+static int autorebuild = 1; /* 1: autorebuild, 0: not */
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
 module_param(autorebuild, int, 0);
 #else 
@@ -447,7 +449,11 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
 	struct scatterlist *sg;
 	sg = scsi_sglist(cmd);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+	*pbuf = kmap_atomic(HPT_SG_PAGE(sg)) + sg->offset;
+#else 
 	*pbuf = kmap_atomic(HPT_SG_PAGE(sg), HPT_KMAP_TYPE) + sg->offset;
+#endif
 	buflen = sg->length;
 #else 
 
@@ -477,7 +483,11 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
 	struct scatterlist *sg;
 	sg = scsi_sglist(cmd);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+	kunmap_atomic((char *)buf - sg->offset);
+#else 
 	kunmap_atomic((char *)buf - sg->offset, HPT_KMAP_TYPE);
+#endif
 #else 
 
 	if (cmd->use_sg) {
@@ -870,12 +880,15 @@
 		}
 
 		ldm_free_cmds(pCmd);
-		KdPrint(("scsi_done(%p)", SCpnt));
+		KdPrint(("<8>scsi_done(%p)", SCpnt));
 		SCpnt->scsi_done(SCpnt);
 	}
 }
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
 static int hpt_queuecommand (Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
+#else 
+static int hpt_queuecommand_lck (Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
+#endif
 {
 	struct Scsi_Host *phost = sc_host(SCpnt);
 	PVBUS_EXT vbus_ext = get_vbus_ext(phost);
@@ -905,7 +918,7 @@
 	pVDev = ldm_find_target(vbus, sc_target(SCpnt));
 
 	if (pVDev == NULL || pVDev->vf_online == 0) {
-		SCpnt->result = DID_NO_CONNECT;
+		SCpnt->result = (DID_NO_CONNECT << 16);
 		goto cmd_done;
 	}
 
@@ -1404,11 +1417,15 @@
 		break;
 	}
 cmd_done:
-	KdPrint(("scsi_done(%p)", SCpnt));
+	KdPrint(("<8>scsi_done(%p)", SCpnt));
 	SCpnt->scsi_done(SCpnt);
 	return 0;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
+static DEF_SCSI_QCMD(hpt_queuecommand)
+#endif
+
 static int hpt_reset (Scsi_Cmnd *SCpnt)
 {
 	PVBUS_EXT vbus_ext = get_vbus_ext(sc_host(SCpnt));
@@ -1822,6 +1839,7 @@
 	HPT_U16 copydata = 0;
 	IOCTL_ARG ioctl_arg;
 	IDE_PASS_THROUGH_HEADER ide_passthrough_header;
+	PIDENTIFY_DATA pIdentify;
 
 	memset(&ioctl_arg, 0, sizeof(ioctl_arg));
 	memset(&ide_passthrough_header, 0, sizeof(ide_passthrough_header));
Reported upstream

Activities

burakkucat

2014-12-22 10:34

administrator   ~0004121

Unfortunately the source code does not build against any kernel > 2.6.x

[Build64R7 SPECS]$ rpmbuild -bc rr174x-kmod.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.c3YUqf
+ umask 022
+ cd /home/ajb/rpmbuild/BUILD
+ cd /home/ajb/rpmbuild/BUILD
+ rm -rf rr174x-linux-src-v2.4
+ /usr/bin/gzip -dc /home/ajb/rpmbuild/SOURCES/rr174x-linux-src-v2.4-091009-1434.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd rr174x-linux-src-v2.4
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/bin/cp -a /home/ajb/rpmbuild/SOURCES/ELRepo-rr174x-modules rr174x.modules
+ echo 'override rr174x * weak-updates/rr174x'
+ echo 'blacklist sata_mv'
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.MFocDO
+ umask 022
+ cd /home/ajb/rpmbuild/BUILD
+ cd rr174x-linux-src-v2.4
+ KSRC=/usr/src/kernels/3.10.0-123.el7.x86_64
+ pushd product/rr1740pm/linux
+ /usr/bin/make KERNELDIR=/usr/src/kernels/3.10.0-123.el7.x86_64 -j2
grep: /usr/src/kernels/3.10.0-123.el7.x86_64/include/linux/version.h: No such file or directory
expr: syntax error
../../../inc/linux/Makefile.def:85: *** Only kernel 2.4/2.6 is supported but you use 2.. Stop.
error: Bad exit status from /var/tmp/rpm-tmp.MFocDO (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.MFocDO (%build)
[Build64R7 SPECS]$

burakkucat

2014-12-25 06:50

administrator   ~0004125

Attached patch file (RR64xl-Linux-Src-v1.3-130325-0207.patch) offered by Leon Fauster.

Issue History

Date Modified Username Field Change
2014-12-21 16:51 burakkucat New Issue
2014-12-21 16:51 burakkucat Status new => assigned
2014-12-21 16:51 burakkucat Assigned To => toracat
2014-12-21 16:52 burakkucat Assigned To toracat => burakkucat
2014-12-22 10:34 burakkucat Note Added: 0004121
2014-12-25 06:48 burakkucat File Added: RR64xl-Linux-Src-v1.3-130325-0207.patch
2014-12-25 06:50 burakkucat Note Added: 0004125
2017-01-10 16:52 burakkucat Severity minor => feature
2017-01-10 16:52 burakkucat Status assigned => closed
2017-01-10 16:52 burakkucat Resolution open => not fixable