From: Greg Kroah-Hartman Date: Sat, 22 Feb 2025 15:37:57 +0000 (+0100) Subject: 6.13-stable patches X-Git-Tag: v6.6.80~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc870722a0dfd3f75bde74dbd4d041b122da1a0e;p=thirdparty%2Fkernel%2Fstable-queue.git 6.13-stable patches added patches: drivers-hv-vmbus-log-on-missing-offers-if-any.patch series --- diff --git a/queue-6.13/drivers-hv-vmbus-log-on-missing-offers-if-any.patch b/queue-6.13/drivers-hv-vmbus-log-on-missing-offers-if-any.patch new file mode 100644 index 0000000000..b4ccd53ec6 --- /dev/null +++ b/queue-6.13/drivers-hv-vmbus-log-on-missing-offers-if-any.patch @@ -0,0 +1,67 @@ +From fcf5203e289ca0ef75a18ce74a9eb716f7f1f569 Mon Sep 17 00:00:00 2001 +From: John Starks +Date: Thu, 2 Jan 2025 13:07:11 +0000 +Subject: Drivers: hv: vmbus: Log on missing offers if any + +From: John Starks + +commit fcf5203e289ca0ef75a18ce74a9eb716f7f1f569 upstream. + +When resuming from hibernation, log any channels that were present +before hibernation but now are gone. +In general, the boot-time devices configured for a resuming VM should be +the same as the devices in the VM at the time of hibernation. It's +uncommon for the configuration to have been changed such that offers +are missing. Changing the configuration violates the rules for +hibernation anyway. +The cleanup of missing channels is not straight-forward and dependent +on individual device driver functionality and implementation, +so it can be added in future with separate changes. + +Signed-off-by: John Starks +Co-developed-by: Naman Jain +Signed-off-by: Naman Jain +Reviewed-by: Easwar Hariharan +Reviewed-by: Saurabh Sengar +Reviewed-by: Michael Kelley +Link: https://lore.kernel.org/r/20250102130712.1661-3-namjain@linux.microsoft.com +Signed-off-by: Wei Liu +Message-ID: <20250102130712.1661-3-namjain@linux.microsoft.com> +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hv/vmbus_drv.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +--- a/drivers/hv/vmbus_drv.c ++++ b/drivers/hv/vmbus_drv.c +@@ -2462,6 +2462,7 @@ static int vmbus_bus_suspend(struct devi + + static int vmbus_bus_resume(struct device *dev) + { ++ struct vmbus_channel *channel; + struct vmbus_channel_msginfo *msginfo; + size_t msgsize; + int ret; +@@ -2494,6 +2495,22 @@ static int vmbus_bus_resume(struct devic + + vmbus_request_offers(); + ++ mutex_lock(&vmbus_connection.channel_mutex); ++ list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { ++ if (channel->offermsg.child_relid != INVALID_RELID) ++ continue; ++ ++ /* hvsock channels are not expected to be present. */ ++ if (is_hvsock_channel(channel)) ++ continue; ++ ++ pr_err("channel %pUl/%pUl not present after resume.\n", ++ &channel->offermsg.offer.if_type, ++ &channel->offermsg.offer.if_instance); ++ /* ToDo: Cleanup these channels here */ ++ } ++ mutex_unlock(&vmbus_connection.channel_mutex); ++ + /* Reset the event for the next suspend. */ + reinit_completion(&vmbus_connection.ready_for_suspend_event); + diff --git a/queue-6.13/series b/queue-6.13/series new file mode 100644 index 0000000000..7402838279 --- /dev/null +++ b/queue-6.13/series @@ -0,0 +1 @@ +drivers-hv-vmbus-log-on-missing-offers-if-any.patch