Home Home > GIT Browse > stable
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2017-08-03 16:49:17 +0200
committerOliver Neukum <oneukum@suse.de>2017-08-03 16:49:17 +0200
commit4dc78e3d5852c80a933f07a773ad6b21a1adde21 (patch)
treef7a22df97ebcb00e6c6527baee15905f6b7cd225
parenta3cc77db48a672fbde5b538709aaa9eb1990d34a (diff)
parent3a9b5978706fbb0de94bb9d404a4a341244de52c (diff)
Merge branch 'SLE12-SP3' into openSUSE-42.3rpm-4.4.79-4
-rw-r--r--patches.drivers/scsi_transport_fc-do-not-call-queue_work-under-lock.patch96
-rw-r--r--patches.drivers/scsi_transport_fc-fixup-race-condition-in-fc_rport_f.patch104
-rw-r--r--patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch54
-rw-r--r--patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch52
-rw-r--r--patches.fixes/dentry-name-snapshots.patch2
-rw-r--r--patches.fixes/scsi-Add-STARGET_CREATE_REMOVE-state-to-scsi_target.patch137
-rw-r--r--patches.kabi/scsi-kABI-fix-for-new-state-STARGET_CREATED_REMOVE.patch33
-rw-r--r--patches.suse/msft-hv-1140-net-use-core-MTU-range-checking-in-virt-drivers.patch (renamed from patches.drivers/net-use-core-MTU-range-checking-in-virt-drivers.patch)9
-rw-r--r--patches.suse/msft-hv-1218-netvsc-negotiate-checksum-and-segmentation-parameter.patch4
-rw-r--r--patches.suse/msft-hv-1222-netvsc-allow-more-flexible-setting-of-number-of-chan.patch2
-rw-r--r--patches.suse/msft-hv-1342-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch (renamed from patches.suse/suse-hv-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch)4
-rw-r--r--patches.suse/msft-hv-1343-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch (renamed from patches.suse/suse-hv-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch)6
-rw-r--r--patches.suse/msft-hv-1344-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch (renamed from patches.suse/suse-hv-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch)5
-rw-r--r--patches.suse/msft-hv-1345-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch (renamed from patches.suse/suse-hv-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch)5
-rw-r--r--patches.suse/msft-hv-1346-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch (renamed from patches.suse/suse-hv-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch)7
-rw-r--r--patches.suse/msft-hv-1371-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch (renamed from patches.suse/suse-hv-01-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch)4
-rw-r--r--patches.suse/msft-hv-1372-PCI-hv-Use-page-allocation-for-hbus-structure.patch (renamed from patches.suse/suse-hv-02-PCI-hv-Use-page-allocation-for-hbus-structure.patch)4
-rw-r--r--patches.suse/msft-hv-1373-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch (renamed from patches.suse/suse-hv-03-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch)4
-rw-r--r--patches.suse/msft-hv-1374-PCI-hv-Add-vPCI-version-protocol-negotiation.patch (renamed from patches.suse/suse-hv-04-PCI-hv-Add-vPCI-version-protocol-negotiation.patch)4
-rw-r--r--patches.suse/msft-hv-1375-PCI-hv-Use-vPCI-protocol-version-1.2.patch (renamed from patches.suse/suse-hv-05-PCI-hv-Use-vPCI-protocol-version-1.2.patch)7
-rw-r--r--series.conf30
21 files changed, 327 insertions, 246 deletions
diff --git a/patches.drivers/scsi_transport_fc-do-not-call-queue_work-under-lock.patch b/patches.drivers/scsi_transport_fc-do-not-call-queue_work-under-lock.patch
deleted file mode 100644
index 28a4eadd9a..0000000000
--- a/patches.drivers/scsi_transport_fc-do-not-call-queue_work-under-lock.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From: Hannes Reinecke <hare@suse.de>
-Date: Wed, 29 Mar 2017 13:12:26 +0200
-Subject: scsi_transport_fc: do not call queue_work under lock
-References: bsc#1013887
-Patch-Mainline: Not yet, under validation by customer
-
-Calling queue_work under a spinlock is potentially dangerous,
-as there is a chance that the work item is executed within the same
-context. So if the work function is taking a lock (as this one does)
-we will deadlock.
-
-Signed-off-by: Hannes Reinecke <hare@suse.com>
----
- drivers/scsi/scsi_transport_fc.c | 17 +++++++++++++----
- 1 file changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
-index ddbfbf1..00703f7 100644
---- a/drivers/scsi/scsi_transport_fc.c
-+++ b/drivers/scsi/scsi_transport_fc.c
-@@ -1623,7 +1623,9 @@ store_fc_private_host_tgtid_bind_type(struct device *dev,
- &fc_host_rport_bindings(shost), peers);
- list_del(&rport->peers);
- rport->port_state = FC_PORTSTATE_DELETED;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &rport->rport_delete_work);
-+ spin_lock_irqsave(shost->host_lock, flags);
- }
- spin_unlock_irqrestore(shost->host_lock, flags);
- }
-@@ -2450,7 +2452,9 @@ fc_remove_host(struct Scsi_Host *shost)
- list_for_each_entry_safe(vport, next_vport, &fc_host->vports, peers) {
- list_del(&vport->peers);
- vport->flags |= FC_VPORT_DELETING;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &vport->vport_delete_work);
-+ spin_lock_irqsave(shost->host_lock, flags);
- }
-
- /* Remove any remote ports */
-@@ -2458,14 +2462,18 @@ fc_remove_host(struct Scsi_Host *shost)
- &fc_host->rports, peers) {
- list_del(&rport->peers);
- rport->port_state = FC_PORTSTATE_DELETED;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &rport->rport_delete_work);
-+ spin_lock_irqsave(shost->host_lock, flags);
- }
-
- list_for_each_entry_safe(rport, next_rport,
- &fc_host->rport_bindings, peers) {
- list_del(&rport->peers);
- rport->port_state = FC_PORTSTATE_DELETED;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &rport->rport_delete_work);
-+ spin_lock_irqsave(shost->host_lock, flags);
- }
-
- spin_unlock_irqrestore(shost->host_lock, flags);
-@@ -2515,6 +2523,7 @@ fc_starget_delete(struct work_struct *work)
- {
- struct fc_rport *rport =
- container_of(work, struct fc_rport, stgt_delete_work);
-+ struct Scsi_Host *shost = rport_to_shost(rport);
-
- fc_terminate_rport_io(rport);
- scsi_remove_target(&rport->dev);
-@@ -3164,8 +3173,8 @@ fc_timeout_deleted_rport(struct work_struct *work)
- "blocked FC remote port time out: removing"
- " rport%s\n",
- (rport->scsi_target_id != -1) ? " and starget" : "");
-- fc_queue_work(shost, &rport->rport_delete_work);
- spin_unlock_irqrestore(shost->host_lock, flags);
-+ fc_queue_work(shost, &rport->rport_delete_work);
- return;
- }
-
-@@ -3226,12 +3235,12 @@ fc_timeout_deleted_rport(struct work_struct *work)
- * all attached scsi devices.
- */
- rport->flags |= FC_RPORT_DEVLOSS_CALLBK_DONE;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &rport->stgt_delete_work);
-
- do_callback = 1;
-- }
--
-- spin_unlock_irqrestore(shost->host_lock, flags);
-+ } else
-+ spin_unlock_irqrestore(shost->host_lock, flags);
-
- /*
- * Notify the driver that the rport is now dead. The LLDD will
---
-1.8.5.6
-
diff --git a/patches.drivers/scsi_transport_fc-fixup-race-condition-in-fc_rport_f.patch b/patches.drivers/scsi_transport_fc-fixup-race-condition-in-fc_rport_f.patch
deleted file mode 100644
index 593354904e..0000000000
--- a/patches.drivers/scsi_transport_fc-fixup-race-condition-in-fc_rport_f.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From: Hannes Reinecke <hare@suse.de>
-Date: Wed, 29 Mar 2017 13:14:50 +0200
-Subject: scsi_transport_fc: fixup race condition in fc_rport_final_delete()
-References: bsc#1013887
-Patch-Mainline: Not yet, under validation by customer
-
-When calling fc_rport_final_delete() there is a chance that
-fc_starget_delete() is already running or queue in the workqueue.
-In that case we race against fc_starget_delete, causing a kernel
-oops like
-
- warn_slowpath_fmt+0x4c/0x50
- kernfs_remove_by_name_ns+0x84/0x90
- attribute_container_remove_attrs+0x45/0x70
- attribute_container_class_device_del+0xe/0x20
- transport_remove_classdev+0x4a/0x60
- attribute_container_device_trigger+0xa6/0xb0
- scsi_target_reap_ref_release+0x20/0x40 [scsi_mod]
- scsi_remove_target+0x17c/0x1b0 [scsi_mod]
- process_one_work+0x14e/0x410
- worker_thread+0x116/0x490
- kthread+0xbd/0xe0
-
-Signed-off-by: Hannes Reinecke <hare@suse.com>
----
- drivers/scsi/scsi_transport_fc.c | 20 ++++++++++++++++++--
- include/scsi/scsi_transport_fc.h | 1 +
- 2 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
-index 00703f7..9a45512 100644
---- a/drivers/scsi/scsi_transport_fc.c
-+++ b/drivers/scsi/scsi_transport_fc.c
-@@ -2524,7 +2524,12 @@ fc_starget_delete(struct work_struct *work)
- struct fc_rport *rport =
- container_of(work, struct fc_rport, stgt_delete_work);
- struct Scsi_Host *shost = rport_to_shost(rport);
-+ unsigned long flags;
-
-+ spin_lock_irqsave(shost->host_lock, flags);
-+ rport->flags &= ~FC_RPORT_TGT_DELETE_PENDING;
-+ rport->scsi_target_id = -1;
-+ spin_unlock_irqrestore(shost->host_lock, flags);
- fc_terminate_rport_io(rport);
- scsi_remove_target(&rport->dev);
- }
-@@ -2555,6 +2560,13 @@ fc_rport_final_delete(struct work_struct *work)
- scsi_flush_work(shost);
-
- /*
-+ * if a target delete is pending, flush the SCSI host work_q
-+ * so that we don't race against it.
-+ */
-+ if (rport->flags & FC_RPORT_TGT_DELETE_PENDING)
-+ scsi_flush_work(shost);
-+
-+ /*
- * Cancel any outstanding timers. These should really exist
- * only when rmmod'ing the LLDD and we're asking for
- * immediate termination of the rports
-@@ -2573,8 +2585,10 @@ fc_rport_final_delete(struct work_struct *work)
- spin_unlock_irqrestore(shost->host_lock, flags);
-
- /* Delete SCSI target and sdevs */
-- if (rport->scsi_target_id != -1)
-- fc_starget_delete(&rport->stgt_delete_work);
-+ if (rport->scsi_target_id != -1) {
-+ scsi_remove_target(&rport->dev);
-+ rport->scsi_target_id = -1;
-+ }
-
- /*
- * Notify the driver that the rport is now dead. The LLDD will
-@@ -3149,6 +3163,7 @@ fc_timeout_deleted_rport(struct work_struct *work)
- dev_printk(KERN_ERR, &rport->dev,
- "blocked FC remote port time out: no longer"
- " a FCP target, removing starget\n");
-+ rport->flags |= FC_RPORT_TGT_DELETE_PENDING;
- spin_unlock_irqrestore(shost->host_lock, flags);
- scsi_target_unblock(&rport->dev, SDEV_TRANSPORT_OFFLINE);
- fc_queue_work(shost, &rport->stgt_delete_work);
-@@ -3235,6 +3250,7 @@ fc_timeout_deleted_rport(struct work_struct *work)
- * all attached scsi devices.
- */
- rport->flags |= FC_RPORT_DEVLOSS_CALLBK_DONE;
-+ rport->flags |= FC_RPORT_TGT_DELETE_PENDING;
- spin_unlock_irqrestore(shost->host_lock, flags);
- fc_queue_work(shost, &rport->stgt_delete_work);
-
-diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
-index 784bc2c..8dbcb62 100644
---- a/include/scsi/scsi_transport_fc.h
-+++ b/include/scsi/scsi_transport_fc.h
-@@ -365,6 +365,7 @@ struct fc_rport { /* aka fc_starget_attrs */
- #define FC_RPORT_SCAN_PENDING 0x02
- #define FC_RPORT_FAST_FAIL_TIMEDOUT 0x04
- #define FC_RPORT_DEVLOSS_CALLBK_DONE 0x08
-+#define FC_RPORT_TGT_DELETE_PENDING 0x10
-
- #define dev_to_rport(d) \
- container_of(d, struct fc_rport, dev)
---
-1.8.5.6
-
diff --git a/patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch b/patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch
new file mode 100644
index 0000000000..abba19bcdb
--- /dev/null
+++ b/patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch
@@ -0,0 +1,54 @@
+From: NeilBrown <neilb@suse.com>
+Date: Mon, 24 Jul 2017 13:18:50 +1000
+Subject: [PATCH] NFS: invalidate file size when taking a lock.
+Git-commit: 442ce0499c0535f8972b68fa1fda357357a5c953
+Patch-mainline: v4.13
+References: git-fixes
+
+Prior to commit ca0daa277aca ("NFS: Cache aggressively when file is open
+for writing"), NFS would revalidate, or invalidate, the file size when
+taking a lock. Since that commit it only invalidates the file content.
+
+If the file size is changed on the server while wait for the lock, the
+client will have an incorrect understanding of the file size and could
+corrupt data. This particularly happens when writing beyond the
+(supposed) end of file and can be easily be demonstrated with
+posix_fallocate().
+
+If an application opens an empty file, waits for a write lock, and then
+calls posix_fallocate(), glibc will determine that the underlying
+filesystem doesn't support fallocate (assuming version 4.1 or earlier)
+and will write out a '0' byte at the end of each 4K page in the region
+being fallocated that is after the end of the file.
+NFS will (usually) detect that these writes are beyond EOF and will
+expand them to cover the whole page, and then will merge the pages.
+Consequently, NFS will write out large blocks of zeroes beyond where it
+thought EOF was. If EOF had moved, the pre-existing part of the file
+will be over-written. Locking should have protected against this,
+but it doesn't.
+
+This patch restores the use of nfs_zap_caches() which invalidated the
+cached attributes. When posix_fallocate() asks for the file size, the
+request will go to the server and get a correct answer.
+
+Cc: stable@vger.kernel.org (v4.8+)
+Fixes: ca0daa277aca ("NFS: Cache aggressively when file is open for writing")
+Signed-off-by: NeilBrown <neilb@suse.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Acked-by: NeilBrown <neilb@suse.com>
+
+---
+ fs/nfs/file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/nfs/file.c
++++ b/fs/nfs/file.c
+@@ -817,7 +817,7 @@ do_setlk(struct file *filp, int cmd, str
+ */
+ nfs_sync_mapping(filp->f_mapping);
+ if (!NFS_PROTO(inode)->have_delegation(inode, FMODE_READ))
+- nfs_zap_mapping(inode, filp->f_mapping);
++ nfs_zap_caches(inode);
+ out:
+ return status;
+ }
diff --git a/patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch b/patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch
new file mode 100644
index 0000000000..a5f8daf90d
--- /dev/null
+++ b/patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch
@@ -0,0 +1,52 @@
+From: NeilBrown <neilb@suse.com>
+Date: Mon, 24 Jul 2017 13:18:50 +1000
+Subject: [PATCH] NFS: Optimize fallocate by refreshing mapping when needed.
+Git-commit: 6ba80d4348bd8cce2a0a6bbc21e5e1e760de42a9
+Patch-mainline: v4.13
+References: git-fixes
+
+posix_fallocate() will allocate space in an NFS file by considering
+the last byte of every 4K block. If it is before EOF, it will read
+the byte and if it is zero, a zero is written out. If it is after EOF,
+the zero is unconditionally written.
+
+For the blocks beyond EOF, if NFS believes its cache is valid, it will
+expand these writes to write full pages, and then will merge the pages.
+This results if (typically) 1MB writes. If NFS believes its cache is
+not valid (particularly if NFS_INO_INVALID_DATA or
+NFS_INO_REVAL_PAGECACHE are set - see nfs_write_pageuptodate()), it will
+send the individual 1-byte writes. This results in (typically) 256 times
+as many RPC requests, and can be substantially slower.
+
+Currently nfs_revalidate_mapping() is only used when reading a file or
+mmapping a file, as these are times when the content needs to be
+up-to-date. Writes don't generally need the cache to be up-to-date, but
+writes beyond EOF can benefit, particularly in the posix_fallocate()
+case.
+
+So this patch calls nfs_revalidate_mapping() when writing beyond EOF -
+i.e. when there is a gap between the end of the file and the start of
+the write. If the cache is thought to be out of date (as happens after
+taking a file lock), this will cause a GETATTR, and the two flags
+mentioned above will be cleared. With this, posix_fallocate() on a
+newly locked file does not generate excessive tiny writes.
+
+Signed-off-by: NeilBrown <neilb@suse.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Acked-by: NeilBrown <neilb@suse.com>
+
+---
+ fs/nfs/file.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/fs/nfs/file.c
++++ b/fs/nfs/file.c
+@@ -687,6 +687,8 @@ ssize_t nfs_file_write(struct kiocb *ioc
+ if (result)
+ goto out;
+ }
++ if (iocb->ki_pos > i_size_read(inode))
++ nfs_revalidate_mapping(inode, file->f_mapping);
+
+ result = count;
+ if (!count)
diff --git a/patches.fixes/dentry-name-snapshots.patch b/patches.fixes/dentry-name-snapshots.patch
index 601d2df01d..b9028ae641 100644
--- a/patches.fixes/dentry-name-snapshots.patch
+++ b/patches.fixes/dentry-name-snapshots.patch
@@ -4,7 +4,7 @@ Date: Fri, 7 Jul 2017 14:51:19 -0400
Subject: [PATCH] dentry name snapshots
Git-commit: 49d31c2f389acfe83417083e1208422b4091cd9e
Patch-mainline: v4.13-rc1
-References: bsc#1049483
+References: CVE-2017-7533 bsc#1049483
take_dentry_name_snapshot() takes a safe snapshot of dentry name;
if the name is a short one, it gets copied into caller-supplied
diff --git a/patches.fixes/scsi-Add-STARGET_CREATE_REMOVE-state-to-scsi_target.patch b/patches.fixes/scsi-Add-STARGET_CREATE_REMOVE-state-to-scsi_target.patch
new file mode 100644
index 0000000000..f585d9f035
--- /dev/null
+++ b/patches.fixes/scsi-Add-STARGET_CREATE_REMOVE-state-to-scsi_target.patch
@@ -0,0 +1,137 @@
+From: "Ewan D. Milne" <emilne@redhat.com>
+Date: Wed, 31 May 2017 11:01:25 -0400
+Subject: [PATCH] scsi: Add STARGET_CREATE_REMOVE state to scsi_target_state
+Git-commit: f9279c968c257ee39b0d7bd2571a4d231a67bcc1
+Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-Mainline: queued in maintainers subsystem repo
+References: bsc#1013887
+
+The addition of the STARGET_REMOVE state had the side effect of
+introducing a race condition that can cause a crash.
+
+scsi_target_reap_ref_release() checks the starget->state to
+see if it still in STARGET_CREATED, and if so, skips calling
+transport_remove_device() and device_del(), because the starget->state
+is only set to STARGET_RUNNING after scsi_target_add() has called
+device_add() and transport_add_device().
+
+However, if an rport loss occurs while a target is being scanned,
+it can happen that scsi_remove_target() will be called while the
+starget is still in the STARGET_CREATED state. In this case, the
+starget->state will be set to STARGET_REMOVE, and as a result,
+scsi_target_reap_ref_release() will take the wrong path. The end
+result is a panic:
+
+[ 1255.356653] Oops: 0000 [#1] SMP
+[ 1255.360154] Modules linked in: x86_pkg_temp_thermal kvm_intel kvm irqbypass crc32c_intel
+[ 1255.393234] CPU: 5 PID: 149 Comm: kworker/u96:4 Tainted: G W 4.11.0+ #8
+[ 1255.401879] Hardware name: Dell Inc. PowerEdge R320/08VT7V, BIOS 2.0.22 11/19/2013
+[ 1255.410327] Workqueue: scsi_wq_6 fc_scsi_scan_rport [scsi_transport_fc]
+[ 1255.417720] task: ffff88060ca8c8c0 task.stack: ffffc900048a8000
+[ 1255.424331] RIP: 0010:kernfs_find_ns+0x13/0xc0
+[ 1255.429287] RSP: 0018:ffffc900048abbf0 EFLAGS: 00010246
+[ 1255.435123] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
+[ 1255.443083] RDX: 0000000000000000 RSI: ffffffff8188d659 RDI: 0000000000000000
+[ 1255.451043] RBP: ffffc900048abc10 R08: 0000000000000000 R09: 0000012433fe0025
+[ 1255.459005] R10: 0000000025e5a4b5 R11: 0000000025e5a4b5 R12: ffffffff8188d659
+[ 1255.466972] R13: 0000000000000000 R14: ffff8805f55e5088 R15: 0000000000000000
+[ 1255.474931] FS: 0000000000000000(0000) GS:ffff880616b40000(0000) knlGS:0000000000000000
+[ 1255.483959] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[ 1255.490370] CR2: 0000000000000068 CR3: 0000000001c09000 CR4: 00000000000406e0
+[ 1255.498332] Call Trace:
+[ 1255.501058] kernfs_find_and_get_ns+0x31/0x60
+[ 1255.505916] sysfs_unmerge_group+0x1d/0x60
+[ 1255.510498] dpm_sysfs_remove+0x22/0x60
+[ 1255.514783] device_del+0xf4/0x2e0
+[ 1255.518577] ? device_remove_file+0x19/0x20
+[ 1255.523241] attribute_container_class_device_del+0x1a/0x20
+[ 1255.529457] transport_remove_classdev+0x4e/0x60
+[ 1255.534607] ? transport_add_class_device+0x40/0x40
+[ 1255.540046] attribute_container_device_trigger+0xb0/0xc0
+[ 1255.546069] transport_remove_device+0x15/0x20
+[ 1255.551025] scsi_target_reap_ref_release+0x25/0x40
+[ 1255.556467] scsi_target_reap+0x2e/0x40
+[ 1255.560744] __scsi_scan_target+0xaa/0x5b0
+[ 1255.565312] scsi_scan_target+0xec/0x100
+[ 1255.569689] fc_scsi_scan_rport+0xb1/0xc0 [scsi_transport_fc]
+[ 1255.576099] process_one_work+0x14b/0x390
+[ 1255.580569] worker_thread+0x4b/0x390
+[ 1255.584651] kthread+0x109/0x140
+[ 1255.588251] ? rescuer_thread+0x330/0x330
+[ 1255.592730] ? kthread_park+0x60/0x60
+[ 1255.596815] ret_from_fork+0x29/0x40
+[ 1255.600801] Code: 24 08 48 83 42 40 01 5b 41 5c 5d c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90
+[ 1255.621876] RIP: kernfs_find_ns+0x13/0xc0 RSP: ffffc900048abbf0
+[ 1255.628479] CR2: 0000000000000068
+[ 1255.632756] ---[ end trace 34a69ba0477d036f ]---
+
+Fix this by adding another scsi_target state STARGET_CREATED_REMOVE
+to distinguish this case.
+
+Fixes: f05795d3d771 ("scsi: Add intermediate STARGET_REMOVE state to scsi_target_state")
+Reported-by: David Jeffery <djeffery@redhat.com>
+Signed-off-by: Ewan D. Milne <emilne@redhat.com>
+Cc: stable@vger.kernel.org
+Acked-by: Hannes Reinecke <hare@suse.com>
+---
+ drivers/scsi/scsi_scan.c | 5 +++--
+ drivers/scsi/scsi_sysfs.c | 8 ++++++--
+ include/scsi/scsi_device.h | 1 +
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
+index 1fb7dba..56e6b70 100644
+--- a/drivers/scsi/scsi_scan.c
++++ b/drivers/scsi/scsi_scan.c
+@@ -393,11 +393,12 @@ static void scsi_target_reap_ref_release(struct kref *kref)
+ = container_of(kref, struct scsi_target, reap_ref);
+
+ /*
+- * if we get here and the target is still in the CREATED state that
++ * if we get here and the target is still in a CREATED state that
+ * means it was allocated but never made visible (because a scan
+ * turned up no LUNs), so don't call device_del() on it.
+ */
+- if (starget->state != STARGET_CREATED) {
++ if ((starget->state != STARGET_CREATED) &&
++ (starget->state != STARGET_CREATED_REMOVE)) {
+ transport_remove_device(&starget->dev);
+ device_del(&starget->dev);
+ }
+diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
+index 4a7392a..1889761 100644
+--- a/drivers/scsi/scsi_sysfs.c
++++ b/drivers/scsi/scsi_sysfs.c
+@@ -1367,11 +1367,15 @@ restart:
+ spin_lock_irqsave(shost->host_lock, flags);
+ list_for_each_entry(starget, &shost->__targets, siblings) {
+ if (starget->state == STARGET_DEL ||
+- starget->state == STARGET_REMOVE)
++ starget->state == STARGET_REMOVE ||
++ starget->state == STARGET_CREATED_REMOVE)
+ continue;
+ if (starget->dev.parent == dev || &starget->dev == dev) {
+ kref_get(&starget->reap_ref);
+- starget->state = STARGET_REMOVE;
++ if (starget->state == STARGET_CREATED)
++ starget->state = STARGET_CREATED_REMOVE;
++ else
++ starget->state = STARGET_REMOVE;
+ spin_unlock_irqrestore(shost->host_lock, flags);
+ __scsi_remove_target(starget);
+ scsi_target_reap(starget);
+diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
+index 368b82a..a2e80ea 100644
+--- a/include/scsi/scsi_device.h
++++ b/include/scsi/scsi_device.h
+@@ -254,6 +254,7 @@ enum scsi_target_state {
+ STARGET_CREATED = 1,
+ STARGET_RUNNING,
+ STARGET_REMOVE,
++ STARGET_CREATED_REMOVE,
+ STARGET_DEL,
+ };
+
+--
+1.8.5.6
+
diff --git a/patches.kabi/scsi-kABI-fix-for-new-state-STARGET_CREATED_REMOVE.patch b/patches.kabi/scsi-kABI-fix-for-new-state-STARGET_CREATED_REMOVE.patch
new file mode 100644
index 0000000000..02d3111e64
--- /dev/null
+++ b/patches.kabi/scsi-kABI-fix-for-new-state-STARGET_CREATED_REMOVE.patch
@@ -0,0 +1,33 @@
+From: Hannes Reinecke <hare@suse.de>
+Date: Thu, 3 Aug 2017 10:14:49 +0200
+Subject: [PATCH] scsi: kABI fix for new state STARGET_CREATED_REMOVE
+Patch-Mainline: never, kABI fix for SLES12
+References: bsc#1013887
+
+The new state needs to be added to the end of the enumeration
+so as not to break kABI.
+
+Signed-off-by: Hannes Reinecke <hare@suse.com>
+---
+ include/scsi/scsi_device.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
+index a2e80ea..7864189 100644
+--- a/include/scsi/scsi_device.h
++++ b/include/scsi/scsi_device.h
+@@ -254,8 +254,10 @@ enum scsi_target_state {
+ STARGET_CREATED = 1,
+ STARGET_RUNNING,
+ STARGET_REMOVE,
+- STARGET_CREATED_REMOVE,
+ STARGET_DEL,
++#ifndef __GENKSYMS__
++ STARGET_CREATED_REMOVE,
++#endif
+ };
+
+ /*
+--
+1.8.5.6
+
diff --git a/patches.drivers/net-use-core-MTU-range-checking-in-virt-drivers.patch b/patches.suse/msft-hv-1140-net-use-core-MTU-range-checking-in-virt-drivers.patch
index a37c903f68..e2626e2291 100644
--- a/patches.drivers/net-use-core-MTU-range-checking-in-virt-drivers.patch
+++ b/patches.suse/msft-hv-1140-net-use-core-MTU-range-checking-in-virt-drivers.patch
@@ -65,12 +65,13 @@ Acked-by: Benjamin Poirier <bpoirier@suse.com>
#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY (1024*1024*15) /* 15MB */
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
-@@ -844,18 +844,11 @@ static int netvsc_change_mtu(struct net_
+@@ -872,19 +872,12 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)
struct netvsc_device *nvdev = ndevctx->nvdev;
struct hv_device *hdev = ndevctx->device_ctx;
struct netvsc_device_info device_info;
- int limit = ETH_DATA_LEN;
- int ret;
+ u32 num_chn;
+ int ret = 0;
if (ndevctx->start_remove || !nvdev || nvdev->destroy)
return -ENODEV;
@@ -84,9 +85,9 @@ Acked-by: Benjamin Poirier <bpoirier@suse.com>
ret = netvsc_close(ndev);
if (ret)
goto out;
-@@ -1521,6 +1514,13 @@ static int netvsc_probe(struct hv_device
- netif_set_real_num_tx_queues(net, nvdev->num_chn);
+@@ -1402,6 +1395,13 @@ static int netvsc_probe(struct hv_device *dev,
netif_set_real_num_rx_queues(net, nvdev->num_chn);
+ netif_set_gso_max_size(net, NETVSC_GSO_MAX_SIZE);
+ /* MTU range: 68 - 1500 or 65521 */
+ net->min_mtu = NETVSC_MTU_MIN;
diff --git a/patches.suse/msft-hv-1218-netvsc-negotiate-checksum-and-segmentation-parameter.patch b/patches.suse/msft-hv-1218-netvsc-negotiate-checksum-and-segmentation-parameter.patch
index e69a0b5756..02fa3e0c0c 100644
--- a/patches.suse/msft-hv-1218-netvsc-negotiate-checksum-and-segmentation-parameter.patch
+++ b/patches.suse/msft-hv-1218-netvsc-negotiate-checksum-and-segmentation-parameter.patch
@@ -395,8 +395,8 @@ index eebeb9378bac..f26d9d2d475f 100644
netif_set_real_num_rx_queues(net, nvdev->num_chn);
- netif_set_gso_max_size(net, NETVSC_GSO_MAX_SIZE);
- ret = register_netdev(net);
- if (ret != 0) {
+ /* MTU range: 68 - 1500 or 65521 */
+ net->min_mtu = NETVSC_MTU_MIN;
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 113c7f4d1590..8f04be1d7421 100644
--- a/drivers/net/hyperv/rndis_filter.c
diff --git a/patches.suse/msft-hv-1222-netvsc-allow-more-flexible-setting-of-number-of-chan.patch b/patches.suse/msft-hv-1222-netvsc-allow-more-flexible-setting-of-number-of-chan.patch
index ca79f8f2e3..7e749f6524 100644
--- a/patches.suse/msft-hv-1222-netvsc-allow-more-flexible-setting-of-number-of-chan.patch
+++ b/patches.suse/msft-hv-1222-netvsc-allow-more-flexible-setting-of-number-of-chan.patch
@@ -189,9 +189,9 @@ index 40a88387a8f5..ead472150742 100644
static bool netvsc_validate_ethtool_ss_cmd(const struct ethtool_cmd *cmd)
@@ -865,8 +837,7 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)
+ struct netvsc_device *nvdev = ndevctx->nvdev;
struct hv_device *hdev = ndevctx->device_ctx;
struct netvsc_device_info device_info;
- int limit = ETH_DATA_LEN;
- u32 num_chn;
- int ret = 0;
+ int ret;
diff --git a/patches.suse/suse-hv-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch b/patches.suse/msft-hv-1342-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch
index ab9b779622..c6b6c8ba99 100644
--- a/patches.suse/suse-hv-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch
+++ b/patches.suse/msft-hv-1342-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch
@@ -1,7 +1,8 @@
From: Long Li <longli@microsoft.com>
Date: Sun, 30 Apr 2017 16:21:19 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9643471/)
+Patch-mainline: v4.13-rc1
Subject: HV: properly delay KVP packets when negotiation is in progress
+Git-commit: a3ade8cc474d848676278660e65f5af1e9e094d9
References: fate#320485, bnc#1023287
The host may send multiple negotiation packets
@@ -29,7 +30,6 @@ Acked-by: <ohering@suse.de>
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c
-index e99ff2ddad40..9a90b915b5be 100644
--- a/drivers/hv/hv_kvp.c
+++ b/drivers/hv/hv_kvp.c
@@ -112,7 +112,7 @@ static void kvp_poll_wrapper(void *channel)
diff --git a/patches.suse/suse-hv-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch b/patches.suse/msft-hv-1343-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch
index 277a49dc87..c32bf7e3a7 100644
--- a/patches.suse/suse-hv-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch
+++ b/patches.suse/msft-hv-1343-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch
@@ -1,13 +1,15 @@
From: "K. Y. Srinivasan" <kys@microsoft.com>
Date: Thu, 18 May 2017 10:46:02 -0700
+Patch-mainline: v4.13-rc1
Subject: Drivers: hv: vmbus: Get the current time from the current clocksource
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735033/)
+Git-commit: e546d778d6bb3e1a80697a6556d870c707e6df82
References: fate#320485, bnc#1044112
The current code uses the MSR based mechanism to get the current tick.
Use the current clock source as that might be more optimal.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: <ohering@suse.de>
---
arch/x86/include/asm/mshyperv.h | 1 -
@@ -15,7 +17,6 @@ Acked-by: <ohering@suse.de>
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
-index 7c9c895432a9..7b078533476c 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -137,7 +137,6 @@ static inline void vmbus_signal_eom(struct hv_message *msg, u32 old_msg_type)
@@ -27,7 +28,6 @@ index 7c9c895432a9..7b078533476c 100644
#define hv_init_timer_config(config, val) wrmsrl(config, val)
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
-index c544f5597bd4..4afe7631cda3 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -96,7 +96,7 @@ static int hv_ce_set_next_event(unsigned long delta,
diff --git a/patches.suse/suse-hv-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch b/patches.suse/msft-hv-1344-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch
index da71813eba..587d56897c 100644
--- a/patches.suse/suse-hv-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch
+++ b/patches.suse/msft-hv-1344-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch
@@ -1,7 +1,8 @@
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Thu, 18 May 2017 10:46:03 -0700
+Patch-mainline: v4.13-rc1
Subject: hv_utils: drop .getcrosststamp() support from PTP driver
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735037/)
+Git-commit: 4f9bac039a64f6306b613a0d90e6b7e75d7ab0c4
References: fate#320485, bnc#1044112
Turns out that our implementation of .getcrosststamp() never actually
@@ -47,13 +48,13 @@ implementation for now as it doesn't seem to be suitable for us.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: <ohering@suse.de>
---
drivers/hv/hv_util.c | 36 ------------------------------------
1 file changed, 36 deletions(-)
diff --git a/drivers/hv/hv_util.c b/drivers/hv/hv_util.c
-index 186b10083c55..2849143bf6f0 100644
--- a/drivers/hv/hv_util.c
+++ b/drivers/hv/hv_util.c
@@ -248,7 +248,6 @@ static struct adj_time_work wrk;
diff --git a/patches.suse/suse-hv-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch b/patches.suse/msft-hv-1345-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch
index 06d695c337..1f6bc7b561 100644
--- a/patches.suse/suse-hv-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch
+++ b/patches.suse/msft-hv-1345-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch
@@ -1,7 +1,8 @@
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Thu, 18 May 2017 10:46:04 -0700
+Patch-mainline: v4.13-rc1
Subject: hv_utils: fix TimeSync work on pre-TimeSync-v4 hosts
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9712123/)
+Git-commit: 1d10602d306cb7f70545b5e1166efc9409e7d384
References: fate#320485, bnc#1044112
It was found that ICTIMESYNCFLAG_SYNC packets are handled incorrectly
@@ -22,13 +23,13 @@ accessor to host_ts to avoid code duplication.
Fixes: 3716a49a81ba ("hv_utils: implement Hyper-V PTP source")
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: <ohering@suse.de>
---
drivers/hv/hv_util.c | 128 ++++++++++++++++++++++-----------------------------
1 file changed, 54 insertions(+), 74 deletions(-)
diff --git a/drivers/hv/hv_util.c b/drivers/hv/hv_util.c
-index 2849143bf6f0..14dce25c104f 100644
--- a/drivers/hv/hv_util.c
+++ b/drivers/hv/hv_util.c
@@ -202,27 +202,39 @@ static void shutdown_onchannelcallback(void *context)
diff --git a/patches.suse/suse-hv-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch b/patches.suse/msft-hv-1346-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch
index 1c6dbe03f9..06a5b06b42 100644
--- a/patches.suse/suse-hv-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch
+++ b/patches.suse/msft-hv-1346-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch
@@ -1,7 +1,8 @@
From: "K. Y. Srinivasan" <kys@microsoft.com>
Date: Thu, 18 May 2017 10:46:05 -0700
+Patch-mainline: v4.13-rc1
Subject: drivers: hv: vmbus: Increase the time between retries in vmbus_post_msg()
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735035/)
+Git-commit: e917a5e23a87e24931625c344daea834cd2d6f2f
References: fate#320485, bnc#1044112
Commit c0bb03924f1a ("Drivers: hv: vmbus: Raise retry/wait limits in
@@ -11,16 +12,16 @@ Increase the time between retries to make the
code more robust.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: <ohering@suse.de>
---
drivers/hv/connection.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
-index 203198bacb27..c9ecc13e9d40 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
-@@ -386,7 +386,7 @@ int vmbus_post_msg(void *buffer, size_t buflen)
+@@ -390,7 +390,7 @@ int vmbus_post_msg(void *buffer, size_t buflen, bool can_sleep)
else
mdelay(usec / 1000);
diff --git a/patches.suse/suse-hv-01-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch b/patches.suse/msft-hv-1371-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
index 752a3dcaba..2022980ba4 100644
--- a/patches.suse/suse-hv-01-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
+++ b/patches.suse/msft-hv-1371-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
@@ -1,7 +1,8 @@
From: Jork Loeser <jloeser@microsoft.com>
Date: Wed, 24 May 2017 13:41:24 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735085/)
+Patch-mainline: v4.13-rc1
Subject: PCI: hv: Fix comment formatting and use proper integer fields
+Git-commit: 691ac1dc5840ff0faeec82ea6e94d6b7bc187ac9
References: fate#320485, bnc#1043485
Fix comment formatting and use proper integer fields.
@@ -16,7 +17,6 @@ Acked-by: <ohering@suse.de>
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
-index 84936383e269..7bebdc6f6152 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -245,7 +245,7 @@ struct pci_packet {
diff --git a/patches.suse/suse-hv-02-PCI-hv-Use-page-allocation-for-hbus-structure.patch b/patches.suse/msft-hv-1372-PCI-hv-Use-page-allocation-for-hbus-structure.patch
index 54a008940b..7feb4a5618 100644
--- a/patches.suse/suse-hv-02-PCI-hv-Use-page-allocation-for-hbus-structure.patch
+++ b/patches.suse/msft-hv-1372-PCI-hv-Use-page-allocation-for-hbus-structure.patch
@@ -1,7 +1,8 @@
From: Jork Loeser <jloeser@microsoft.com>
Date: Wed, 24 May 2017 13:41:25 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735091/)
+Patch-mainline: v4.13-rc1
Subject: PCI: hv: Use page allocation for hbus structure
+Git-commit: be66b673659116930f2da2f41ec79c9d1279cd8f
References: fate#320485, bnc#1043485
The hv_pcibus_device structure contains an in-memory hypercall argument
@@ -18,7 +19,6 @@ Acked-by: <ohering@suse.de>
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
-index 7bebdc6f6152..6e4b02678b7a 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -382,7 +382,10 @@ struct hv_pcibus_device {
diff --git a/patches.suse/suse-hv-03-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch b/patches.suse/msft-hv-1373-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch
index de8bc0f24d..6c94756815 100644
--- a/patches.suse/suse-hv-03-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch
+++ b/patches.suse/msft-hv-1373-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch
@@ -1,7 +1,8 @@
From: Jork Loeser <jloeser@microsoft.com>
Date: Wed, 24 May 2017 13:41:26 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9746899/)
+Patch-mainline: v4.13-rc1
Subject: PCI: hv: Temporary own CPU-number-to-vCPU-number infra
+Git-commit: 02c3764c776c7f1ff036ce3ff0c0bb4b1094fa0b
References: fate#320485, bnc#1043485
To ease parallel effort to centralize CPU-number-to-vCPU-number conversion,
@@ -19,7 +20,6 @@ Acked-by: <ohering@suse.de>
1 file changed, 50 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
-index 6e4b02678b7a..cf70fbc8e929 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -479,6 +479,52 @@ static void put_pcichild(struct hv_pci_dev *hv_pcidev,
diff --git a/patches.suse/suse-hv-04-PCI-hv-Add-vPCI-version-protocol-negotiation.patch b/patches.suse/msft-hv-1374-PCI-hv-Add-vPCI-version-protocol-negotiation.patch
index d05e7eee4f..c7c2cb84a5 100644
--- a/patches.suse/suse-hv-04-PCI-hv-Add-vPCI-version-protocol-negotiation.patch
+++ b/patches.suse/msft-hv-1374-PCI-hv-Add-vPCI-version-protocol-negotiation.patch
@@ -1,7 +1,8 @@
From: Jork Loeser <jloeser@microsoft.com>
Date: Wed, 24 May 2017 13:41:27 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735097/)
+Patch-mainline: v4.13-rc1
Subject: PCI: hv: Add vPCI version protocol negotiation
+Git-commit: b1db7e7e1d70035cbd0a7be32006af7714737157
References: fate#320485, bnc#1043485
Hyper-V vPCI offers different protocol versions. Add the infra for
@@ -17,7 +18,6 @@ Acked-by: <ohering@suse.de>
1 file changed, 53 insertions(+), 19 deletions(-)
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
-index cf70fbc8e929..4a8a21e37b8e 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -64,22 +64,37 @@
diff --git a/patches.suse/suse-hv-05-PCI-hv-Use-vPCI-protocol-version-1.2.patch b/patches.suse/msft-hv-1375-PCI-hv-Use-vPCI-protocol-version-1.2.patch
index 3f9774946c..3ecda71e5f 100644
--- a/patches.suse/suse-hv-05-PCI-hv-Use-vPCI-protocol-version-1.2.patch
+++ b/patches.suse/msft-hv-1375-PCI-hv-Use-vPCI-protocol-version-1.2.patch
@@ -1,7 +1,8 @@
From: Jork Loeser <jloeser@microsoft.com>
Date: Wed, 24 May 2017 13:41:28 -0700
-Patch-mainline: submitted (lkml - https://patchwork.kernel.org/patch/9735093/)
-Subject: [PATCH] PCI: hv: Use vPCI protocol version 1.2
+Patch-mainline: v4.13-rc1
+Subject: PCI: hv: Use vPCI protocol version 1.2
+Git-commit: 7dcf90e9e032432e91ce77dd872d2227e9d5b741
References: fate#320485, bnc#1043485
Update the Hyper-V vPCI driver to use the Server-2016 version of the vPCI
@@ -18,7 +19,6 @@ Acked-by: <ohering@suse.de>
2 files changed, 252 insertions(+), 54 deletions(-)
diff --git a/arch/x86/include/uapi/asm/hyperv.h b/arch/x86/include/uapi/asm/hyperv.h
-index 432df4b1baec..237ec6cda206 100644
--- a/arch/x86/include/uapi/asm/hyperv.h
+++ b/arch/x86/include/uapi/asm/hyperv.h
@@ -153,6 +153,12 @@
@@ -35,7 +35,6 @@ index 432df4b1baec..237ec6cda206 100644
*/
#define HV_CRASH_CTL_CRASH_NOTIFY (1ULL << 63)
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
-index 4a8a21e37b8e..415dcc69a502 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -70,6 +70,7 @@
diff --git a/series.conf b/series.conf
index 7807d6f199..2b9bbf0269 100644
--- a/series.conf
+++ b/series.conf
@@ -3003,6 +3003,7 @@
########################################################
# Hyper-V
########################################################
+ patches.drivers/staging-unisys-iochannel-fix-spacing-around-operator.patch
patches.suse/suse-hv-0001-genirq-msi-Export-functions-to-allow-MSI-domains-in-.patch
patches.suse/suse-hv-0001-x86-irq-Export-functions-to-allow-MSI-domains-in-mod.patch
patches.suse/suse-hv-0001-acpi-pci-Setup-MSI-domain-for-ACPI-based-pci-devices.patch
@@ -3207,6 +3208,7 @@
patches.suse/msft-hv-1137-netvsc-fix-checksum-on-UDP-IPV6.patch
patches.suse/msft-hv-1138-netvsc-Remove-mistaken-udp.h-inclusion.patch
patches.suse/msft-hv-1139-net-hyperv-avoid-uninitialized-variable.patch
+ patches.suse/msft-hv-1140-net-use-core-MTU-range-checking-in-virt-drivers.patch
patches.suse/msft-hv-1141-hv_netvsc-fix-a-race-between-netvsc_send-and-netvsc_.patch
patches.suse/msft-hv-1143-netvsc-fix-incorrect-receive-checksum-offloading.patch
patches.suse/msft-hv-1144-Revert-hv_netvsc-report-vmbus-name-in-ethtool.patch
@@ -3330,16 +3332,16 @@
patches.suse/msft-hv-1322-Drivers-hv-Issue-explicit-EOI-when-autoeoi-is-not-en.patch
patches.suse/msft-hv-1326-hv_netvsc-Fix-the-queue-index-computation-in-forward.patch
patches.suse/msft-hv-1327-hv_netvsc-Exclude-non-TCP-port-numbers-from-vRSS-has.patch
- patches.suse/suse-hv-01-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
- patches.suse/suse-hv-02-PCI-hv-Use-page-allocation-for-hbus-structure.patch
- patches.suse/suse-hv-03-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch
- patches.suse/suse-hv-04-PCI-hv-Add-vPCI-version-protocol-negotiation.patch
- patches.suse/suse-hv-05-PCI-hv-Use-vPCI-protocol-version-1.2.patch
- patches.suse/suse-hv-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch
- patches.suse/suse-hv-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch
- patches.suse/suse-hv-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch
- patches.suse/suse-hv-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch
- patches.suse/suse-hv-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch
+ patches.suse/msft-hv-1342-HV-properly-delay-KVP-packets-when-negotiation-is-in.patch
+ patches.suse/msft-hv-1343-Drivers-hv-vmbus-Get-the-current-time-from-the-curre.patch
+ patches.suse/msft-hv-1344-hv_utils-drop-.getcrosststamp-support-from-PTP-drive.patch
+ patches.suse/msft-hv-1345-hv_utils-fix-TimeSync-work-on-pre-TimeSync-v4-hosts.patch
+ patches.suse/msft-hv-1346-drivers-hv-vmbus-Increase-the-time-between-retries-i.patch
+ patches.suse/msft-hv-1371-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
+ patches.suse/msft-hv-1372-PCI-hv-Use-page-allocation-for-hbus-structure.patch
+ patches.suse/msft-hv-1373-PCI-hv-Temporary-own-CPU-number-to-vCPU-number-infra.patch
+ patches.suse/msft-hv-1374-PCI-hv-Add-vPCI-version-protocol-negotiation.patch
+ patches.suse/msft-hv-1375-PCI-hv-Use-vPCI-protocol-version-1.2.patch
patches.suse/suse-hv-hyperv_fb-Add-screen-refresh-after-pause-resume-oper.patch
@@ -3472,6 +3474,8 @@
patches.fixes/0001-NFSv4-don-t-let-hanging-mounts-block-other-mounts.patch
patches.fixes/0001-NFS-Don-t-flush-caches-for-a-getattr-that-races-with.patch
patches.fixes/0002-NFS-Cache-aggressively-when-file-is-open-for-writing.patch
+ patches.fixes/0001-NFS-invalidate-file-size-when-taking-a-lock.patch
+ patches.fixes/0002-NFS-Optimize-fallocate-by-refreshing-mapping-when-ne.patch
########################################################
# cifs patches
@@ -4755,8 +4759,6 @@
patches.fixes/libfc-Fixup-fixup-disc_mutex-handling.patch
patches.fixes/fcoe_ctlr-fix-potential-deadlock-when-re-adding-port.patch
patches.drivers/scsi_transport_fc-return-EBUSY-for-deleted-vport.patch
- patches.drivers/scsi_transport_fc-do-not-call-queue_work-under-lock.patch
- patches.drivers/scsi_transport_fc-fixup-race-condition-in-fc_rport_f.patch
patches.drivers/0001-scsi-libfc-Do-not-take-rdata-rp_mutex-when-processin.patch
patches.drivers/0002-scsi-fcoe-Harden-CVL-handling-when-we-have-not-logge.patch
patches.drivers/0003-scsi-libfc-Revert-SCSI-libfc-use-offload-EM-instance.patch
@@ -4789,6 +4791,8 @@
patches.drivers/0030-scsi-libfc-Don-t-have-fc_exch_find-log-errors-on-a-n.patch
patches.drivers/0031-scsi-libfc-Remove-an-unneeded-condition.patch
patches.drivers/libfc-do-not-flood-console-with-messages-libfc-queue.patch
+ patches.fixes/scsi-Add-STARGET_CREATE_REMOVE-state-to-scsi_target.patch
+ patches.kabi/scsi-kABI-fix-for-new-state-STARGET_CREATED_REMOVE.patch
# bfa backport (bsc#964442, FATE#320157)
patches.drivers/0001-bfa-update-copyright-messages.patch
@@ -9050,7 +9054,6 @@
patches.drivers/mdio-remove-an-unneed-condition.patch
patches.drivers/phy-remove-an-unneeded-condition.patch
patches.drivers/usb-gadget-ether-Allow-changing-the-MTU.patch
- patches.drivers/staging-unisys-iochannel-fix-spacing-around-operator.patch
patches.drivers/net-hns-fixes-no-syscon-error-when-init-mdio.patch
patches.drivers/net-hns-bug-fix-about-hisilicon-TSO-BD-mode.patch
patches.drivers/net-phy-Fix-phy_mac_interrupt.patch
@@ -10352,7 +10355,6 @@
patches.drivers/net-use-core-MTU-range-checking-in-wireless-drivers.patch
patches.drivers/net-use-core-MTU-range-checking-in-WAN-drivers.patch
patches.drivers/net-use-core-MTU-range-checking-in-core-net-infra.patch
- patches.drivers/net-use-core-MTU-range-checking-in-virt-drivers.patch
patches.drivers/net-use-core-MTU-range-checking-in-misc-drivers.patch
patches.drivers/s390-net-use-net-core-MTU-range-checking.patch
patches.drivers/ipv4-6-use-core-net-MTU-range-checking.patch