mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton: "8 fixes" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: mm, numa: really disable NUMA balancing by default on single node machines MAINTAINERS: update Jingoo Han's email address CMA: page_isolation: check buddy before accessing it uidgid: make uid_valid and gid_valid work with !CONFIG_MULTIUSER kernfs: do not account ino_ida allocations to memcg gfp: add __GFP_NOACCOUNT tools/vm: fix page-flags build drivers/rtc/rtc-armada38x.c: remove unused local `flags'
This commit is contained in:
commit
0336104dcb
10
MAINTAINERS
10
MAINTAINERS
@ -1935,7 +1935,7 @@ S: Maintained
|
|||||||
F: drivers/net/wireless/b43legacy/
|
F: drivers/net/wireless/b43legacy/
|
||||||
|
|
||||||
BACKLIGHT CLASS/SUBSYSTEM
|
BACKLIGHT CLASS/SUBSYSTEM
|
||||||
M: Jingoo Han <jg1.han@samsung.com>
|
M: Jingoo Han <jingoohan1@gmail.com>
|
||||||
M: Lee Jones <lee.jones@linaro.org>
|
M: Lee Jones <lee.jones@linaro.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/video/backlight/
|
F: drivers/video/backlight/
|
||||||
@ -3918,7 +3918,7 @@ F: drivers/extcon/
|
|||||||
F: Documentation/extcon/
|
F: Documentation/extcon/
|
||||||
|
|
||||||
EXYNOS DP DRIVER
|
EXYNOS DP DRIVER
|
||||||
M: Jingoo Han <jg1.han@samsung.com>
|
M: Jingoo Han <jingoohan1@gmail.com>
|
||||||
L: dri-devel@lists.freedesktop.org
|
L: dri-devel@lists.freedesktop.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/gpu/drm/exynos/exynos_dp*
|
F: drivers/gpu/drm/exynos/exynos_dp*
|
||||||
@ -7557,7 +7557,7 @@ S: Maintained
|
|||||||
F: drivers/pci/host/*rcar*
|
F: drivers/pci/host/*rcar*
|
||||||
|
|
||||||
PCI DRIVER FOR SAMSUNG EXYNOS
|
PCI DRIVER FOR SAMSUNG EXYNOS
|
||||||
M: Jingoo Han <jg1.han@samsung.com>
|
M: Jingoo Han <jingoohan1@gmail.com>
|
||||||
L: linux-pci@vger.kernel.org
|
L: linux-pci@vger.kernel.org
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
|
L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
|
||||||
@ -7565,7 +7565,7 @@ S: Maintained
|
|||||||
F: drivers/pci/host/pci-exynos.c
|
F: drivers/pci/host/pci-exynos.c
|
||||||
|
|
||||||
PCI DRIVER FOR SYNOPSIS DESIGNWARE
|
PCI DRIVER FOR SYNOPSIS DESIGNWARE
|
||||||
M: Jingoo Han <jg1.han@samsung.com>
|
M: Jingoo Han <jingoohan1@gmail.com>
|
||||||
L: linux-pci@vger.kernel.org
|
L: linux-pci@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/pci/host/*designware*
|
F: drivers/pci/host/*designware*
|
||||||
@ -8521,7 +8521,7 @@ S: Supported
|
|||||||
F: sound/soc/samsung/
|
F: sound/soc/samsung/
|
||||||
|
|
||||||
SAMSUNG FRAMEBUFFER DRIVER
|
SAMSUNG FRAMEBUFFER DRIVER
|
||||||
M: Jingoo Han <jg1.han@samsung.com>
|
M: Jingoo Han <jingoohan1@gmail.com>
|
||||||
L: linux-fbdev@vger.kernel.org
|
L: linux-fbdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/video/fbdev/s3c-fb.c
|
F: drivers/video/fbdev/s3c-fb.c
|
||||||
|
@ -64,7 +64,7 @@ static void rtc_delayed_write(u32 val, struct armada38x_rtc *rtc, int offset)
|
|||||||
static int armada38x_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
static int armada38x_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||||
{
|
{
|
||||||
struct armada38x_rtc *rtc = dev_get_drvdata(dev);
|
struct armada38x_rtc *rtc = dev_get_drvdata(dev);
|
||||||
unsigned long time, time_check, flags;
|
unsigned long time, time_check;
|
||||||
|
|
||||||
mutex_lock(&rtc->mutex_time);
|
mutex_lock(&rtc->mutex_time);
|
||||||
time = readl(rtc->regs + RTC_TIME);
|
time = readl(rtc->regs + RTC_TIME);
|
||||||
|
@ -518,7 +518,14 @@ static struct kernfs_node *__kernfs_new_node(struct kernfs_root *root,
|
|||||||
if (!kn)
|
if (!kn)
|
||||||
goto err_out1;
|
goto err_out1;
|
||||||
|
|
||||||
ret = ida_simple_get(&root->ino_ida, 1, 0, GFP_KERNEL);
|
/*
|
||||||
|
* If the ino of the sysfs entry created for a kmem cache gets
|
||||||
|
* allocated from an ida layer, which is accounted to the memcg that
|
||||||
|
* owns the cache, the memcg will get pinned forever. So do not account
|
||||||
|
* ino ida allocations.
|
||||||
|
*/
|
||||||
|
ret = ida_simple_get(&root->ino_ida, 1, 0,
|
||||||
|
GFP_KERNEL | __GFP_NOACCOUNT);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_out2;
|
goto err_out2;
|
||||||
kn->ino = ret;
|
kn->ino = ret;
|
||||||
|
@ -30,6 +30,7 @@ struct vm_area_struct;
|
|||||||
#define ___GFP_HARDWALL 0x20000u
|
#define ___GFP_HARDWALL 0x20000u
|
||||||
#define ___GFP_THISNODE 0x40000u
|
#define ___GFP_THISNODE 0x40000u
|
||||||
#define ___GFP_RECLAIMABLE 0x80000u
|
#define ___GFP_RECLAIMABLE 0x80000u
|
||||||
|
#define ___GFP_NOACCOUNT 0x100000u
|
||||||
#define ___GFP_NOTRACK 0x200000u
|
#define ___GFP_NOTRACK 0x200000u
|
||||||
#define ___GFP_NO_KSWAPD 0x400000u
|
#define ___GFP_NO_KSWAPD 0x400000u
|
||||||
#define ___GFP_OTHER_NODE 0x800000u
|
#define ___GFP_OTHER_NODE 0x800000u
|
||||||
@ -87,6 +88,7 @@ struct vm_area_struct;
|
|||||||
#define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */
|
#define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */
|
||||||
#define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */
|
#define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */
|
||||||
#define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */
|
#define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */
|
||||||
|
#define __GFP_NOACCOUNT ((__force gfp_t)___GFP_NOACCOUNT) /* Don't account to kmemcg */
|
||||||
#define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */
|
#define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */
|
||||||
|
|
||||||
#define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
|
#define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
|
||||||
|
@ -463,6 +463,8 @@ memcg_kmem_newpage_charge(gfp_t gfp, struct mem_cgroup **memcg, int order)
|
|||||||
if (!memcg_kmem_enabled())
|
if (!memcg_kmem_enabled())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
if (gfp & __GFP_NOACCOUNT)
|
||||||
|
return true;
|
||||||
/*
|
/*
|
||||||
* __GFP_NOFAIL allocations will move on even if charging is not
|
* __GFP_NOFAIL allocations will move on even if charging is not
|
||||||
* possible. Therefore we don't even try, and have this allocation
|
* possible. Therefore we don't even try, and have this allocation
|
||||||
@ -522,6 +524,8 @@ memcg_kmem_get_cache(struct kmem_cache *cachep, gfp_t gfp)
|
|||||||
{
|
{
|
||||||
if (!memcg_kmem_enabled())
|
if (!memcg_kmem_enabled())
|
||||||
return cachep;
|
return cachep;
|
||||||
|
if (gfp & __GFP_NOACCOUNT)
|
||||||
|
return cachep;
|
||||||
if (gfp & __GFP_NOFAIL)
|
if (gfp & __GFP_NOFAIL)
|
||||||
return cachep;
|
return cachep;
|
||||||
if (in_interrupt() || (!current->mm) || (current->flags & PF_KTHREAD))
|
if (in_interrupt() || (!current->mm) || (current->flags & PF_KTHREAD))
|
||||||
|
@ -109,12 +109,12 @@ static inline bool gid_lte(kgid_t left, kgid_t right)
|
|||||||
|
|
||||||
static inline bool uid_valid(kuid_t uid)
|
static inline bool uid_valid(kuid_t uid)
|
||||||
{
|
{
|
||||||
return !uid_eq(uid, INVALID_UID);
|
return __kuid_val(uid) != (uid_t) -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool gid_valid(kgid_t gid)
|
static inline bool gid_valid(kgid_t gid)
|
||||||
{
|
{
|
||||||
return !gid_eq(gid, INVALID_GID);
|
return __kgid_val(gid) != (gid_t) -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_USER_NS
|
#ifdef CONFIG_USER_NS
|
||||||
|
@ -115,7 +115,8 @@
|
|||||||
#define BYTES_PER_POINTER sizeof(void *)
|
#define BYTES_PER_POINTER sizeof(void *)
|
||||||
|
|
||||||
/* GFP bitmask for kmemleak internal allocations */
|
/* GFP bitmask for kmemleak internal allocations */
|
||||||
#define gfp_kmemleak_mask(gfp) (((gfp) & (GFP_KERNEL | GFP_ATOMIC)) | \
|
#define gfp_kmemleak_mask(gfp) (((gfp) & (GFP_KERNEL | GFP_ATOMIC | \
|
||||||
|
__GFP_NOACCOUNT)) | \
|
||||||
__GFP_NORETRY | __GFP_NOMEMALLOC | \
|
__GFP_NORETRY | __GFP_NOMEMALLOC | \
|
||||||
__GFP_NOWARN)
|
__GFP_NOWARN)
|
||||||
|
|
||||||
|
@ -2518,7 +2518,7 @@ static void __init check_numabalancing_enable(void)
|
|||||||
if (numabalancing_override)
|
if (numabalancing_override)
|
||||||
set_numabalancing_state(numabalancing_override == 1);
|
set_numabalancing_state(numabalancing_override == 1);
|
||||||
|
|
||||||
if (nr_node_ids > 1 && !numabalancing_override) {
|
if (num_online_nodes() > 1 && !numabalancing_override) {
|
||||||
pr_info("%s automatic NUMA balancing. "
|
pr_info("%s automatic NUMA balancing. "
|
||||||
"Configure with numa_balancing= or the "
|
"Configure with numa_balancing= or the "
|
||||||
"kernel.numa_balancing sysctl",
|
"kernel.numa_balancing sysctl",
|
||||||
|
@ -101,7 +101,8 @@ void unset_migratetype_isolate(struct page *page, unsigned migratetype)
|
|||||||
buddy_idx = __find_buddy_index(page_idx, order);
|
buddy_idx = __find_buddy_index(page_idx, order);
|
||||||
buddy = page + (buddy_idx - page_idx);
|
buddy = page + (buddy_idx - page_idx);
|
||||||
|
|
||||||
if (!is_migrate_isolate_page(buddy)) {
|
if (pfn_valid_within(page_to_pfn(buddy)) &&
|
||||||
|
!is_migrate_isolate_page(buddy)) {
|
||||||
__isolate_free_page(page, order);
|
__isolate_free_page(page, order);
|
||||||
kernel_map_pages(page, (1 << order), 1);
|
kernel_map_pages(page, (1 << order), 1);
|
||||||
set_page_refcounted(page);
|
set_page_refcounted(page);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
TARGETS=page-types slabinfo page_owner_sort
|
TARGETS=page-types slabinfo page_owner_sort
|
||||||
|
|
||||||
LIB_DIR = ../lib/api
|
LIB_DIR = ../lib/api
|
||||||
LIBS = $(LIB_DIR)/libapikfs.a
|
LIBS = $(LIB_DIR)/libapi.a
|
||||||
|
|
||||||
CC = $(CROSS_COMPILE)gcc
|
CC = $(CROSS_COMPILE)gcc
|
||||||
CFLAGS = -Wall -Wextra -I../lib/
|
CFLAGS = -Wall -Wextra -I../lib/
|
||||||
|
Loading…
Reference in New Issue
Block a user