scm: remove use CMSG{_COMPAT}_ALIGN(sizeof(struct {compat_}cmsghdr))
sizeof(struct cmsghdr) and sizeof(struct compat_cmsghdr) already aligned. remove use CMSG_ALIGN(sizeof(struct cmsghdr)) and CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr)) keep code consistent. Signed-off-by: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ec2507d2a3
commit
1ff8cebf49
@ -92,9 +92,9 @@ struct cmsghdr {
|
||||
|
||||
#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
|
||||
|
||||
#define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
|
||||
#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
|
||||
#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
|
||||
#define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + sizeof(struct cmsghdr)))
|
||||
#define CMSG_SPACE(len) (sizeof(struct cmsghdr) + CMSG_ALIGN(len))
|
||||
#define CMSG_LEN(len) (sizeof(struct cmsghdr) + (len))
|
||||
|
||||
#define __CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr) ? \
|
||||
(struct cmsghdr *)(ctl) : \
|
||||
|
14
net/compat.c
14
net/compat.c
@ -90,11 +90,11 @@ int get_compat_msghdr(struct msghdr *kmsg,
|
||||
#define CMSG_COMPAT_ALIGN(len) ALIGN((len), sizeof(s32))
|
||||
|
||||
#define CMSG_COMPAT_DATA(cmsg) \
|
||||
((void __user *)((char __user *)(cmsg) + CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr))))
|
||||
((void __user *)((char __user *)(cmsg) + sizeof(struct compat_cmsghdr)))
|
||||
#define CMSG_COMPAT_SPACE(len) \
|
||||
(CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr)) + CMSG_COMPAT_ALIGN(len))
|
||||
(sizeof(struct compat_cmsghdr) + CMSG_COMPAT_ALIGN(len))
|
||||
#define CMSG_COMPAT_LEN(len) \
|
||||
(CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr)) + (len))
|
||||
(sizeof(struct compat_cmsghdr) + (len))
|
||||
|
||||
#define CMSG_COMPAT_FIRSTHDR(msg) \
|
||||
(((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
|
||||
@ -141,8 +141,7 @@ int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
|
||||
if (!CMSG_COMPAT_OK(ucmlen, ucmsg, kmsg))
|
||||
return -EINVAL;
|
||||
|
||||
tmp = ((ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg))) +
|
||||
CMSG_ALIGN(sizeof(struct cmsghdr)));
|
||||
tmp = ((ucmlen - sizeof(*ucmsg)) + sizeof(struct cmsghdr));
|
||||
tmp = CMSG_ALIGN(tmp);
|
||||
kcmlen += tmp;
|
||||
ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen);
|
||||
@ -168,8 +167,7 @@ int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
|
||||
goto Efault;
|
||||
if (!CMSG_COMPAT_OK(ucmlen, ucmsg, kmsg))
|
||||
goto Einval;
|
||||
tmp = ((ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg))) +
|
||||
CMSG_ALIGN(sizeof(struct cmsghdr)));
|
||||
tmp = ((ucmlen - sizeof(*ucmsg)) + sizeof(struct cmsghdr));
|
||||
if ((char *)kcmsg_base + kcmlen - (char *)kcmsg < CMSG_ALIGN(tmp))
|
||||
goto Einval;
|
||||
kcmsg->cmsg_len = tmp;
|
||||
@ -178,7 +176,7 @@ int cmsghdr_from_user_compat_to_kern(struct msghdr *kmsg, struct sock *sk,
|
||||
__get_user(kcmsg->cmsg_type, &ucmsg->cmsg_type) ||
|
||||
copy_from_user(CMSG_DATA(kcmsg),
|
||||
CMSG_COMPAT_DATA(ucmsg),
|
||||
(ucmlen - CMSG_COMPAT_ALIGN(sizeof(*ucmsg)))))
|
||||
(ucmlen - sizeof(*ucmsg))))
|
||||
goto Efault;
|
||||
|
||||
/* Advance. */
|
||||
|
@ -71,7 +71,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)
|
||||
struct file **fpp;
|
||||
int i, num;
|
||||
|
||||
num = (cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr)))/sizeof(int);
|
||||
num = (cmsg->cmsg_len - sizeof(struct cmsghdr))/sizeof(int);
|
||||
|
||||
if (num <= 0)
|
||||
return 0;
|
||||
|
@ -272,7 +272,7 @@ int ip_cmsg_send(struct sock *sk, struct msghdr *msg, struct ipcm_cookie *ipc,
|
||||
continue;
|
||||
switch (cmsg->cmsg_type) {
|
||||
case IP_RETOPTS:
|
||||
err = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr));
|
||||
err = cmsg->cmsg_len - sizeof(struct cmsghdr);
|
||||
|
||||
/* Our caller is responsible for freeing ipc->opt */
|
||||
err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
|
||||
|
@ -376,7 +376,7 @@ static int rxrpc_sendmsg_cmsg(struct msghdr *msg,
|
||||
if (!CMSG_OK(msg, cmsg))
|
||||
return -EINVAL;
|
||||
|
||||
len = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr));
|
||||
len = cmsg->cmsg_len - sizeof(struct cmsghdr);
|
||||
_debug("CMSG %d, %d, %d",
|
||||
cmsg->cmsg_level, cmsg->cmsg_type, len);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user