summaryrefslogtreecommitdiffstats
path: root/ipc/shm.c
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2016-07-26 18:26:29 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-07-26 19:19:19 -0400
commit4595ef88d136134a9470c955575640f5c96344ed (patch)
tree2bade796ca5b0dc90138726ab7438b4fa136328e /ipc/shm.c
parent988ddb710bb5be27f793b7e50455c769118a389f (diff)
shmem: make shmem_inode_info::lock irq-safe
We are going to need to call shmem_charge() under tree_lock to get accoutning right on collapse of small tmpfs pages into a huge one. The problem is that tree_lock is irq-safe and lockdep is not happy, that we take irq-unsafe lock under irq-safe[1]. Let's convert the lock to irq-safe. [1] https://gist.github.com/kiryl/80c0149e03ed35dfaf26628b8e03cdbc Link: http://lkml.kernel.org/r/1466021202-61880-34-git-send-email-kirill.shutemov@linux.intel.com Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/shm.c')
-rw-r--r--ipc/shm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index 7fa5cbebbf19..dbac8860c721 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -766,10 +766,10 @@ static void shm_add_rss_swap(struct shmid_kernel *shp,
766 } else { 766 } else {
767#ifdef CONFIG_SHMEM 767#ifdef CONFIG_SHMEM
768 struct shmem_inode_info *info = SHMEM_I(inode); 768 struct shmem_inode_info *info = SHMEM_I(inode);
769 spin_lock(&info->lock); 769 spin_lock_irq(&info->lock);
770 *rss_add += inode->i_mapping->nrpages; 770 *rss_add += inode->i_mapping->nrpages;
771 *swp_add += info->swapped; 771 *swp_add += info->swapped;
772 spin_unlock(&info->lock); 772 spin_unlock_irq(&info->lock);
773#else 773#else
774 *rss_add += inode->i_mapping->nrpages; 774 *rss_add += inode->i_mapping->nrpages;
775#endif 775#endif