Re: [PATCH 1/7] atomics/tty: add missing atomic_long_t * cast

From: Greg Kroah-Hartman
Date: Tue May 29 2018 - 14:36:26 EST


On Tue, May 29, 2018 at 07:07:40PM +0100, Mark Rutland wrote:
> In ldsem_cmpxchg a pointer to unsigned long is passed to
> atomic_long_cmpxchg(), which expects a pointer to atomic_long_t.
>
> In preparation for making the atomic_long_* APIs type safe, add a cast
> before passing the value to atomic_long_cmpxchg(). Similar is already
> done in ldsem_atomic_update() when it calls atomic_long_add_return().
>
> Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
> Cc: Boqun Feng <boqun.feng@xxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Will Deacon <will.deacon@xxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Jiri Slaby <jslaby@xxxxxxxx>
> ---
> drivers/tty/tty_ldsem.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/tty_ldsem.c b/drivers/tty/tty_ldsem.c
> index 37a91b3df980..5f8aef97973f 100644
> --- a/drivers/tty/tty_ldsem.c
> +++ b/drivers/tty/tty_ldsem.c
> @@ -86,7 +86,7 @@ static inline long ldsem_atomic_update(long delta, struct ld_semaphore *sem)
> */
> static inline int ldsem_cmpxchg(long *old, long new, struct ld_semaphore *sem)
> {
> - long tmp = atomic_long_cmpxchg(&sem->count, *old, new);
> + long tmp = atomic_long_cmpxchg((atomic_long_t *)&sem->count, *old, new);
> if (tmp == *old) {
> *old = new;
> return 1;
> --
> 2.11.0

Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>