static int iucv_sock_bind(struct socket *sock, struct sockaddr *addr,
                          int addr_len)
 {
-       struct sockaddr_iucv *sa = (struct sockaddr_iucv *) addr;
+       DECLARE_SOCKADDR(struct sockaddr_iucv *, sa, addr);
        char uid[sizeof(sa->siucv_user_id)];
        struct sock *sk = sock->sk;
        struct iucv_sock *iucv;
 
 static int afiucv_path_connect(struct socket *sock, struct sockaddr *addr)
 {
-       struct sockaddr_iucv *sa = (struct sockaddr_iucv *) addr;
+       DECLARE_SOCKADDR(struct sockaddr_iucv *, sa, addr);
        struct sock *sk = sock->sk;
        struct iucv_sock *iucv = iucv_sk(sk);
        unsigned char user_data[16];
 static int iucv_sock_connect(struct socket *sock, struct sockaddr *addr,
                             int alen, int flags)
 {
-       struct sockaddr_iucv *sa = (struct sockaddr_iucv *) addr;
+       DECLARE_SOCKADDR(struct sockaddr_iucv *, sa, addr);
        struct sock *sk = sock->sk;
        struct iucv_sock *iucv = iucv_sk(sk);
        int err;
 static int iucv_sock_getname(struct socket *sock, struct sockaddr *addr,
                             int peer)
 {
-       struct sockaddr_iucv *siucv = (struct sockaddr_iucv *) addr;
+       DECLARE_SOCKADDR(struct sockaddr_iucv *, siucv, addr);
        struct sock *sk = sock->sk;
        struct iucv_sock *iucv = iucv_sk(sk);