diff options
| -rw-r--r-- | ipc/mqueue.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index f8eba5e46c5..6828e2c93ce 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -153,7 +153,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,  			info->attr.mq_msgsize = attr->mq_msgsize;  		}  		mq_msg_tblsz = info->attr.mq_maxmsg * sizeof(struct msg_msg *); -		if (mq_msg_tblsz > KMALLOC_MAX_SIZE) +		if (mq_msg_tblsz > PAGE_SIZE)  			info->messages = vmalloc(mq_msg_tblsz);  		else  			info->messages = kmalloc(mq_msg_tblsz, GFP_KERNEL); @@ -266,7 +266,7 @@ static void mqueue_evict_inode(struct inode *inode)  	spin_lock(&info->lock);  	for (i = 0; i < info->attr.mq_curmsgs; i++)  		free_msg(info->messages[i]); -	if (info->attr.mq_maxmsg * sizeof(struct msg_msg *) > KMALLOC_MAX_SIZE) +	if (is_vmalloc_addr(info->messages))  		vfree(info->messages);  	else  		kfree(info->messages);  |