summaryrefslogtreecommitdiff
path: root/ipc/mqueue.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@google.com>2019-08-06 18:34:01 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2019-08-06 18:34:01 +0200
commit886d08593458ade141937c7839fa206ab32f4c5c (patch)
treebce3b1d053520bf3a300e7e53a4b219d065d5c8d /ipc/mqueue.c
parent8eb3d65a5ddc6b3afaa3466e0665c4c0cd6578b1 (diff)
parentd63f4f2588b2a87ac763de9a427816301c5b1caf (diff)
Merge 4.4.188 into android-4.4
Changes in 4.4.188 ARM: riscpc: fix DMA ARM: dts: rockchip: Mark that the rk3288 timer might stop in suspend kernel/module.c: Only return -EEXIST for modules that have finished loading MIPS: lantiq: Fix bitfield masking dmaengine: rcar-dmac: Reject zero-length slave DMA requests fs/adfs: super: fix use-after-free bug btrfs: fix minimum number of chunk errors for DUP ceph: fix improper use of smp_mb__before_atomic() scsi: zfcp: fix GCC compiler warning emitted with -Wmaybe-uninitialized ACPI: fix false-positive -Wuninitialized warning be2net: Signal that the device cannot transmit during reconfiguration x86/apic: Silence -Wtype-limits compiler warnings x86: math-emu: Hide clang warnings for 16-bit overflow mm/cma.c: fail if fixed declaration can't be honored coda: add error handling for fget coda: fix build using bare-metal toolchain uapi linux/coda_psdev.h: move upc_req definition from uapi to kernel side headers ipc/mqueue.c: only perform resource calculation if user valid x86/kvm: Don't call kvm_spurious_fault() from .fixup selinux: fix memory leak in policydb_init() s390/dasd: fix endless loop after read unit address configuration xen/swiotlb: fix condition for calling xen_destroy_contiguous_region() Linux 4.4.188 Change-Id: Id4d8157fe94d0c6be18731ff0612500394eafec2 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r--ipc/mqueue.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 598b8bf8d80c..a94880dc9094 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -371,7 +371,6 @@ static void mqueue_evict_inode(struct inode *inode)
{
struct mqueue_inode_info *info;
struct user_struct *user;
- unsigned long mq_bytes, mq_treesize;
struct ipc_namespace *ipc_ns;
struct msg_msg *msg, *nmsg;
LIST_HEAD(tmp_msg);
@@ -394,16 +393,18 @@ static void mqueue_evict_inode(struct inode *inode)
free_msg(msg);
}
- /* Total amount of bytes accounted for the mqueue */
- mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
- min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
- sizeof(struct posix_msg_tree_node);
-
- mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
- info->attr.mq_msgsize);
-
user = info->user;
if (user) {
+ unsigned long mq_bytes, mq_treesize;
+
+ /* Total amount of bytes accounted for the mqueue */
+ mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
+ min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
+ sizeof(struct posix_msg_tree_node);
+
+ mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
+ info->attr.mq_msgsize);
+
spin_lock(&mq_lock);
user->mq_bytes -= mq_bytes;
/*