2019-03-19 16:15:12

by Jeff Xie

[permalink] [raw]
Subject: [PATCH] s390:tty3270:move spin_lock_bh to spin_lock in tasklet

It is unnecessary to call spin_lock_bh in a tasklet.

Signed-off-by: Jeff Xie <[email protected]>
---
drivers/s390/char/tty3270.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c
index 2b0c36c2..2963396 100644
--- a/drivers/s390/char/tty3270.c
+++ b/drivers/s390/char/tty3270.c
@@ -563,7 +563,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
char *input;
int len;

- spin_lock_bh(&tp->view.lock);
+ spin_lock(&tp->view.lock);
/*
* Two AID keys are special: For 0x7d (enter) the input line
* has to be emitted to the tty and for 0x6d the screen
@@ -590,7 +590,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
tp->update_flags = TTY_UPDATE_ALL;
tty3270_set_timer(tp, 1);
}
- spin_unlock_bh(&tp->view.lock);
+ spin_unlock(&tp->view.lock);

/* Start keyboard reset command. */
raw3270_request_reset(tp->kreset);
--
2.7.4



2019-03-20 07:30:34

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH] s390:tty3270:move spin_lock_bh to spin_lock in tasklet

On Wed, Mar 20, 2019 at 12:12:36AM +0800, Jeff Xie wrote:
> It is unnecessary to call spin_lock_bh in a tasklet.
>
> Signed-off-by: Jeff Xie <[email protected]>
> ---
> drivers/s390/char/tty3270.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c
> index 2b0c36c2..2963396 100644
> --- a/drivers/s390/char/tty3270.c
> +++ b/drivers/s390/char/tty3270.c
> @@ -563,7 +563,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
> char *input;
> int len;
>
> - spin_lock_bh(&tp->view.lock);
> + spin_lock(&tp->view.lock);
> /*
> * Two AID keys are special: For 0x7d (enter) the input line
> * has to be emitted to the tty and for 0x6d the screen
> @@ -590,7 +590,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
> tp->update_flags = TTY_UPDATE_ALL;
> tty3270_set_timer(tp, 1);
> }
> - spin_unlock_bh(&tp->view.lock);
> + spin_unlock(&tp->view.lock);

I'm not going to take this. There is close to zero benefit, but rather
high cost to review this - just because the function is named *tasklet
doesn't mean it is only called in tasklet / softirq context.