* [PATCH 0/3] greybus: svc: fix hello processing
@ 2022-02-02 11:33 Johan Hovold
2022-02-02 11:33 ` [PATCH 1/3] greybus: svc: fix an error handling bug in gb_svc_hello() Johan Hovold
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Johan Hovold @ 2022-02-02 11:33 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Johan Hovold, Alex Elder, Mitchell Tasman, Dan Carpenter,
greybus-dev, linux-kernel
Dan found and fixed a bug in the SVC HELLO request error handling which
was introduced when adding a temporary hack to reconfigure the link at
HELLO.
The implementation of the hack abuses the deferred-request processing
mechanism to send the link-configuration request, which makes the
HELLO processing a bit hard to follow.
The last two patches attempt to remedy this.
This could go into either 5.17-rc or -next.
Johan
Dan Carpenter (1):
greybus: svc: fix an error handling bug in gb_svc_hello()
Johan Hovold (2):
greybus: svc: clean up hello error path
greybus: svc: clean up link configuration hack at hello
drivers/greybus/svc.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] greybus: svc: fix an error handling bug in gb_svc_hello()
2022-02-02 11:33 [PATCH 0/3] greybus: svc: fix hello processing Johan Hovold
@ 2022-02-02 11:33 ` Johan Hovold
2022-02-02 11:33 ` [PATCH 2/3] greybus: svc: clean up hello error path Johan Hovold
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Johan Hovold @ 2022-02-02 11:33 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Johan Hovold, Alex Elder, Mitchell Tasman, Dan Carpenter,
greybus-dev, linux-kernel, stable
From: Dan Carpenter <dan.carpenter@oracle.com>
Cleanup if gb_svc_queue_deferred_request() fails.
Fixes: ee2f2074fdb2 ("greybus: svc: reconfig APBridgeA-Switch link to handle required load")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20220202072016.GA6748@kili
Cc: stable@vger.kernel.org # 4.9
[johan: fix commit summary prefix and rename label ]
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/greybus/svc.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/greybus/svc.c b/drivers/greybus/svc.c
index ce7740ef449b..51d0875a3480 100644
--- a/drivers/greybus/svc.c
+++ b/drivers/greybus/svc.c
@@ -866,8 +866,14 @@ static int gb_svc_hello(struct gb_operation *op)
gb_svc_debugfs_init(svc);
- return gb_svc_queue_deferred_request(op);
+ ret = gb_svc_queue_deferred_request(op);
+ if (ret)
+ goto err_remove_debugfs;
+
+ return 0;
+err_remove_debugfs:
+ gb_svc_debugfs_exit(svc);
err_unregister_device:
gb_svc_watchdog_destroy(svc);
device_del(&svc->dev);
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] greybus: svc: clean up hello error path
2022-02-02 11:33 [PATCH 0/3] greybus: svc: fix hello processing Johan Hovold
2022-02-02 11:33 ` [PATCH 1/3] greybus: svc: fix an error handling bug in gb_svc_hello() Johan Hovold
@ 2022-02-02 11:33 ` Johan Hovold
2022-02-02 11:33 ` [PATCH 3/3] greybus: svc: clean up link configuration hack at hello Johan Hovold
2022-02-02 11:48 ` [PATCH 0/3] greybus: svc: fix hello processing Dan Carpenter
3 siblings, 0 replies; 5+ messages in thread
From: Johan Hovold @ 2022-02-02 11:33 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Johan Hovold, Alex Elder, Mitchell Tasman, Dan Carpenter,
greybus-dev, linux-kernel
While currently safe, it is unnecessary (and confusing) to try to
destroy the watchdog when watchdog creation fails.
Change the corresponding error path to only deregister the svc.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/greybus/svc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/greybus/svc.c b/drivers/greybus/svc.c
index 51d0875a3480..4f93d6b2f4ed 100644
--- a/drivers/greybus/svc.c
+++ b/drivers/greybus/svc.c
@@ -861,7 +861,7 @@ static int gb_svc_hello(struct gb_operation *op)
ret = gb_svc_watchdog_create(svc);
if (ret) {
dev_err(&svc->dev, "failed to create watchdog: %d\n", ret);
- goto err_unregister_device;
+ goto err_deregister_svc;
}
gb_svc_debugfs_init(svc);
@@ -874,9 +874,10 @@ static int gb_svc_hello(struct gb_operation *op)
err_remove_debugfs:
gb_svc_debugfs_exit(svc);
-err_unregister_device:
gb_svc_watchdog_destroy(svc);
+err_deregister_svc:
device_del(&svc->dev);
+
return ret;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] greybus: svc: clean up link configuration hack at hello
2022-02-02 11:33 [PATCH 0/3] greybus: svc: fix hello processing Johan Hovold
2022-02-02 11:33 ` [PATCH 1/3] greybus: svc: fix an error handling bug in gb_svc_hello() Johan Hovold
2022-02-02 11:33 ` [PATCH 2/3] greybus: svc: clean up hello error path Johan Hovold
@ 2022-02-02 11:33 ` Johan Hovold
2022-02-02 11:48 ` [PATCH 0/3] greybus: svc: fix hello processing Dan Carpenter
3 siblings, 0 replies; 5+ messages in thread
From: Johan Hovold @ 2022-02-02 11:33 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Johan Hovold, Alex Elder, Mitchell Tasman, Dan Carpenter,
greybus-dev, linux-kernel
Commit ee2f2074fdb2 ("greybus: svc: reconfig APBridgeA-Switch link to
handle required load") added a temporary hack which reconfigures the
link at HELLO by abusing the deferred request processing mechanism.
Restructure the HELLO request processing so that the link-configuration
work is queued before creating the debugfs files and add a comment
explaining why it's there.
Signed-off-by: Johan Hovold <johan@kernel.org>
---
drivers/greybus/svc.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/greybus/svc.c b/drivers/greybus/svc.c
index 4f93d6b2f4ed..56d2b44d6fef 100644
--- a/drivers/greybus/svc.c
+++ b/drivers/greybus/svc.c
@@ -864,16 +864,19 @@ static int gb_svc_hello(struct gb_operation *op)
goto err_deregister_svc;
}
- gb_svc_debugfs_init(svc);
-
+ /*
+ * FIXME: This is a temporary hack to reconfigure the link at HELLO
+ * (which abuses the deferred request processing mechanism).
+ */
ret = gb_svc_queue_deferred_request(op);
if (ret)
- goto err_remove_debugfs;
+ goto err_destroy_watchdog;
+
+ gb_svc_debugfs_init(svc);
return 0;
-err_remove_debugfs:
- gb_svc_debugfs_exit(svc);
+err_destroy_watchdog:
gb_svc_watchdog_destroy(svc);
err_deregister_svc:
device_del(&svc->dev);
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 0/3] greybus: svc: fix hello processing
2022-02-02 11:33 [PATCH 0/3] greybus: svc: fix hello processing Johan Hovold
` (2 preceding siblings ...)
2022-02-02 11:33 ` [PATCH 3/3] greybus: svc: clean up link configuration hack at hello Johan Hovold
@ 2022-02-02 11:48 ` Dan Carpenter
3 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2022-02-02 11:48 UTC (permalink / raw)
To: Johan Hovold
Cc: Greg Kroah-Hartman, Alex Elder, Mitchell Tasman, greybus-dev,
linux-kernel
Thanks, Johan!
regards,
dan carpenter
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-02-02 11:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-02 11:33 [PATCH 0/3] greybus: svc: fix hello processing Johan Hovold
2022-02-02 11:33 ` [PATCH 1/3] greybus: svc: fix an error handling bug in gb_svc_hello() Johan Hovold
2022-02-02 11:33 ` [PATCH 2/3] greybus: svc: clean up hello error path Johan Hovold
2022-02-02 11:33 ` [PATCH 3/3] greybus: svc: clean up link configuration hack at hello Johan Hovold
2022-02-02 11:48 ` [PATCH 0/3] greybus: svc: fix hello processing Dan Carpenter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.