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 <[email protected]>
> Cc: Boqun Feng <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Will Deacon <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Jiri Slaby <[email protected]>
> ---
>  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 <[email protected]>

Reply via email to