staging: vchiq_core: fix logic in poll_services_of_group
Commit "staging: vchiq_core: avoid indention in poll_services_of_group"
tries to reduce the indention, but the parts regarding the third if statement
breaks the logic. So restore them and prevent vchiq_test from hanging during
the ping test.
Fixes: 2f440843a7 ("staging: vchiq_core: avoid indention in poll_services_of_group")
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1622735405-9980-2-git-send-email-stefan.wahren@i2se.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bdf696a019
commit
447fbc14f4
1 changed files with 13 additions and 15 deletions
|
|
@ -1340,23 +1340,21 @@ poll_services_of_group(struct vchiq_state *state, int group)
|
|||
continue;
|
||||
|
||||
service_flags = atomic_xchg(&service->poll_flags, 0);
|
||||
if ((service_flags & BIT(VCHIQ_POLL_REMOVE)) == 0)
|
||||
continue;
|
||||
if (service_flags & BIT(VCHIQ_POLL_REMOVE)) {
|
||||
vchiq_log_info(vchiq_core_log_level, "%d: ps - remove %d<->%d",
|
||||
state->id, service->localport,
|
||||
service->remoteport);
|
||||
|
||||
vchiq_log_info(vchiq_core_log_level, "%d: ps - remove %d<->%d",
|
||||
state->id, service->localport,
|
||||
service->remoteport);
|
||||
/*
|
||||
* Make it look like a client, because
|
||||
* it must be removed and not left in
|
||||
* the LISTENING state.
|
||||
*/
|
||||
service->public_fourcc = VCHIQ_FOURCC_INVALID;
|
||||
|
||||
/*
|
||||
* Make it look like a client, because
|
||||
* it must be removed and not left in
|
||||
* the LISTENING state.
|
||||
*/
|
||||
service->public_fourcc = VCHIQ_FOURCC_INVALID;
|
||||
|
||||
if (vchiq_close_service_internal(service, NO_CLOSE_RECVD) !=
|
||||
VCHIQ_SUCCESS) {
|
||||
request_poll(state, service, VCHIQ_POLL_REMOVE);
|
||||
if (vchiq_close_service_internal(service, NO_CLOSE_RECVD) !=
|
||||
VCHIQ_SUCCESS)
|
||||
request_poll(state, service, VCHIQ_POLL_REMOVE);
|
||||
} else if (service_flags & BIT(VCHIQ_POLL_TERMINATE)) {
|
||||
vchiq_log_info(vchiq_core_log_level,
|
||||
"%d: ps - terminate %d<->%d",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue