From: Jan RÄ™korajski Date: Sat, 27 Oct 2018 12:13:37 +0000 (+0200) Subject: - up to 3.0.33 X-Git-Tag: auto/th/lin_tape-3.0.33-1~1 X-Git-Url: https://git.pld-linux.org/?p=packages%2Flin_tape.git;a=commitdiff_plain;h=6510709 - up to 3.0.33 --- diff --git a/clean-ifdefs.patch b/clean-ifdefs.patch index 12db4e9..26763df 100644 --- a/clean-ifdefs.patch +++ b/clean-ifdefs.patch @@ -1,7 +1,7 @@ diff -ur lin_tape-3.0.18/Makefile lin_tape-3.0.18-ifdefs/Makefile --- lin_tape-3.0.18/Makefile 2017-05-09 21:11:32.977092391 +0200 +++ lin_tape-3.0.18-ifdefs/Makefile 2017-05-09 21:05:59.610307494 +0200 -@@ -20,15 +20,6 @@ +@@ -20,27 +20,6 @@ lin_tape-objs := join.o lin_tape_scsi_config.o lin_tape_scsi_tape.o lin_tape_scsi_trace.o \ lin_tape_ioctl_tape.o lin_tape_ioctl_changer.o lin_tape_extra_ioctl.o @@ -11,7 +11,19 @@ diff -ur lin_tape-3.0.18/Makefile lin_tape-3.0.18-ifdefs/Makefile -KERNELVER = $(shell uname -r 2>/dev/null|sed "s/[\.-]/_/g"|sed "s/\([0-9]*_[0-9]*_[0-9]*_[0-9]*\).*/\1/") -EXTRA_CFLAGS += -DKERNELVERSION_${KERNELVER} -else +-UBUNTURELEASE := $(shell [ -f "/etc/os-release" ] && grep -qi Ubuntu /etc/os-release && echo 1 || echo 0) +-ifeq ($(UBUNTURELEASE), 1) +-EXTRA_CFLAGS += -DUBUNTUVERSION +-else -EXTRA_CFLAGS += -DSLESVERSION +-KERNELDIR ?= /lib/modules/$(shell uname -r)/build +-KERNELVER = $(shell uname -r 2>/dev/null|sed "s/[\.-]/_/g"|sed "s/\([0-9]*_[0-9]*_[0-9]*_[0-9]*\).*/\1/") +-EXTRA_CFLAGS += -DSLESKERNEL_${KERNELVER} +-SLESSP2 := $(shell grep -qi SP2 /etc/*release && echo 1 || echo 0) +-ifeq ($(SLESSP2), 1) +-EXTRA_CFLAGS += -DSLESSP2 +-endif +-endif -endif - ifeq ($(SFMP), 1) @@ -162,112 +174,3 @@ diff -ur lin_tape-3.0.18/pfo.h lin_tape-3.0.18-ifdefs/pfo.h /* Misc defines needed so source is same for all versions of Linux */ #ifndef SDEV_TRANSPORT_OFFLINE -diff -ur lin_tape-3.0.18/sgmp.c lin_tape-3.0.18-ifdefs/sgmp.c ---- lin_tape-3.0.18/sgmp.c 2017-02-23 19:14:41.000000000 +0100 -+++ lin_tape-3.0.18-ifdefs/sgmp.c 2017-05-09 21:10:20.295643954 +0200 -@@ -262,27 +262,12 @@ - { - struct sg_fd *sfp = (struct sg_fd *)filp->private_data; - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) && (!defined(SLESVERSION)) -- /* RHEL 7.0 and beyond */ - struct request_queue *q = sfp->parentdp->device->request_queue; --#else --#ifdef AFTER_RH_63 -- /* RHEL 6.4+ */ -- struct request_queue *q = sfp->parentdp->device->request_queue; --#endif --#endif - - if (sfp->parentdp->device->type == TYPE_SCANNER) - return 0; - --#if LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) || defined(SLESVERSION) - return blk_verify_command(cmd, filp->f_mode & FMODE_WRITE); --#else -- /* RHEL 6.4 and beyond */ -- return blk_verify_command(q, cmd, filp->f_mode & FMODE_WRITE); --#endif --//6.3 blk_verify_command(cmd, filp->f_mode & FMODE_WRITE); -- - } - - #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32) -@@ -419,7 +404,7 @@ - #endif - sdp->sgdebug = 0; - q = sdp->device->request_queue; --#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32) && (defined(SLESVERSION)) -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32) - sdp->sg_tablesize = min(queue_max_hw_segments(q), - queue_max_phys_segments(q)); - #else -@@ -1546,7 +1531,7 @@ - if ((sdp->sgdebug > 0) && - ((CHECK_CONDITION == srp->header.masked_status) || - (COMMAND_TERMINATED == srp->header.masked_status))) --#if defined(AFTER_RH_71) || LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) - __scsi_print_sense(sdp->device, "sg_cmd_done", sense, SCSI_SENSE_BUFFERSIZE); - - #else -@@ -1677,7 +1662,7 @@ - INIT_LIST_HEAD(&sdp->sfds); - init_waitqueue_head(&sdp->o_excl_wait); - --#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32) && (defined(SLESVERSION)) -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32) - sdp->sg_tablesize = min(queue_max_hw_segments(q), - queue_max_phys_segments(q)); - #else -@@ -3069,7 +3054,7 @@ - scsidp->id, scsidp->lun, (int) scsidp->type, - 1, - (int) scsidp->queue_depth, --#ifdef AFTER_RH_71 -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) - (int) atomic_read(&scsidp->device_busy), - #else - (int) scsidp->device_busy, -diff -ur lin_tape-3.0.18/stmp.c lin_tape-3.0.18-ifdefs/stmp.c ---- lin_tape-3.0.18/stmp.c 2017-02-23 19:14:41.000000000 +0100 -+++ lin_tape-3.0.18-ifdefs/stmp.c 2017-05-09 21:11:01.113125428 +0200 -@@ -454,7 +454,7 @@ - SRpnt->cmd[0], SRpnt->cmd[1], SRpnt->cmd[2], - SRpnt->cmd[3], SRpnt->cmd[4], SRpnt->cmd[5]); - if (cmdstatp->have_sense) --#if defined(AFTER_RH_70) || LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) - __scsi_print_sense(STp->device, name, SRpnt->sense, SCSI_SENSE_BUFFERSIZE); - - #else -@@ -475,7 +475,7 @@ - SRpnt->cmd[0] != MODE_SENSE && - SRpnt->cmd[0] != TEST_UNIT_READY) { - --#if defined(AFTER_RH_71) || LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) - __scsi_print_sense(STp->device, name, SRpnt->sense, SCSI_SENSE_BUFFERSIZE); - - #else -diff -ur lin_tape-3.0.18/upper.c lin_tape-3.0.18-ifdefs/upper.c ---- lin_tape-3.0.18/upper.c 2017-02-23 19:14:41.000000000 +0100 -+++ lin_tape-3.0.18-ifdefs/upper.c 2017-05-09 21:09:37.868126006 +0200 -@@ -267,7 +267,7 @@ - if (copy_from_user(pfo_cmd->scsi_cmd, hdr->cmdp, hdr->cmd_len)) - return -EFAULT; - --#if LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) || defined(SLESVERSION) -+#if LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) - if (blk_verify_command(pfo_cmd->scsi_cmd, mode & FMODE_WRITE)) - #else - /* RHEL 6.4 and beyond */ -@@ -608,7 +608,7 @@ - if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len)) - goto error; - --#if LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) || defined(SLESVERSION) -+#if LINUX_VERSION_CODE > KERNEL_VERSION(3,12,0) - err = blk_verify_command(scsi_cmd, mode & FMODE_WRITE); - #else - /* RHEL 6.4 and beyond */ diff --git a/lin_tape.spec b/lin_tape.spec index 2c13a8b..00a9b46 100644 --- a/lin_tape.spec +++ b/lin_tape.spec @@ -5,27 +5,27 @@ # nothing to be placed to debuginfo package %define _enable_debug_packages 0 -%define rel 2 +%define rel 1 %define pname lin_tape Summary: IBM Tape SCSI Device Driver for Linux Name: %{pname}%{_alt_kernel} -Version: 3.0.23 +Version: 3.0.33 Release: %{rel}%{?_pld_builder:@%{_kernel_ver_str}} License: GPL v2/LGPL Group: Base/Kernel Source0: %{pname}-%{version}.tgz -# Source0-md5: 38edd3855f4205250cb725df6a8ef2a3 +# Source0-md5: c22358f485f12baa7254aa25abe20a43 Source1: %{pname}.fixlist Patch0: use-module-dir.patch Patch1: clean-ifdefs.patch Patch2: linux-4.9.patch -Patch3: linux-4.10.patch Patch4: linux-4.11.patch Patch5: linux-4.12.patch Patch6: linux-4.13.patch Patch7: kernel-4.14.patch Patch8: kernel-4.15.patch Patch9: kernel-4.17.patch +Patch10: kernel-4.19.patch # System Storage, Tape systems, Tape drivers and software, Tape device drivers (Linux) URL: http://www.ibm.com/support/fixcentral/ BuildRequires: rpmbuild(macros) >= 1.701 @@ -76,13 +76,13 @@ compatible platforms.\ %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 install -p %{SOURCE1} . diff --git a/linux-4.10.patch b/linux-4.10.patch deleted file mode 100644 index a6f123e..0000000 --- a/linux-4.10.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff -ur lin_tape-3.0.23/lin_tape_ioctl_tape.c lin_tape-3.0.23-4.10/lin_tape_ioctl_tape.c ---- lin_tape-3.0.23/lin_tape_ioctl_tape.c 2018-04-08 00:40:34.811170201 +0200 -+++ lin_tape-3.0.23-4.10/lin_tape_ioctl_tape.c 2018-04-08 00:39:08.512197099 +0200 -@@ -6471,7 +6471,7 @@ - - tmp_rq = (void*)sdev->request_queue; - req->cmd_type = REQ_TYPE_BLOCK_PC; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - req->cmd_flags |= REQ_QUIET; - #else - req->cmd_flags |= RQF_QUIET; -diff -ur lin_tape-3.0.23/stmp.c lin_tape-3.0.23-4.10/stmp.c ---- lin_tape-3.0.23/stmp.c 2018-04-08 00:40:34.814503623 +0200 -+++ lin_tape-3.0.23-4.10/stmp.c 2018-04-08 00:39:45.023173000 +0200 -@@ -688,7 +688,7 @@ - #else - req->cmd_type = REQ_TYPE_BLOCK_PC; - #endif --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - req->cmd_flags |= REQ_QUIET; - #else - req->cmd_flags |= RQF_QUIET; -diff -ur lin_tape-3.0.23/upper.c lin_tape-3.0.23-4.10/upper.c ---- lin_tape-3.0.23/upper.c 2018-04-08 00:40:34.814503623 +0200 -+++ lin_tape-3.0.23-4.10/upper.c 2018-04-08 00:40:20.187446091 +0200 -@@ -89,7 +89,7 @@ - pfo_cmd.timeout = timeout; - pfo_cmd.retries = retries; - pfo_cmd.iov_count = 0; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = flags | REQ_QUIET; - #else - pfo_cmd.flags = flags | RQF_QUIET; -@@ -352,7 +352,7 @@ - pfo_cmd.cmd_len = hdr->cmd_len; - pfo_cmd.buffer = NULL; - pfo_cmd.bufflen = 0; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = REQ_QUIET; - #else - pfo_cmd.flags = RQF_QUIET; -@@ -488,7 +488,7 @@ - pfo_cmd.cmd_len = hdr->cmd_len; - pfo_cmd.buffer = NULL; - pfo_cmd.bufflen = 0; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = REQ_QUIET; - #else - pfo_cmd.flags = RQF_QUIET; -@@ -691,7 +691,7 @@ - pfo_cmd.timeout = timeout; - pfo_cmd.retries = retries; - pfo_cmd.iov_count = 0; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = REQ_QUIET; - #else - pfo_cmd.flags = RQF_QUIET; -@@ -952,7 +952,7 @@ - pfo_cmd.buffer = buffer; - pfo_cmd.bufflen = bufflen; - pfo_cmd.retries = retries; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = REQ_QUIET; - #else - pfo_cmd.flags = RQF_QUIET; -@@ -995,7 +995,7 @@ - pfo_cmd.buffer = buffer; - pfo_cmd.bufflen = bufflen; - pfo_cmd.retries = retries; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,73) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) - pfo_cmd.flags = REQ_QUIET; - #else - pfo_cmd.flags = RQF_QUIET; diff --git a/linux-4.11.patch b/linux-4.11.patch index d3639d5..71fb6d0 100644 --- a/linux-4.11.patch +++ b/linux-4.11.patch @@ -36,10 +36,10 @@ diff -ur lin_tape-3.0.18/lin_tape_ioctl_tape.c lin_tape-3.0.18-4.11/lin_tape_ioc +#else req->cmd_type = REQ_TYPE_BLOCK_PC; +#endif - #if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) + #ifdef REQ_QUIET req->cmd_flags |= REQ_QUIET; #else -@@ -6536,17 +6540,29 @@ +@@ -6536,15 +6540,27 @@ bio = req->bio; } /* if */ @@ -58,9 +58,7 @@ diff -ur lin_tape-3.0.18/lin_tape_ioctl_tape.c lin_tape-3.0.18-4.11/lin_tape_ioc +#endif req->timeout = timeout; req->retries = 0; - blk_execute_rq(req->q, NULL, req, 1); - +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0) + *resid = scsi_req(req)->resid_len; +#else diff --git a/linux-4.12.patch b/linux-4.12.patch index 7699c7b..14ae055 100644 --- a/linux-4.12.patch +++ b/linux-4.12.patch @@ -9,9 +9,9 @@ +#else req->retries = 0; +#endif - blk_execute_rq(req->q, NULL, req, 1); - + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0) + *resid = scsi_req(req)->resid_len; @@ -6563,7 +6567,11 @@ #else *resid = req->resid_len; diff --git a/linux-4.9.patch b/linux-4.9.patch index d35ff3b..c713a0f 100644 --- a/linux-4.9.patch +++ b/linux-4.9.patch @@ -1,12 +1,15 @@ --- lin_tape-3.0.18/lin_tape_scsi_tape.c~ 2017-02-23 19:14:41.000000000 +0100 +++ lin_tape-3.0.18/lin_tape_scsi_tape.c 2017-05-09 21:28:19.916320963 +0200 -@@ -11838,10 +11838,9 @@ +@@ -11838,13 +11838,9 @@ down_read(¤t->mm->mmap_sem); - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,73) -- mapped_pages = get_user_pages_unlocked((unsigned long)user_location, number_pages, -- pages, rw); + #if !defined (UBUNTUVERSION) +-#if LINUX_VERSION_CODE == KERNEL_VERSION(4,4,73) \ +- || (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,92) && LINUX_VERSION_CODE < KERNEL_VERSION(4,4,103)) \ +- || defined(SLESKERNEL_4_4_103_6) \ +- || (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,114) && LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) && !defined(SLESSP2)) +- mapped_pages = get_user_pages((unsigned long)user_location, number_pages, +- rw, pages, NULL); - +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0) + mapped_pages = get_user_pages((ulong)user_location, number_pages, @@ -14,24 +17,21 @@ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) mapped_pages = get_user_pages((ulong)user_location, number_pages, rw, 0, pages, NULL); ---- lin_tape-3.0.18/stmp.c~ 2017-05-09 21:25:12.000000000 +0200 -+++ lin_tape-3.0.18/stmp.c 2017-05-09 21:29:19.121101188 +0200 -@@ -5205,11 +5205,13 @@ - if ((pages = kmalloc(max_pages * sizeof(*pages), GFP_KERNEL)) == NULL) - return -ENOMEM; +--- lin_tape-3.0.33/stmp.c~ 2018-06-01 20:01:49.000000000 +0200 ++++ lin_tape-3.0.33/stmp.c 2018-10-27 11:39:03.873330720 +0200 +@@ -5061,12 +5061,13 @@ --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,73) -- res = get_user_pages_unlocked(uaddr, nr_pages, -- pages, -- rw == READ ? FOLL_WRITE : 0); /* don't force */ -- + /* Try to fault in all of the necessary pages */ + /* rw==READ means read from drive, write into memory area */ +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,114) && LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) && !defined(SLESSP2)) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0) -+ res = get_user_pages_unlocked( -+ uaddr, -+ nr_pages, + res = get_user_pages_unlocked( + uaddr, + nr_pages, + rw == READ ? FOLL_WRITE : 0, -+ pages, + pages, +- rw == READ ? FOLL_WRITE : 0); /* don't force */ + NULL); + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,21) - /* Try to fault in all of the necessary pages */ - /* rw==READ means read from drive, write into memory area */ + res = get_user_pages_unlocked(