summarylogtreecommitdiffstats
path: root/linux_4.patch
blob: 1040d86f3ad5a33d4e1b8bd893e3dcd69d9e08df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
diff -aur rr62x-linux-src-v1.2.orig/inc/linux/Makefile.def rr62x-linux-src-v1.2/inc/linux/Makefile.def
--- rr62x-linux-src-v1.2.orig/inc/linux/Makefile.def	2012-05-28 12:13:49.000000000 +0300
+++ rr62x-linux-src-v1.2/inc/linux/Makefile.def	2015-05-17 16:07:11.076666668 +0300
@@ -74,18 +74,26 @@
 KERNELDIR := /lib/modules/$(shell uname -r)/build
 endif
 
-MAJOR := $(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\  -f3` / 65536 % 65536)
-MINOR := $(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\  -f3` / 256 % 256)
-KERNEL_VER := $(MAJOR).$(MINOR)
+ifneq (,$(wildcard $(KERNELDIR)/include/linux/version.h))
+  MAJOR := $(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\  -f3` / 65536 % 65536)
+  MINOR := $(shell expr `grep LINUX_VERSION_CODE $(KERNELDIR)/include/linux/version.h | cut -d\  -f3` / 256 % 256)
+  KERNEL_VER := $(MAJOR).$(MINOR)
+else
+  KERNEL_VER := $(shell cd $(KERNELDIR) ; make kernelversion | cut -d. -f1,2)
+  MAJOR := $(firstword $(subst ., ,$(KERNEL_VER)))
+  MINOR := $(word 2,$(subst ., ,$(KERNEL_VER)))
+endif
 
 ifeq ($(KERNEL_VER),)
 $(error Cannot find kernel version. Check $(KERNELDIR)/include/linux/version.h.)
 endif
 
+ifneq ($(MAJOR), 4)
 ifneq ($(MAJOR), 3)
 ifneq ($(KERNEL_VER), 2.6)
 ifneq ($(KERNEL_VER), 2.4)
-$(error Only kernel 2.4/2.6/3.x is supported but you use $(KERNEL_VER))
+$(error Only kernel 2.4/2.6/3.x/4.x is supported but you use $(KERNEL_VER))
+endif
 endif
 endif
 endif
diff -aur rr62x-linux-src-v1.2.orig/osm/linux/osm_linux.c rr62x-linux-src-v1.2/osm/linux/osm_linux.c
--- rr62x-linux-src-v1.2.orig/osm/linux/osm_linux.c	2012-06-01 08:55:36.000000000 +0300
+++ rr62x-linux-src-v1.2/osm/linux/osm_linux.c	2015-05-17 17:46:14.696666665 +0300
@@ -449,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(2,6,37)
+	*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 
 
@@ -479,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(2,6,37)
+	kunmap_atomic((char *)buf - sg->offset);
+#else 
 	kunmap_atomic((char *)buf - sg->offset, HPT_KMAP_TYPE);
+#endif
 #else 
 
 	if (cmd->use_sg) {
@@ -1706,6 +1714,7 @@
 	}
 }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
 static int hpt_proc_set_info(struct Scsi_Host *host, char *buffer, int length)
 {
 	IOCTL_ARG ioctl_args;
@@ -1808,6 +1817,7 @@
 	else
 		return hpt_proc_get_info(host, buffer, start, offset, length);
 }
+#endif
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 static int hpt_proc_info24(char *buffer,char **start, off_t offset,
@@ -2108,7 +2118,9 @@
 	#endif
 #else /* 2.6.x */
 	proc_name:               driver_name,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
 	proc_info:               hpt_proc_info26,
+#endif
 	max_sectors:             128,
 #endif
 	this_id:                 -1
diff -aur rr62x-linux-src-v1.2.orig/osm/linux/osm_linux.h rr62x-linux-src-v1.2/osm/linux/osm_linux.h
--- rr62x-linux-src-v1.2.orig/osm/linux/osm_linux.h	2012-06-01 08:55:36.000000000 +0300
+++ rr62x-linux-src-v1.2/osm/linux/osm_linux.h	2015-05-17 17:00:33.123333336 +0300
@@ -176,7 +176,9 @@
 #endif
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
 #define HPT_KMAP_TYPE KM_BIO_SRC_IRQ
+#endif
 #define HPT_FIND_PCI_DEVICE pci_get_device
 #else 
 #define HPT_KMAP_TYPE KM_BH_IRQ
Only in rr62x-linux-src-v1.2/product/rr62x/linux: .build
diff -aur rr62x-linux-src-v1.2.orig/product/rr62x/linux/config.c rr62x-linux-src-v1.2/product/rr62x/linux/config.c
--- rr62x-linux-src-v1.2.orig/product/rr62x/linux/config.c	2012-06-01 08:55:35.000000000 +0300
+++ rr62x-linux-src-v1.2/product/rr62x/linux/config.c	2015-05-17 17:43:47.623333322 +0300
@@ -23,7 +23,7 @@
 
 char driver_name[] = "rr62x";
 char driver_name_long[] = "RocketRAID 62x SATA controller driver";
-char driver_ver[] = "v1.2 (" __DATE__ " " __TIME__ ")";
+char driver_ver[] = "v1.2 (Jul 1 2012)";
 int  osm_max_targets = 32;
 
 int os_max_cache_size = 0x800000;
Only in rr62x-linux-src-v1.2/product/rr62x/linux: rr62x.ko