Merge branch 'akpm' (patches from Andrew Morton)
Merge first patch-bomb from Andrew Morton: "Quite a lot of other stuff is banked up awaiting further next->mainline merging, but this batch contains: - Lots of random misc patches - OCFS2 - Most of MM - backlight updates - lib/ updates - printk updates - checkpatch updates - epoll tweaking - rtc updates - hfs - hfsplus - documentation - procfs - update gcov to gcc-4.7 format - IPC" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (269 commits) ipc, msg: fix message length check for negative values ipc/util.c: remove unnecessary work pending test devpts: plug the memory leak in kill_sb ./Makefile: export initial ramdisk compression config option init/Kconfig: add option to disable kernel compression drivers: w1: make w1_slave::flags long to avoid memory corruption drivers/w1/masters/ds1wm.cuse dev_get_platdata() drivers/memstick/core/ms_block.c: fix unreachable state in h_msb_read_page() drivers/memstick/core/mspro_block.c: fix attributes array allocation drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr kernel/panic.c: reduce 1 byte usage for print tainted buffer gcov: reuse kbasename helper kernel/gcov/fs.c: use pr_warn() kernel/module.c: use pr_foo() gcov: compile specific gcov implementation based on gcc version gcov: add support for gcc 4.7 gcov format gcov: move gcov structs definitions to a gcc version specific file kernel/taskstats.c: return -ENOMEM when alloc memory fails in add_del_listener() kernel/taskstats.c: add nla_nest_cancel() for failure processing between nla_nest_start() and nla_nest_end() kernel/sysctl_binary.c: use scnprintf() instead of snprintf() ...
This commit is contained in:
@@ -41,15 +41,15 @@ struct msg_msgseg {
|
||||
/* the next part of the message follows immediately */
|
||||
};
|
||||
|
||||
#define DATALEN_MSG (int)(PAGE_SIZE-sizeof(struct msg_msg))
|
||||
#define DATALEN_SEG (int)(PAGE_SIZE-sizeof(struct msg_msgseg))
|
||||
#define DATALEN_MSG ((size_t)PAGE_SIZE-sizeof(struct msg_msg))
|
||||
#define DATALEN_SEG ((size_t)PAGE_SIZE-sizeof(struct msg_msgseg))
|
||||
|
||||
|
||||
static struct msg_msg *alloc_msg(int len)
|
||||
static struct msg_msg *alloc_msg(size_t len)
|
||||
{
|
||||
struct msg_msg *msg;
|
||||
struct msg_msgseg **pseg;
|
||||
int alen;
|
||||
size_t alen;
|
||||
|
||||
alen = min(len, DATALEN_MSG);
|
||||
msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL);
|
||||
@@ -80,12 +80,12 @@ out_err:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct msg_msg *load_msg(const void __user *src, int len)
|
||||
struct msg_msg *load_msg(const void __user *src, size_t len)
|
||||
{
|
||||
struct msg_msg *msg;
|
||||
struct msg_msgseg *seg;
|
||||
int err = -EFAULT;
|
||||
int alen;
|
||||
size_t alen;
|
||||
|
||||
msg = alloc_msg(len);
|
||||
if (msg == NULL)
|
||||
@@ -117,8 +117,8 @@ out_err:
|
||||
struct msg_msg *copy_msg(struct msg_msg *src, struct msg_msg *dst)
|
||||
{
|
||||
struct msg_msgseg *dst_pseg, *src_pseg;
|
||||
int len = src->m_ts;
|
||||
int alen;
|
||||
size_t len = src->m_ts;
|
||||
size_t alen;
|
||||
|
||||
BUG_ON(dst == NULL);
|
||||
if (src->m_ts > dst->m_ts)
|
||||
@@ -147,9 +147,9 @@ struct msg_msg *copy_msg(struct msg_msg *src, struct msg_msg *dst)
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
#endif
|
||||
int store_msg(void __user *dest, struct msg_msg *msg, int len)
|
||||
int store_msg(void __user *dest, struct msg_msg *msg, size_t len)
|
||||
{
|
||||
int alen;
|
||||
size_t alen;
|
||||
struct msg_msgseg *seg;
|
||||
|
||||
alen = min(len, DATALEN_MSG);
|
||||
|
@@ -90,10 +90,8 @@ static int ipc_memory_callback(struct notifier_block *self,
|
||||
* In order not to keep the lock on the hotplug memory chain
|
||||
* for too long, queue a work item that will, when waken up,
|
||||
* activate the ipcns notification chain.
|
||||
* No need to keep several ipc work items on the queue.
|
||||
*/
|
||||
if (!work_pending(&ipc_memory_wq))
|
||||
schedule_work(&ipc_memory_wq);
|
||||
schedule_work(&ipc_memory_wq);
|
||||
break;
|
||||
case MEM_GOING_ONLINE:
|
||||
case MEM_GOING_OFFLINE:
|
||||
|
@@ -148,9 +148,9 @@ int ipc_parse_version (int *cmd);
|
||||
#endif
|
||||
|
||||
extern void free_msg(struct msg_msg *msg);
|
||||
extern struct msg_msg *load_msg(const void __user *src, int len);
|
||||
extern struct msg_msg *load_msg(const void __user *src, size_t len);
|
||||
extern struct msg_msg *copy_msg(struct msg_msg *src, struct msg_msg *dst);
|
||||
extern int store_msg(void __user *dest, struct msg_msg *msg, int len);
|
||||
extern int store_msg(void __user *dest, struct msg_msg *msg, size_t len);
|
||||
|
||||
extern void recompute_msgmni(struct ipc_namespace *);
|
||||
|
||||
|
Reference in New Issue
Block a user