Blob Blame History Raw
From: Lee Duncan <lduncan@suse.com>
Date: Tue 26 Apr 2022 10:51:15 AM PDT
Subject: scsi: block: PM fix blk_post_runtime_resume() args
Patch-mainline: never, kABI fix
References: bsc#1198802

Commit 6e1fcab00a23f7fe9f4fe9704905a790efa1eeab, patch:

>  patches.suse/scsi-block-pm-Always-set-request-queue-runtime-active-in-blk_post_runtime_resume.patch 

Which removed the "err" argument from blk_post_runtime_resume(). To
make the kABI happy, add back the argument, even though we will ignore
it.
---
 block/blk-pm.c         |    5 ++++-
 drivers/scsi/scsi_pm.c |    6 +++++-
 include/linux/blk-pm.h |    2 +-
 3 files changed, 10 insertions(+), 3 deletions(-)

--- a/block/blk-pm.c
+++ b/block/blk-pm.c
@@ -172,8 +172,11 @@ EXPORT_SYMBOL(blk_pre_runtime_resume);
  *
  *    This function should be called near the end of the device's
  *    runtime_resume callback.
+ *
+ *    For kABI-backwards compatability, we leave in the "errO argument,
+ *    even though it's now unused.
  */
-void blk_post_runtime_resume(struct request_queue *q)
+void blk_post_runtime_resume(struct request_queue *q, int err_ignored __attribute__((unused)))
 {
 	blk_set_runtime_active(q);
 }
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -262,7 +262,11 @@ static int sdev_runtime_resume(struct de
 	blk_pre_runtime_resume(sdev->request_queue);
 	if (pm && pm->runtime_resume)
 		err = pm->runtime_resume(dev);
-	blk_post_runtime_resume(sdev->request_queue);
+	/*
+	 * pass an "err" value to blk_post_runtime_resume(),
+	 * even though it's now unused (for kABI)
+	 */
+	blk_post_runtime_resume(sdev->request_queue, err);
 
 	return err;
 }
--- a/include/linux/blk-pm.h
+++ b/include/linux/blk-pm.h
@@ -14,7 +14,7 @@ extern void blk_pm_runtime_init(struct r
 extern int blk_pre_runtime_suspend(struct request_queue *q);
 extern void blk_post_runtime_suspend(struct request_queue *q, int err);
 extern void blk_pre_runtime_resume(struct request_queue *q);
-extern void blk_post_runtime_resume(struct request_queue *q);
+extern void blk_post_runtime_resume(struct request_queue *q, int err_ignored);
 extern void blk_set_runtime_active(struct request_queue *q);
 #else
 static inline void blk_pm_runtime_init(struct request_queue *q,