]> git.pld-linux.org Git - packages/lin_tape.git/blame - linux-4.0.patch
- fix building with linux 4.10
[packages/lin_tape.git] / linux-4.0.patch
CommitLineData
6986ddb6
JR
1diff -ur lin_tape-3.0.8.orig/lower.c lin_tape-3.0.8/lower.c
2--- lin_tape-3.0.8.orig/lower.c 2016-03-15 23:39:12.000000000 +0100
3+++ lin_tape-3.0.8/lower.c 2016-06-19 13:16:12.828653141 +0200
4@@ -471,6 +471,21 @@
5 } else if (pfo_cmd->source == PFO_SOURCE_SG ||
6 pfo_cmd->source == PFO_SOURCE_IOCTL) {
7 if (pfo_cmd->iov_count) {
8+#if LINUX_VERSION_CODE > KERNEL_VERSION(3,19,0)
9+ struct iovec *iov = NULL;
10+ struct iov_iter i;
11+ err = import_iovec(write, pfo_cmd->buffer, pfo_cmd->iov_count, 0, &iov, &i);
12+ if (err < 0)
13+ return err;
14+ iov_iter_truncate(&i, pfo_cmd->bufflen);
15+
16+ err = blk_rq_map_user_iov(sdev->request_queue,
17+ rq,
18+ pfo_cmd->mdata,
19+ &i,
20+ GFP_ATOMIC);
21+ kfree(iov);
22+#else
23 err = blk_rq_map_user_iov(sdev->request_queue,
24 rq,
25 pfo_cmd->mdata,
26@@ -478,6 +493,7 @@
27 pfo_cmd->iov_count,
28 pfo_cmd->bufflen,
29 GFP_KERNEL);
30+#endif
31 } else {
32 err = blk_rq_map_user(sdev->request_queue,
33 rq,
34diff -ur lin_tape-3.0.8.orig/sgmp.c lin_tape-3.0.8/sgmp.c
35--- lin_tape-3.0.8.orig/sgmp.c 2016-06-19 13:15:52.000000000 +0200
36+++ lin_tape-3.0.8/sgmp.c 2016-06-19 13:16:12.828653141 +0200
c4a7d1f4
JR
37@@ -77,6 +77,7 @@
38 #else
39 #include <linux/smp_lock.h>
40 #endif
41+#include <linux/uio.h>
42
43 #include "scsi.h"
44 #include <scsi/scsi_dbg.h>
6986ddb6
JR
45@@ -2029,7 +2029,12 @@
46 }
47
48 if (iov_count) {
49+#if LINUX_VERSION_CODE > KERNEL_VERSION(3,19,0)
50+ int size = sizeof(struct iovec) * iov_count;
51+ struct iov_iter i;
52+#else
53 int len, size = sizeof(struct sg_iovec) * iov_count;
54+#endif
55 struct iovec *iov;
56 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)
57 iov = memdup_user(hp->dxferp, size);
58@@ -2046,6 +2051,13 @@
59 }
60 #endif
61
62+#if LINUX_VERSION_CODE > KERNEL_VERSION(3,19,0)
63+ iov_iter_init(&i, rw, iov, iov_count,
64+ min_t(size_t, hp->dxfer_len,
65+ iov_length(iov, iov_count)));
66+
67+ res = blk_rq_map_user_iov(q, rq, md, &i, GFP_ATOMIC);
68+#else
69 len = iov_length(iov, iov_count);
70 if (hp->dxfer_len < len) {
71 iov_count = iov_shorten(iov, iov_count, hp->dxfer_len);
72@@ -2055,6 +2067,7 @@
73 res = blk_rq_map_user_iov(q, rq, md, (struct sg_iovec *)iov,
74 iov_count,
75 len, GFP_ATOMIC);
76+#endif
77 kfree(iov);
78 } else
79 res = blk_rq_map_user(q, rq, md, hp->dxferp,
This page took 0.029672 seconds and 4 git commands to generate.