From: akpm@linux-foundation.org
To: akpm@linux-foundation.org, mm-commits@vger.kernel.org
Subject: + linux-next-git-rejects.patch added to -mm tree
Date: Tue, 31 Mar 2020 18:07:40 -0700 [thread overview]
Message-ID: <20200401010740.MfREMVWnU%akpm@linux-foundation.org> (raw)
The patch titled
Subject: linux-next-git-rejects
has been added to the -mm tree. Its filename is
linux-next-git-rejects.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/linux-next-git-rejects.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/linux-next-git-rejects.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: linux-next-git-rejects
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/devicetree/bindings/usb/generic.txt | 4
MAINTAINERS | 3
arch/x86/include/asm/sighandling.h | 4
arch/x86/kernel/Makefile | 3
arch/x86/kvm/vmx/vmx.h | 4
drivers/clocksource/timer-vf-pit.c | 4
drivers/irqchip/irq-xilinx-intc.c | 14
drivers/mtd/spi-nor/Kconfig | 77 --
drivers/mtd/spi-nor/Makefile | 10
drivers/pwm/pwm-omap-dmtimer.c | 32 -
drivers/staging/octeon/ethernet-tx.c | 7
fs/btrfs/disk-io.c | 20
fs/btrfs/extent_io.c | 11
fs/btrfs/transaction.c | 3
include/linux/irqflags.h | 11
include/linux/usb/audio-v2.h | 3
kernel/events/core.c | 20
kernel/irq/handle.c | 4
kernel/rcu/tree.c | 20
kernel/rcu/tree_stall.h | 16
kernel/rcu/update.c | 367 ------------
21 files changed, 637 deletions(-)
--- a/arch/x86/include/asm/sighandling.h~linux-next-git-rejects
+++ a/arch/x86/include/asm/sighandling.h
@@ -14,8 +14,4 @@
X86_EFLAGS_CF | X86_EFLAGS_RF)
void signal_fault(struct pt_regs *regs, void __user *frame, char *where);
-<<<<<<< HEAD
-
-=======
->>>>>>> linux-next/akpm-base
#endif /* _ASM_X86_SIGHANDLING_H */
--- a/arch/x86/kernel/Makefile~linux-next-git-rejects
+++ a/arch/x86/kernel/Makefile
@@ -28,13 +28,10 @@ KASAN_SANITIZE_dumpstack_$(BITS).o :=
KASAN_SANITIZE_stacktrace.o := n
KASAN_SANITIZE_paravirt.o := n
-<<<<<<< HEAD
-=======
# With some compiler versions the generated code results in boot hangs, caused
# by several compilation units. To be safe, disable all instrumentation.
KCSAN_SANITIZE := n
->>>>>>> linux-next/akpm-base
OBJECT_FILES_NON_STANDARD_test_nx.o := y
OBJECT_FILES_NON_STANDARD_paravirt_patch.o := y
--- a/arch/x86/kvm/vmx/vmx.h~linux-next-git-rejects
+++ a/arch/x86/kvm/vmx/vmx.h
@@ -12,10 +12,6 @@
#include "vmcs.h"
extern const u32 vmx_msr_index[];
-<<<<<<< HEAD
-extern u64 host_efer;
-=======
->>>>>>> linux-next/akpm-base
#define MSR_TYPE_R 1
#define MSR_TYPE_W 2
--- a/Documentation/devicetree/bindings/usb/generic.txt~linux-next-git-rejects
+++ a/Documentation/devicetree/bindings/usb/generic.txt
@@ -34,11 +34,7 @@ Optional properties:
- usb-role-switch: boolean, indicates that the device is capable of assigning
the USB data role (USB host or USB device) for a given
USB connector, such as Type-C, Type-B(micro).
-<<<<<<< HEAD
- see connector/usb-connector.txt.
-=======
see connector/usb-connector.yaml.
->>>>>>> linux-next/akpm-base
- role-switch-default-mode: indicating if usb-role-switch is enabled, the
device default operation mode of controller while usb
role is USB_ROLE_NONE. Valid arguments are "host" and
--- a/drivers/clocksource/timer-vf-pit.c~linux-next-git-rejects
+++ a/drivers/clocksource/timer-vf-pit.c
@@ -129,11 +129,7 @@ static int __init pit_clockevent_init(un
__raw_writel(PITTFLG_TIF, clkevt_base + PITTFLG);
BUG_ON(request_irq(irq, pit_timer_interrupt, IRQF_TIMER | IRQF_IRQPOLL,
-<<<<<<< HEAD
- "VF pit timer", &clockevent_pit);
-=======
"VF pit timer", &clockevent_pit));
->>>>>>> linux-next/akpm-base
clockevent_pit.cpumask = cpumask_of(0);
clockevent_pit.irq = irq;
--- a/drivers/irqchip/irq-xilinx-intc.c~linux-next-git-rejects
+++ a/drivers/irqchip/irq-xilinx-intc.c
@@ -111,15 +111,6 @@ static struct irq_chip intc_dev = {
};
static unsigned int xintc_get_irq_local(struct xintc_irq_chip *irqc)
-<<<<<<< HEAD
-{
- unsigned int irq = 0;
- u32 hwirq;
-
- hwirq = xintc_read(irqc, IVR);
- if (hwirq != -1U)
- irq = irq_find_mapping(irqc->root_domain, hwirq);
-=======
{
unsigned int irq = 0;
u32 hwirq;
@@ -141,7 +132,6 @@ unsigned int xintc_get_irq(void)
hwirq = xintc_read(primary_intc, IVR);
if (hwirq != -1U)
irq = irq_find_mapping(primary_intc->root_domain, hwirq);
->>>>>>> linux-next/akpm-base
pr_debug("irq-xilinx: hwirq=%d, irq=%d\n", hwirq, irq);
@@ -274,11 +264,7 @@ static int __init xilinx_intc_of_init(st
}
} else {
primary_intc = irqc;
-<<<<<<< HEAD
- set_handle_irq(xil_intc_handle_irq);
-=======
irq_set_default_host(primary_intc->root_domain);
->>>>>>> linux-next/akpm-base
}
return 0;
--- a/drivers/mtd/spi-nor/Kconfig~linux-next-git-rejects
+++ a/drivers/mtd/spi-nor/Kconfig
@@ -24,83 +24,6 @@ config MTD_SPI_NOR_USE_4K_SECTORS
Please note that some tools/drivers/filesystems may not work with
4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
-<<<<<<< HEAD
-config SPI_ASPEED_SMC
- tristate "Aspeed flash controllers in SPI mode"
- depends on ARCH_ASPEED || COMPILE_TEST
- depends on HAS_IOMEM && OF
- help
- This enables support for the Firmware Memory controller (FMC)
- in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips,
- and support for the SPI flash memory controller (SPI) for
- the host firmware. The implementation only supports SPI NOR.
-
-config SPI_CADENCE_QUADSPI
- tristate "Cadence Quad SPI controller"
- depends on OF && (ARM || ARM64 || COMPILE_TEST)
- help
- Enable support for the Cadence Quad SPI Flash controller.
-
- Cadence QSPI is a specialized controller for connecting an SPI
- Flash over 1/2/4-bit wide bus. Enable this option if you have a
- device with a Cadence QSPI controller and want to access the
- Flash as an MTD device.
-
-config SPI_HISI_SFC
- tristate "Hisilicon FMC SPI-NOR Flash Controller(SFC)"
- depends on ARCH_HISI || COMPILE_TEST
- depends on HAS_IOMEM
- help
- This enables support for HiSilicon FMC SPI-NOR flash controller.
-
-config SPI_NXP_SPIFI
- tristate "NXP SPI Flash Interface (SPIFI)"
- depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
- depends on HAS_IOMEM
- help
- Enable support for the NXP LPC SPI Flash Interface controller.
-
- SPIFI is a specialized controller for connecting serial SPI
- Flash. Enable this option if you have a device with a SPIFI
- controller and want to access the Flash as a mtd device.
-
-config SPI_INTEL_SPI
- tristate
-
-config SPI_INTEL_SPI_PCI
- tristate "Intel PCH/PCU SPI flash PCI driver (DANGEROUS)"
- depends on X86 && PCI
- select SPI_INTEL_SPI
- help
- This enables PCI support for the Intel PCH/PCU SPI controller in
- master mode. This controller is present in modern Intel hardware
- and is used to hold BIOS and other persistent settings. Using
- this driver it is possible to upgrade BIOS directly from Linux.
-
- Say N here unless you know what you are doing. Overwriting the
- SPI flash may render the system unbootable.
-
- To compile this driver as a module, choose M here: the module
- will be called intel-spi-pci.
-
-config SPI_INTEL_SPI_PLATFORM
- tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
- depends on X86
- select SPI_INTEL_SPI
- help
- This enables platform support for the Intel PCH/PCU SPI
- controller in master mode. This controller is present in modern
- Intel hardware and is used to hold BIOS and other persistent
- settings. Using this driver it is possible to upgrade BIOS
- directly from Linux.
-
- Say N here unless you know what you are doing. Overwriting the
- SPI flash may render the system unbootable.
-
- To compile this driver as a module, choose M here: the module
- will be called intel-spi-platform.
-=======
source "drivers/mtd/spi-nor/controllers/Kconfig"
->>>>>>> linux-next/akpm-base
endif # MTD_SPI_NOR
--- a/drivers/mtd/spi-nor/Makefile~linux-next-git-rejects
+++ a/drivers/mtd/spi-nor/Makefile
@@ -18,13 +18,3 @@ spi-nor-objs += winbond.o
spi-nor-objs += xilinx.o
spi-nor-objs += xmc.o
obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o
-<<<<<<< HEAD
-obj-$(CONFIG_SPI_ASPEED_SMC) += aspeed-smc.o
-obj-$(CONFIG_SPI_CADENCE_QUADSPI) += cadence-quadspi.o
-obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o
-obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o
-obj-$(CONFIG_SPI_INTEL_SPI) += intel-spi.o
-obj-$(CONFIG_SPI_INTEL_SPI_PCI) += intel-spi-pci.o
-obj-$(CONFIG_SPI_INTEL_SPI_PLATFORM) += intel-spi-platform.o
-=======
->>>>>>> linux-next/akpm-base
--- a/drivers/pwm/pwm-omap-dmtimer.c~linux-next-git-rejects
+++ a/drivers/pwm/pwm-omap-dmtimer.c
@@ -228,38 +228,14 @@ static int pwm_omap_dmtimer_config(struc
load_value = (DM_TIMER_MAX - period_cycles) + 1;
match_value = load_value + duty_cycles - 1;
-<<<<<<< HEAD
- /*
- * We MUST stop the associated dual-mode timer before attempting to
- * write its registers, but calls to omap_dm_timer_start/stop must
- * be balanced so check if timer is active before calling timer_stop.
- */
- timer_active = pm_runtime_active(&omap->dm_timer_pdev->dev);
- if (timer_active)
- omap->pdata->stop(omap->dm_timer);
-
-=======
->>>>>>> linux-next/akpm-base
omap->pdata->set_load(omap->dm_timer, load_value);
omap->pdata->set_match(omap->dm_timer, true, match_value);
dev_dbg(chip->dev, "load value: %#08x (%d), match value: %#08x (%d)\n",
load_value, load_value, match_value, match_value);
-<<<<<<< HEAD
- omap->pdata->set_pwm(omap->dm_timer,
- pwm_get_polarity(pwm) == PWM_POLARITY_INVERSED,
- true,
- PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE,
- true);
-
- /* If config was called while timer was running it must be reenabled. */
- if (timer_active)
- pwm_omap_dmtimer_start(omap);
-=======
return 0;
}
->>>>>>> linux-next/akpm-base
/**
* pwm_omap_dmtimer_set_polarity() - Changes the polarity of the pwm dm timer.
@@ -304,13 +280,6 @@ static int pwm_omap_dmtimer_apply(struct
int ret = 0;
mutex_lock(&omap->mutex);
-<<<<<<< HEAD
- omap->pdata->set_pwm(omap->dm_timer,
- polarity == PWM_POLARITY_INVERSED,
- true,
- PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE,
- true);
-=======
if (pwm_omap_dmtimer_is_enabled(omap) && !state->enabled) {
omap->pdata->stop(omap->dm_timer);
@@ -335,7 +304,6 @@ static int pwm_omap_dmtimer_apply(struct
}
unlock_mutex:
->>>>>>> linux-next/akpm-base
mutex_unlock(&omap->mutex);
return ret;
--- a/drivers/staging/octeon/ethernet-tx.c~linux-next-git-rejects
+++ a/drivers/staging/octeon/ethernet-tx.c
@@ -352,17 +352,10 @@ int cvm_oct_xmit(struct sk_buff *skb, st
skb_dst_set(skb, NULL);
skb_ext_reset(skb);
nf_reset_ct(skb);
-<<<<<<< HEAD
- skb_reset_redirect(skb);
-
-#ifdef CONFIG_NET_SCHED
- skb->tc_index = 0;
-=======
#ifdef CONFIG_NET_SCHED
skb->tc_index = 0;
skb_reset_redirect(skb);
->>>>>>> linux-next/akpm-base
#endif /* CONFIG_NET_SCHED */
#endif /* REUSE_SKBUFFS_WITHOUT_FREE */
--- a/fs/btrfs/disk-io.c~linux-next-git-rejects
+++ a/fs/btrfs/disk-io.c
@@ -2702,10 +2702,7 @@ void btrfs_init_fs_info(struct btrfs_fs_
#endif
btrfs_init_balance(fs_info);
btrfs_init_async_reclaim_work(&fs_info->async_reclaim_work);
-<<<<<<< HEAD
-=======
btrfs_init_async_delayed_ref_work(fs_info);
->>>>>>> linux-next/akpm-base
spin_lock_init(&fs_info->block_group_cache_lock);
fs_info->block_group_cache_tree = RB_ROOT;
@@ -2847,7 +2844,6 @@ int __cold open_ctree(struct super_block
if (ret) {
err = ret;
goto fail;
-<<<<<<< HEAD
}
/* These need to be init'ed before we start creating inodes and such. */
@@ -2862,22 +2858,6 @@ int __cold open_ctree(struct super_block
goto fail;
}
-=======
- }
-
- /* These need to be init'ed before we start creating inodes and such. */
- tree_root = btrfs_alloc_root(fs_info, BTRFS_ROOT_TREE_OBJECTID,
- GFP_KERNEL);
- fs_info->tree_root = tree_root;
- chunk_root = btrfs_alloc_root(fs_info, BTRFS_CHUNK_TREE_OBJECTID,
- GFP_KERNEL);
- fs_info->chunk_root = chunk_root;
- if (!tree_root || !chunk_root) {
- err = -ENOMEM;
- goto fail;
- }
-
->>>>>>> linux-next/akpm-base
fs_info->btree_inode = new_inode(sb);
if (!fs_info->btree_inode) {
err = -ENOMEM;
--- a/fs/btrfs/extent_io.c~linux-next-git-rejects
+++ a/fs/btrfs/extent_io.c
@@ -63,7 +63,6 @@ void btrfs_extent_buffer_leak_debug_chec
{
struct extent_buffer *eb;
unsigned long flags;
-<<<<<<< HEAD
/*
* If we didn't get into open_ctree our allocated_ebs will not be
@@ -72,16 +71,6 @@ void btrfs_extent_buffer_leak_debug_chec
if (!fs_info->allocated_ebs.next)
return;
-=======
-
- /*
- * If we didn't get into open_ctree our allocated_ebs will not be
- * initialized, so just skip this.
- */
- if (!fs_info->allocated_ebs.next)
- return;
-
->>>>>>> linux-next/akpm-base
spin_lock_irqsave(&fs_info->eb_leak_lock, flags);
while (!list_empty(&fs_info->allocated_ebs)) {
eb = list_first_entry(&fs_info->allocated_ebs,
--- a/fs/btrfs/transaction.c~linux-next-git-rejects
+++ a/fs/btrfs/transaction.c
@@ -955,10 +955,7 @@ static int __btrfs_end_transaction(struc
if (throttle)
btrfs_run_delayed_iputs(info);
-<<<<<<< HEAD
-=======
total_delayed_refs = trans->total_delayed_refs;
->>>>>>> linux-next/akpm-base
if (TRANS_ABORTED(trans) ||
test_bit(BTRFS_FS_STATE_ERROR, &info->fs_state)) {
wake_up_process(info->transaction_kthread);
--- a/include/linux/irqflags.h~linux-next-git-rejects
+++ a/include/linux/irqflags.h
@@ -40,11 +40,7 @@ do { \
if (!current->hardirq_context++) \
current->hardirq_threaded = 0; \
} while (0)
-<<<<<<< HEAD
-# define lockdep_hardirq_threaded() \
-=======
# define trace_hardirq_threaded() \
->>>>>>> linux-next/akpm-base
do { \
current->hardirq_threaded = 1; \
} while (0)
@@ -97,19 +93,12 @@ do { \
#else
# define trace_hardirqs_on() do { } while (0)
# define trace_hardirqs_off() do { } while (0)
-<<<<<<< HEAD
-=======
# define trace_hardirq_threaded() do { } while (0)
->>>>>>> linux-next/akpm-base
# define lockdep_hardirq_context(p) 0
# define lockdep_softirq_context(p) 0
# define lockdep_hardirqs_enabled(p) 0
# define lockdep_softirqs_enabled(p) 0
# define lockdep_hardirq_enter() do { } while (0)
-<<<<<<< HEAD
-# define lockdep_hardirq_threaded() do { } while (0)
-=======
->>>>>>> linux-next/akpm-base
# define lockdep_hardirq_exit() do { } while (0)
# define lockdep_softirq_enter() do { } while (0)
# define lockdep_softirq_exit() do { } while (0)
--- a/include/linux/usb/audio-v2.h~linux-next-git-rejects
+++ a/include/linux/usb/audio-v2.h
@@ -154,8 +154,6 @@ struct uac2_feature_unit_descriptor {
/* bmaControls is actually u32,
* but u8 is needed for the hybrid parser */
__u8 bmaControls[]; /* variable length */
-<<<<<<< HEAD
-=======
} __attribute__((packed));
/* 4.7.2.10 Effect Unit Descriptor */
@@ -168,7 +166,6 @@ struct uac2_effect_unit_descriptor {
__le16 wEffectType;
__u8 bSourceID;
__u8 bmaControls[]; /* variable length */
->>>>>>> linux-next/akpm-base
} __attribute__((packed));
/* 4.9.2 Class-Specific AS Interface Descriptor */
--- a/kernel/events/core.c~linux-next-git-rejects
+++ a/kernel/events/core.c
@@ -3552,15 +3552,9 @@ static noinline int visit_groups_merge(s
.nr = 0,
.size = cpuctx->heap_size,
};
-<<<<<<< HEAD
lockdep_assert_held(&cpuctx->ctx.lock);
-=======
-
- lockdep_assert_held(&cpuctx->ctx.lock);
-
->>>>>>> linux-next/akpm-base
#ifdef CONFIG_CGROUP_PERF
if (cpuctx->cgrp)
css = &cpuctx->cgrp->css;
@@ -3633,17 +3627,10 @@ ctx_pinned_sched_in(struct perf_event_co
struct perf_cpu_context *cpuctx)
{
int can_add_hw = 1;
-<<<<<<< HEAD
if (ctx != &cpuctx->ctx)
cpuctx = NULL;
-=======
-
- if (ctx != &cpuctx->ctx)
- cpuctx = NULL;
-
->>>>>>> linux-next/akpm-base
visit_groups_merge(cpuctx, &ctx->pinned_groups,
smp_processor_id(),
merge_sched_in, &can_add_hw);
@@ -3654,17 +3641,10 @@ ctx_flexible_sched_in(struct perf_event_
struct perf_cpu_context *cpuctx)
{
int can_add_hw = 1;
-<<<<<<< HEAD
-
- if (ctx != &cpuctx->ctx)
- cpuctx = NULL;
-
-=======
if (ctx != &cpuctx->ctx)
cpuctx = NULL;
->>>>>>> linux-next/akpm-base
visit_groups_merge(cpuctx, &ctx->flexible_groups,
smp_processor_id(),
merge_sched_in, &can_add_hw);
--- a/kernel/irq/handle.c~linux-next-git-rejects
+++ a/kernel/irq/handle.c
@@ -150,11 +150,7 @@ irqreturn_t __handle_irq_event_percpu(st
*/
if (irq_settings_can_thread(desc) &&
!(action->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT)))
-<<<<<<< HEAD
- lockdep_hardirq_threaded();
-=======
trace_hardirq_threaded();
->>>>>>> linux-next/akpm-base
trace_irq_handler_entry(irq, action);
res = action->handler(irq, action->dev_id);
--- a/kernel/rcu/tree.c~linux-next-git-rejects
+++ a/kernel/rcu/tree.c
@@ -867,22 +867,16 @@ static __always_inline void rcu_nmi_ente
rdp->dynticks_nmi_nesting == DYNTICK_IRQ_NONIDLE &&
READ_ONCE(rdp->rcu_urgent_qs) &&
!READ_ONCE(rdp->rcu_forced_tick)) {
-<<<<<<< HEAD
-=======
// We get here only if we had already exited the extended
// quiescent state and this was an interrupt (not an NMI).
// Therefore, (1) RCU is already watching and (2) The fact
// that we are in an interrupt handler and that the rcu_node
// lock is an irq-disabled lock prevents self-deadlock.
// So we can safely recheck under the lock.
->>>>>>> linux-next/akpm-base
raw_spin_lock_rcu_node(rdp->mynode);
if (rdp->rcu_urgent_qs && !rdp->rcu_forced_tick) {
-<<<<<<< HEAD
-=======
// A nohz_full CPU is in the kernel and RCU
// needs a quiescent state. Turn on the tick!
->>>>>>> linux-next/akpm-base
WRITE_ONCE(rdp->rcu_forced_tick, true);
tick_dep_set_cpu(rdp->cpu, TICK_DEP_BIT_RCU);
}
@@ -1268,11 +1262,7 @@ static bool rcu_start_this_gp(struct rcu
trace_rcu_this_gp(rnp, rdp, gp_seq_req, TPS("NoGPkthread"));
goto unlock_out;
}
-<<<<<<< HEAD
- trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, TPS("newreq"));
-=======
trace_rcu_grace_period(rcu_state.name, data_race(rcu_state.gp_seq), TPS("newreq"));
->>>>>>> linux-next/akpm-base
ret = true; /* Caller must wake GP kthread. */
unlock_out:
/* Push furthest requested GP to leaf node and rcu_data structure. */
@@ -1747,15 +1737,11 @@ static void rcu_gp_fqs_loop(void)
trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq,
TPS("fqsstart"));
rcu_gp_fqs(first_gp_fqs);
-<<<<<<< HEAD
- first_gp_fqs = false;
-=======
gf = 0;
if (first_gp_fqs) {
first_gp_fqs = false;
gf = rcu_state.cbovld ? RCU_GP_FLAG_OVLD : 0;
}
->>>>>>> linux-next/akpm-base
trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq,
TPS("fqsend"));
cond_resched_tasks_rcu_qs();
@@ -2998,11 +2984,8 @@ static inline bool queue_kfree_rcu_work(
krcp->head = NULL;
}
-<<<<<<< HEAD
-=======
WRITE_ONCE(krcp->count, 0);
->>>>>>> linux-next/akpm-base
/*
* One work is per one batch, so there are two "free channels",
* "bhead_free" and "head_free" the batch can handle. It can be
@@ -3138,11 +3121,8 @@ void kfree_call_rcu(struct rcu_head *hea
head->next = krcp->head;
krcp->head = head;
}
-<<<<<<< HEAD
-=======
WRITE_ONCE(krcp->count, krcp->count + 1);
->>>>>>> linux-next/akpm-base
// Set timer to drain after KFREE_DRAIN_JIFFIES.
if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
--- a/kernel/rcu/tree_stall.h~linux-next-git-rejects
+++ a/kernel/rcu/tree_stall.h
@@ -621,29 +621,17 @@ void show_rcu_gp_kthreads(void)
pr_info("%s: wait state: %s(%d) ->state: %#lx delta ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_flags %#x\n",
rcu_state.name, gp_state_getname(rcu_state.gp_state),
rcu_state.gp_state, t ? t->state : 0x1ffffL,
-<<<<<<< HEAD
- ja, jr, jw, (long)READ_ONCE(rcu_state.gp_wake_seq),
- (long)READ_ONCE(rcu_state.gp_seq),
- (long)READ_ONCE(rcu_get_root()->gp_seq_needed),
- READ_ONCE(rcu_state.gp_flags));
-=======
ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
(long)data_race(rcu_state.gp_seq),
(long)data_race(rcu_get_root()->gp_seq_needed),
data_race(rcu_state.gp_flags));
->>>>>>> linux-next/akpm-base
rcu_for_each_node_breadth_first(rnp) {
if (ULONG_CMP_GE(READ_ONCE(rcu_state.gp_seq),
READ_ONCE(rnp->gp_seq_needed)))
continue;
pr_info("\trcu_node %d:%d ->gp_seq %ld ->gp_seq_needed %ld\n",
-<<<<<<< HEAD
- rnp->grplo, rnp->grphi, (long)READ_ONCE(rnp->gp_seq),
- (long)READ_ONCE(rnp->gp_seq_needed));
-=======
rnp->grplo, rnp->grphi, (long)data_race(rnp->gp_seq),
(long)data_race(rnp->gp_seq_needed));
->>>>>>> linux-next/akpm-base
if (!rcu_is_leaf_node(rnp))
continue;
for_each_leaf_node_possible_cpu(rnp, cpu) {
@@ -653,11 +641,7 @@ void show_rcu_gp_kthreads(void)
READ_ONCE(rdp->gp_seq_needed)))
continue;
pr_info("\tcpu %d ->gp_seq_needed %ld\n",
-<<<<<<< HEAD
- cpu, (long)READ_ONCE(rdp->gp_seq_needed));
-=======
cpu, (long)data_race(rdp->gp_seq_needed));
->>>>>>> linux-next/akpm-base
}
}
for_each_possible_cpu(cpu) {
--- a/kernel/rcu/update.c~linux-next-git-rejects
+++ a/kernel/rcu/update.c
@@ -501,373 +501,6 @@ module_param(rcu_cpu_stall_timeout, int,
int rcu_cpu_stall_suppress_at_boot __read_mostly; // !0 = suppress boot stalls.
EXPORT_SYMBOL_GPL(rcu_cpu_stall_suppress_at_boot);
module_param(rcu_cpu_stall_suppress_at_boot, int, 0444);
-<<<<<<< HEAD
-
-#ifdef CONFIG_TASKS_RCU
-
-/*
- * Simple variant of RCU whose quiescent states are voluntary context
- * switch, cond_resched_rcu_qs(), user-space execution, and idle.
- * As such, grace periods can take one good long time. There are no
- * read-side primitives similar to rcu_read_lock() and rcu_read_unlock()
- * because this implementation is intended to get the system into a safe
- * state for some of the manipulations involved in tracing and the like.
- * Finally, this implementation does not support high call_rcu_tasks()
- * rates from multiple CPUs. If this is required, per-CPU callback lists
- * will be needed.
- */
-
-/* Global list of callbacks and associated lock. */
-static struct rcu_head *rcu_tasks_cbs_head;
-static struct rcu_head **rcu_tasks_cbs_tail = &rcu_tasks_cbs_head;
-static DECLARE_WAIT_QUEUE_HEAD(rcu_tasks_cbs_wq);
-static DEFINE_RAW_SPINLOCK(rcu_tasks_cbs_lock);
-
-/* Track exiting tasks in order to allow them to be waited for. */
-DEFINE_STATIC_SRCU(tasks_rcu_exit_srcu);
-
-/* Control stall timeouts. Disable with <= 0, otherwise jiffies till stall. */
-#define RCU_TASK_STALL_TIMEOUT (HZ * 60 * 10)
-static int rcu_task_stall_timeout __read_mostly = RCU_TASK_STALL_TIMEOUT;
-module_param(rcu_task_stall_timeout, int, 0644);
-
-static struct task_struct *rcu_tasks_kthread_ptr;
-
-/**
- * call_rcu_tasks() - Queue an RCU for invocation task-based grace period
- * @rhp: structure to be used for queueing the RCU updates.
- * @func: actual callback function to be invoked after the grace period
- *
- * The callback function will be invoked some time after a full grace
- * period elapses, in other words after all currently executing RCU
- * read-side critical sections have completed. call_rcu_tasks() assumes
- * that the read-side critical sections end at a voluntary context
- * switch (not a preemption!), cond_resched_rcu_qs(), entry into idle,
- * or transition to usermode execution. As such, there are no read-side
- * primitives analogous to rcu_read_lock() and rcu_read_unlock() because
- * this primitive is intended to determine that all tasks have passed
- * through a safe state, not so much for data-strcuture synchronization.
- *
- * See the description of call_rcu() for more detailed information on
- * memory ordering guarantees.
- */
-void call_rcu_tasks(struct rcu_head *rhp, rcu_callback_t func)
-{
- unsigned long flags;
- bool needwake;
-
- rhp->next = NULL;
- rhp->func = func;
- raw_spin_lock_irqsave(&rcu_tasks_cbs_lock, flags);
- needwake = !rcu_tasks_cbs_head;
- WRITE_ONCE(*rcu_tasks_cbs_tail, rhp);
- rcu_tasks_cbs_tail = &rhp->next;
- raw_spin_unlock_irqrestore(&rcu_tasks_cbs_lock, flags);
- /* We can't create the thread unless interrupts are enabled. */
- if (needwake && READ_ONCE(rcu_tasks_kthread_ptr))
- wake_up(&rcu_tasks_cbs_wq);
-}
-EXPORT_SYMBOL_GPL(call_rcu_tasks);
-
-/**
- * synchronize_rcu_tasks - wait until an rcu-tasks grace period has elapsed.
- *
- * Control will return to the caller some time after a full rcu-tasks
- * grace period has elapsed, in other words after all currently
- * executing rcu-tasks read-side critical sections have elapsed. These
- * read-side critical sections are delimited by calls to schedule(),
- * cond_resched_tasks_rcu_qs(), idle execution, userspace execution, calls
- * to synchronize_rcu_tasks(), and (in theory, anyway) cond_resched().
- *
- * This is a very specialized primitive, intended only for a few uses in
- * tracing and other situations requiring manipulation of function
- * preambles and profiling hooks. The synchronize_rcu_tasks() function
- * is not (yet) intended for heavy use from multiple CPUs.
- *
- * Note that this guarantee implies further memory-ordering guarantees.
- * On systems with more than one CPU, when synchronize_rcu_tasks() returns,
- * each CPU is guaranteed to have executed a full memory barrier since the
- * end of its last RCU-tasks read-side critical section whose beginning
- * preceded the call to synchronize_rcu_tasks(). In addition, each CPU
- * having an RCU-tasks read-side critical section that extends beyond
- * the return from synchronize_rcu_tasks() is guaranteed to have executed
- * a full memory barrier after the beginning of synchronize_rcu_tasks()
- * and before the beginning of that RCU-tasks read-side critical section.
- * Note that these guarantees include CPUs that are offline, idle, or
- * executing in user mode, as well as CPUs that are executing in the kernel.
- *
- * Furthermore, if CPU A invoked synchronize_rcu_tasks(), which returned
- * to its caller on CPU B, then both CPU A and CPU B are guaranteed
- * to have executed a full memory barrier during the execution of
- * synchronize_rcu_tasks() -- even if CPU A and CPU B are the same CPU
- * (but again only if the system has more than one CPU).
- */
-void synchronize_rcu_tasks(void)
-{
- /* Complain if the scheduler has not started. */
- RCU_LOCKDEP_WARN(rcu_scheduler_active == RCU_SCHEDULER_INACTIVE,
- "synchronize_rcu_tasks called too soon");
-
- /* Wait for the grace period. */
- wait_rcu_gp(call_rcu_tasks);
-}
-EXPORT_SYMBOL_GPL(synchronize_rcu_tasks);
-
-/**
- * rcu_barrier_tasks - Wait for in-flight call_rcu_tasks() callbacks.
- *
- * Although the current implementation is guaranteed to wait, it is not
- * obligated to, for example, if there are no pending callbacks.
- */
-void rcu_barrier_tasks(void)
-{
- /* There is only one callback queue, so this is easy. ;-) */
- synchronize_rcu_tasks();
-}
-EXPORT_SYMBOL_GPL(rcu_barrier_tasks);
-
-/* See if tasks are still holding out, complain if so. */
-static void check_holdout_task(struct task_struct *t,
- bool needreport, bool *firstreport)
-{
- int cpu;
-
- if (!READ_ONCE(t->rcu_tasks_holdout) ||
- t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) ||
- !READ_ONCE(t->on_rq) ||
- (IS_ENABLED(CONFIG_NO_HZ_FULL) &&
- !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) {
- WRITE_ONCE(t->rcu_tasks_holdout, false);
- list_del_init(&t->rcu_tasks_holdout_list);
- put_task_struct(t);
- return;
- }
- rcu_request_urgent_qs_task(t);
- if (!needreport)
- return;
- if (*firstreport) {
- pr_err("INFO: rcu_tasks detected stalls on tasks:\n");
- *firstreport = false;
- }
- cpu = task_cpu(t);
- pr_alert("%p: %c%c nvcsw: %lu/%lu holdout: %d idle_cpu: %d/%d\n",
- t, ".I"[is_idle_task(t)],
- "N."[cpu < 0 || !tick_nohz_full_cpu(cpu)],
- t->rcu_tasks_nvcsw, t->nvcsw, t->rcu_tasks_holdout,
- t->rcu_tasks_idle_cpu, cpu);
- sched_show_task(t);
-}
-
-/* RCU-tasks kthread that detects grace periods and invokes callbacks. */
-static int __noreturn rcu_tasks_kthread(void *arg)
-{
- unsigned long flags;
- struct task_struct *g, *t;
- unsigned long lastreport;
- struct rcu_head *list;
- struct rcu_head *next;
- LIST_HEAD(rcu_tasks_holdouts);
- int fract;
-
- /* Run on housekeeping CPUs by default. Sysadm can move if desired. */
- housekeeping_affine(current, HK_FLAG_RCU);
-
- /*
- * Each pass through the following loop makes one check for
- * newly arrived callbacks, and, if there are some, waits for
- * one RCU-tasks grace period and then invokes the callbacks.
- * This loop is terminated by the system going down. ;-)
- */
- for (;;) {
-
- /* Pick up any new callbacks. */
- raw_spin_lock_irqsave(&rcu_tasks_cbs_lock, flags);
- list = rcu_tasks_cbs_head;
- rcu_tasks_cbs_head = NULL;
- rcu_tasks_cbs_tail = &rcu_tasks_cbs_head;
- raw_spin_unlock_irqrestore(&rcu_tasks_cbs_lock, flags);
-
- /* If there were none, wait a bit and start over. */
- if (!list) {
- wait_event_interruptible(rcu_tasks_cbs_wq,
- READ_ONCE(rcu_tasks_cbs_head));
- if (!rcu_tasks_cbs_head) {
- WARN_ON(signal_pending(current));
- schedule_timeout_interruptible(HZ/10);
- }
- continue;
- }
-
- /*
- * Wait for all pre-existing t->on_rq and t->nvcsw
- * transitions to complete. Invoking synchronize_rcu()
- * suffices because all these transitions occur with
- * interrupts disabled. Without this synchronize_rcu(),
- * a read-side critical section that started before the
- * grace period might be incorrectly seen as having started
- * after the grace period.
- *
- * This synchronize_rcu() also dispenses with the
- * need for a memory barrier on the first store to
- * ->rcu_tasks_holdout, as it forces the store to happen
- * after the beginning of the grace period.
- */
- synchronize_rcu();
-
- /*
- * There were callbacks, so we need to wait for an
- * RCU-tasks grace period. Start off by scanning
- * the task list for tasks that are not already
- * voluntarily blocked. Mark these tasks and make
- * a list of them in rcu_tasks_holdouts.
- */
- rcu_read_lock();
- for_each_process_thread(g, t) {
- if (t != current && READ_ONCE(t->on_rq) &&
- !is_idle_task(t)) {
- get_task_struct(t);
- t->rcu_tasks_nvcsw = READ_ONCE(t->nvcsw);
- WRITE_ONCE(t->rcu_tasks_holdout, true);
- list_add(&t->rcu_tasks_holdout_list,
- &rcu_tasks_holdouts);
- }
- }
- rcu_read_unlock();
-
- /*
- * Wait for tasks that are in the process of exiting.
- * This does only part of the job, ensuring that all
- * tasks that were previously exiting reach the point
- * where they have disabled preemption, allowing the
- * later synchronize_rcu() to finish the job.
- */
- synchronize_srcu(&tasks_rcu_exit_srcu);
-
- /*
- * Each pass through the following loop scans the list
- * of holdout tasks, removing any that are no longer
- * holdouts. When the list is empty, we are done.
- */
- lastreport = jiffies;
-
- /* Start off with HZ/10 wait and slowly back off to 1 HZ wait*/
- fract = 10;
-
- for (;;) {
- bool firstreport;
- bool needreport;
- int rtst;
- struct task_struct *t1;
-
- if (list_empty(&rcu_tasks_holdouts))
- break;
-
- /* Slowly back off waiting for holdouts */
- schedule_timeout_interruptible(HZ/fract);
-
- if (fract > 1)
- fract--;
-
- rtst = READ_ONCE(rcu_task_stall_timeout);
- needreport = rtst > 0 &&
- time_after(jiffies, lastreport + rtst);
- if (needreport)
- lastreport = jiffies;
- firstreport = true;
- WARN_ON(signal_pending(current));
- list_for_each_entry_safe(t, t1, &rcu_tasks_holdouts,
- rcu_tasks_holdout_list) {
- check_holdout_task(t, needreport, &firstreport);
- cond_resched();
- }
- }
-
- /*
- * Because ->on_rq and ->nvcsw are not guaranteed
- * to have a full memory barriers prior to them in the
- * schedule() path, memory reordering on other CPUs could
- * cause their RCU-tasks read-side critical sections to
- * extend past the end of the grace period. However,
- * because these ->nvcsw updates are carried out with
- * interrupts disabled, we can use synchronize_rcu()
- * to force the needed ordering on all such CPUs.
- *
- * This synchronize_rcu() also confines all
- * ->rcu_tasks_holdout accesses to be within the grace
- * period, avoiding the need for memory barriers for
- * ->rcu_tasks_holdout accesses.
- *
- * In addition, this synchronize_rcu() waits for exiting
- * tasks to complete their final preempt_disable() region
- * of execution, cleaning up after the synchronize_srcu()
- * above.
- */
- synchronize_rcu();
-
- /* Invoke the callbacks. */
- while (list) {
- next = list->next;
- local_bh_disable();
- list->func(list);
- local_bh_enable();
- list = next;
- cond_resched();
- }
- /* Paranoid sleep to keep this from entering a tight loop */
- schedule_timeout_uninterruptible(HZ/10);
- }
-}
-
-/* Spawn rcu_tasks_kthread() at core_initcall() time. */
-static int __init rcu_spawn_tasks_kthread(void)
-{
- struct task_struct *t;
-
- t = kthread_run(rcu_tasks_kthread, NULL, "rcu_tasks_kthread");
- if (WARN_ONCE(IS_ERR(t), "%s: Could not start Tasks-RCU grace-period kthread, OOM is now expected behavior\n", __func__))
- return 0;
- smp_mb(); /* Ensure others see full kthread. */
- WRITE_ONCE(rcu_tasks_kthread_ptr, t);
- return 0;
-}
-core_initcall(rcu_spawn_tasks_kthread);
-
-/* Do the srcu_read_lock() for the above synchronize_srcu(). */
-void exit_tasks_rcu_start(void) __acquires(&tasks_rcu_exit_srcu)
-{
- preempt_disable();
- current->rcu_tasks_idx = __srcu_read_lock(&tasks_rcu_exit_srcu);
- preempt_enable();
-}
-
-/* Do the srcu_read_unlock() for the above synchronize_srcu(). */
-void exit_tasks_rcu_finish(void) __releases(&tasks_rcu_exit_srcu)
-{
- preempt_disable();
- __srcu_read_unlock(&tasks_rcu_exit_srcu, current->rcu_tasks_idx);
- preempt_enable();
-}
-
-#endif /* #ifdef CONFIG_TASKS_RCU */
-
-#ifndef CONFIG_TINY_RCU
-
-/*
- * Print any non-default Tasks RCU settings.
- */
-static void __init rcu_tasks_bootup_oddness(void)
-{
-#ifdef CONFIG_TASKS_RCU
- if (rcu_task_stall_timeout != RCU_TASK_STALL_TIMEOUT)
- pr_info("\tTasks-RCU CPU stall warnings timeout set to %d (rcu_task_stall_timeout).\n", rcu_task_stall_timeout);
- else
- pr_info("\tTasks RCU enabled.\n");
-#endif /* #ifdef CONFIG_TASKS_RCU */
-}
-
-#endif /* #ifndef CONFIG_TINY_RCU */
-=======
->>>>>>> linux-next/akpm-base
#ifdef CONFIG_PROVE_RCU
--- a/MAINTAINERS~linux-next-git-rejects
+++ a/MAINTAINERS
@@ -6389,8 +6389,6 @@ F: include/trace/events/mdio.h
F: include/uapi/linux/mdio.h
F: include/uapi/linux/mii.h
-<<<<<<< HEAD
-=======
EXFAT FILE SYSTEM
M: Namjae Jeon <namjae.jeon@samsung.com>
M: Sungjong Seo <sj1557.seo@samsung.com>
@@ -6398,7 +6396,6 @@ L: linux-fsdevel@vger.kernel.org
S: Maintained
F: fs/exfat/
->>>>>>> linux-next/akpm-base
EXT2 FILE SYSTEM
M: Jan Kara <jack@suse.com>
L: linux-ext4@vger.kernel.org
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-gup-track-foll_pin-pages-fix-2-fix.patch
mm-swap-make-page_evictable-inline-fix.patch
memcg-optimize-memorynuma_stat-like-memorystat-fix.patch
mm-mmap-add-trace-point-of-vm_unmapped_area-fix.patch
selftest-add-mremap_dontunmap-selftest-fix.patch
selftest-add-mremap_dontunmap-selftest-v7-checkpatch-fixes.patch
hugetlb_cgroup-add-reservation-accounting-for-private-mappings-fix.patch
hugetlb_cgroup-add-accounting-for-shared-mappings-fix.patch
mm-hugetlbc-fix-printk-format-warning-for-32-bit-phys_addr_t-fix.patch
mm-migratec-migrate-pg_readahead-flag-fix.patch
hv_balloon-dont-check-for-memhp_auto_online-manually-fix.patch
proc-faster-open-read-close-with-permanent-files-checkpatch-fixes.patch
linux-next-rejects.patch
linux-next-fix.patch
linux-next-git-rejects.patch
drivers-net-ethernet-mellanox-mlx4-crdumpc-fix-build-with-gcc-720.patch
mm-add-vm_insert_pages-fix.patch
net-zerocopy-use-vm_insert_pages-for-tcp-rcv-zerocopy-fix.patch
seq_read-info-message-about-buggy-next-functions-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
next reply other threads:[~2020-04-01 1:07 UTC|newest]
Thread overview: 430+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-01 1:07 akpm [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-04-24 20:17 + linux-next-git-rejects.patch added to -mm tree Andrew Morton
2022-04-15 18:36 Andrew Morton
2022-04-13 2:43 Andrew Morton
2022-04-08 17:44 Andrew Morton
2022-04-05 18:14 Andrew Morton
2022-03-31 21:10 Andrew Morton
2022-03-11 1:19 Andrew Morton
2022-03-06 22:08 Andrew Morton
2022-03-03 21:56 Andrew Morton
2022-02-25 4:05 Andrew Morton
2022-02-04 5:44 Andrew Morton
2022-01-13 0:47 akpm
2022-01-07 22:23 akpm
2021-12-21 21:18 akpm
2021-12-10 16:38 akpm
2021-12-03 17:30 akpm
2021-11-18 21:17 akpm
2021-10-28 18:58 akpm
2021-10-22 18:01 akpm
2021-10-10 20:42 akpm
2021-10-06 1:48 akpm
2021-09-27 23:28 akpm
2021-09-19 18:13 akpm
2021-09-14 1:16 akpm
2021-08-31 18:05 akpm
2021-08-12 20:39 akpm
2021-08-05 23:03 akpm
2021-08-01 19:11 akpm
2021-06-24 20:21 akpm
2021-06-08 20:11 akpm
2021-06-04 19:22 akpm
2021-05-31 21:23 akpm
2021-05-20 6:24 akpm
2021-05-08 22:38 akpm
2021-04-30 0:18 akpm
2021-04-23 18:47 akpm
2021-04-16 17:13 akpm
2021-04-15 1:10 akpm
2021-04-11 22:48 akpm
2021-03-31 20:57 akpm
2021-03-28 22:26 akpm
2021-03-18 23:47 akpm
2021-03-16 19:10 akpm
2021-03-12 5:30 akpm
2021-03-10 17:05 akpm
2021-03-05 23:05 akpm
2021-02-23 21:06 akpm
2021-02-04 23:55 akpm
2021-01-28 20:12 akpm
2021-01-25 21:34 akpm
2021-01-17 18:53 akpm
2021-01-07 22:33 akpm
2020-12-23 18:27 akpm
2020-12-16 17:06 akpm
2020-12-02 21:38 akpm
2020-11-25 20:33 akpm
2020-11-20 19:12 akpm
2020-11-08 2:07 akpm
2020-10-30 22:58 akpm
2020-10-09 21:42 akpm
2020-10-02 23:36 akpm
2020-09-26 1:47 akpm
2020-09-04 17:45 akpm
2020-08-30 19:58 akpm
2020-08-22 17:29 akpm
2020-07-28 20:26 akpm
2020-07-24 23:37 akpm
2020-07-23 3:18 akpm
2020-07-15 23:54 akpm
2020-07-10 20:31 akpm
2020-06-26 3:28 incoming Andrew Morton
2020-06-27 3:32 ` + linux-next-git-rejects.patch added to -mm tree Andrew Morton
2020-06-20 19:37 akpm
2020-06-05 20:00 akpm
2020-06-02 18:28 akpm
2020-06-01 22:04 akpm
2020-05-24 23:17 akpm
2020-05-07 16:54 akpm
2020-04-25 22:55 akpm
2020-04-22 0:55 akpm
2020-04-09 0:08 akpm
2020-04-06 21:37 akpm
2020-03-26 18:15 akpm
2020-03-21 19:39 akpm
2020-03-13 20:56 akpm
2020-03-11 21:19 akpm
2020-03-06 1:20 akpm
2020-02-27 21:31 akpm
2020-02-19 19:16 akpm
2020-02-10 21:58 akpm
2020-01-30 18:06 akpm
2020-01-25 2:20 akpm
2020-01-22 19:42 akpm
2020-01-14 22:49 akpm
2020-01-10 20:34 akpm
2018-02-16 20:23 akpm
2018-02-07 19:54 akpm
2018-02-05 22:47 akpm
2018-02-01 0:31 akpm
2018-01-22 20:10 akpm
2018-01-12 21:44 akpm
2018-01-09 20:12 akpm
2018-01-04 21:54 akpm
2017-12-21 20:04 akpm
2017-12-15 21:38 akpm
2017-12-13 22:25 akpm
2017-11-30 20:17 akpm
2017-11-21 20:04 akpm
2017-11-09 19:50 akpm
2017-11-02 19:46 akpm
2017-10-18 19:20 akpm
2017-10-13 20:25 akpm
2017-10-02 18:48 akpm
2017-09-13 22:30 akpm
2017-09-07 18:36 akpm
2017-09-05 19:51 akpm
2017-08-23 19:57 akpm
2017-08-18 19:51 akpm
2017-08-04 21:17 akpm
2017-08-01 19:36 akpm
2017-07-28 20:37 akpm
2017-07-18 19:26 akpm
2017-07-05 19:38 akpm
2017-06-29 19:33 akpm
2017-06-15 17:16 akpm
2017-06-01 19:42 akpm
2017-05-12 19:35 akpm
2017-05-10 17:58 akpm
2017-04-26 21:44 akpm
2017-04-13 19:20 akpm
2017-04-06 21:02 akpm
2017-04-03 19:07 akpm
2017-03-30 20:34 akpm
2017-03-16 23:18 akpm
2017-02-28 20:49 akpm
2017-02-21 19:31 akpm
2017-02-07 21:01 akpm
2017-02-03 20:04 akpm
2017-02-01 21:18 akpm
2017-01-26 21:14 akpm
2017-01-20 22:03 akpm
2017-01-17 19:28 akpm
2017-01-11 22:27 akpm
2017-01-06 23:25 akpm
2016-12-14 23:23 akpm
2016-12-07 23:43 akpm
2016-12-05 19:01 akpm
2016-11-22 21:49 akpm
2016-11-14 20:01 akpm
2016-10-28 18:33 akpm
2016-10-21 20:13 akpm
2016-10-11 20:58 akpm
2016-10-04 19:43 akpm
2016-09-12 20:25 akpm
2016-08-29 19:53 akpm
2016-08-18 21:01 akpm
2016-08-15 20:40 akpm
2016-08-09 19:28 akpm
2016-07-26 22:39 akpm
2016-07-08 21:33 akpm
2016-06-24 19:23 akpm
2016-06-16 20:26 akpm
2016-06-10 19:11 akpm
2016-06-01 17:49 akpm
2016-05-26 18:10 akpm
2016-05-24 17:49 akpm
2016-05-20 0:20 akpm
2016-05-05 19:47 akpm
2016-05-02 17:49 akpm
2016-04-27 22:09 akpm
2016-03-15 17:50 akpm
2016-03-10 18:57 akpm
2016-03-08 22:09 akpm
2016-02-24 21:56 akpm
2016-02-11 20:38 akpm
2016-02-09 0:39 akpm
2016-02-02 0:55 akpm
2016-01-12 23:28 akpm
2016-01-07 22:15 akpm
2015-12-28 21:10 akpm
2015-12-04 0:49 akpm
2015-11-25 23:04 akpm
2015-10-30 19:44 akpm
2015-10-14 19:43 akpm
2015-10-02 19:35 akpm
2015-09-21 18:23 akpm
2015-08-21 20:00 akpm
2015-08-17 21:16 akpm
2015-08-03 19:23 akpm
2015-07-23 20:13 akpm
2015-07-17 20:58 akpm
2015-07-01 20:37 akpm
2015-06-25 19:05 akpm
2015-06-23 19:22 akpm
2015-06-16 18:59 akpm
2015-06-02 18:26 akpm
2015-05-22 20:07 akpm
2015-05-13 19:51 akpm
2015-05-05 22:28 akpm
2015-04-24 17:04 akpm
2015-04-22 18:04 akpm
2015-04-03 19:11 akpm
2015-03-25 19:23 akpm
2015-03-23 19:25 akpm
2015-03-04 23:43 akpm
2015-02-18 23:32 akpm
2015-02-06 21:06 akpm
2015-01-27 20:22 akpm
2015-01-16 21:22 akpm
2014-12-18 1:07 akpm
2014-12-15 20:35 akpm
2014-12-04 22:36 akpm
2014-11-26 20:38 akpm
2014-11-10 21:40 akpm
2014-10-13 19:43 akpm
2014-10-02 19:23 akpm
2014-09-29 20:21 akpm
2014-08-01 18:54 akpm
2014-07-30 20:19 akpm
2014-07-22 19:31 akpm
2014-07-16 20:31 akpm
2014-07-09 19:36 akpm
2014-06-26 19:15 akpm
2014-06-10 19:48 akpm
2014-06-02 19:10 akpm
2014-05-20 18:15 akpm
2014-05-13 18:53 akpm
2014-04-21 18:10 akpm
2014-04-09 17:54 akpm
2014-04-04 23:01 akpm
2014-04-02 19:58 akpm
2014-03-21 19:08 akpm
2014-03-18 20:22 akpm
2014-03-10 18:48 akpm
2014-02-19 23:04 akpm
2014-02-11 19:22 akpm
2014-01-21 20:36 akpm
2013-12-26 21:16 akpm
2013-12-12 20:38 akpm
2013-12-09 21:51 akpm
2013-12-02 20:35 akpm
2013-11-22 21:21 akpm
2013-11-19 21:28 akpm
2013-11-07 19:02 akpm
2013-11-04 19:20 akpm
2013-09-25 19:03 akpm
2013-09-23 18:24 akpm
2013-08-23 18:57 akpm
2013-08-19 19:45 akpm
2013-08-08 19:21 akpm
2013-07-18 20:22 akpm
2013-07-09 21:04 akpm
2013-07-02 19:29 akpm
2013-06-27 20:05 akpm
2013-06-10 20:41 akpm
2013-06-05 19:15 akpm
2013-06-03 20:02 akpm
2013-05-29 19:00 akpm
2013-05-23 19:54 akpm
2013-05-10 18:42 akpm
2013-04-29 18:39 akpm
2013-04-09 19:42 akpm
2013-03-27 18:55 akpm
2013-03-25 19:33 akpm
2013-03-18 19:26 akpm
2013-03-08 20:08 akpm
2013-03-06 20:23 akpm
2013-02-20 20:38 akpm
2013-02-12 20:24 akpm
2013-01-24 22:37 akpm
2013-01-22 21:18 akpm
2013-01-17 20:49 akpm
2013-01-04 21:56 akpm
2012-12-20 20:13 akpm
2012-12-17 20:19 akpm
2012-12-12 22:31 akpm
2012-11-30 20:49 akpm
2012-11-19 20:19 akpm
2012-10-29 19:41 akpm
2012-10-24 22:10 akpm
2012-10-22 19:01 akpm
2012-10-17 21:16 akpm
2012-10-10 19:48 akpm
2012-10-05 20:09 akpm
2012-10-01 19:11 akpm
2012-09-13 18:18 akpm
2012-09-11 19:28 akpm
2012-09-06 19:12 akpm
2012-08-21 18:35 akpm
2012-08-14 19:47 akpm
2012-07-17 19:49 akpm
2012-07-13 19:48 akpm
2012-06-29 20:17 akpm
2012-06-19 18:24 akpm
2012-06-08 19:40 akpm
2012-06-01 19:39 akpm
2012-05-23 23:09 akpm
2012-05-22 22:41 akpm
2012-05-09 20:38 akpm
2012-05-04 19:18 akpm
2012-04-20 18:47 akpm
2012-03-29 19:11 akpm
2012-03-22 19:42 akpm
2012-03-20 19:11 akpm
2012-03-15 22:51 akpm
2012-03-12 22:18 akpm
2012-03-02 21:59 akpm
2012-02-24 21:15 akpm
2012-02-14 20:20 akpm
2012-02-08 19:57 akpm
2012-01-31 20:10 akpm
2012-01-26 23:01 akpm
2012-01-24 22:23 akpm
2012-01-24 22:19 akpm
2012-01-12 0:16 akpm
2012-01-06 21:01 akpm
2011-12-15 20:57 akpm
2011-12-09 19:57 akpm
2011-12-01 20:31 akpm
2011-11-28 20:57 akpm
2011-11-21 20:28 akpm
2011-11-17 20:19 akpm
2011-08-26 19:05 akpm
2011-08-19 20:46 akpm
2011-08-03 18:57 akpm
2011-07-26 7:51 akpm
2011-07-25 19:14 akpm
2011-07-08 18:13 akpm
2011-07-06 19:20 akpm
2011-06-22 18:34 akpm
2011-06-08 19:52 akpm
2011-05-26 19:39 akpm
2011-05-24 18:53 akpm
2011-05-18 18:24 akpm
2011-05-12 18:49 akpm
2011-05-06 19:53 akpm
2011-05-02 19:18 akpm
2011-04-26 18:37 akpm
2011-04-13 19:15 akpm
2011-03-28 20:39 akpm
2011-03-23 20:30 akpm
2011-03-15 20:27 akpm
2011-02-22 22:13 akpm
2011-01-25 23:25 akpm
2011-01-13 19:54 akpm
2011-01-10 21:28 akpm
2010-12-21 20:48 akpm
2010-12-17 22:24 akpm
2010-12-02 21:05 akpm
2010-11-08 19:57 akpm
2010-10-22 19:17 akpm
2010-10-14 20:05 akpm
2010-09-22 19:44 akpm
2010-09-10 21:48 akpm
2010-08-24 22:14 akpm
2010-08-10 19:44 akpm
2010-08-04 19:07 akpm
2010-07-21 19:03 akpm
2010-07-15 18:02 akpm
2010-07-08 19:08 akpm
2010-07-01 18:18 akpm
2010-05-28 18:48 akpm
2010-05-20 14:18 akpm
2010-05-11 21:02 akpm
2010-04-19 16:58 akpm
2010-04-01 15:05 akpm
2010-03-30 15:00 akpm
2010-03-19 16:47 akpm
2010-03-15 3:51 akpm
2010-03-03 19:54 akpm
2010-02-24 19:37 akpm
2010-02-10 23:20 akpm
2010-02-05 19:56 akpm
2010-01-27 21:35 akpm
2010-01-14 21:19 akpm
2009-12-18 20:24 akpm
2009-12-15 21:48 akpm
2009-12-10 20:20 akpm
2009-12-08 21:02 akpm
2009-11-25 18:52 akpm
2009-11-09 19:36 akpm
2009-10-09 21:59 akpm
2009-09-15 21:00 akpm
2009-09-10 4:47 akpm
2009-08-27 22:34 akpm
2009-08-21 20:51 akpm
2009-07-27 20:33 akpm
2009-07-05 18:33 akpm
2009-06-26 18:20 akpm
2009-06-23 19:28 akpm
2009-06-17 18:16 akpm
2009-06-10 17:40 akpm
2009-06-02 22:24 akpm
2009-05-29 18:41 akpm
2009-05-17 16:30 akpm
2009-04-24 19:26 akpm
2009-04-15 19:37 akpm
2009-04-10 20:07 akpm
2009-04-07 19:01 akpm
2009-03-31 18:54 akpm
2009-03-11 18:04 akpm
2009-03-09 23:02 akpm
2009-03-04 18:32 akpm
2009-02-23 21:51 akpm
2009-02-11 19:18 akpm
2009-02-09 19:43 akpm
2009-02-03 19:52 akpm
2009-01-27 19:13 akpm
2009-01-16 19:15 akpm
2008-12-30 19:53 akpm
2008-12-19 21:31 akpm
2008-12-16 19:49 akpm
2008-12-09 18:50 akpm
2008-12-03 23:23 akpm
2008-10-28 19:06 akpm
2008-09-22 6:53 akpm
2008-09-08 19:00 akpm
2008-09-02 20:14 akpm
2008-08-22 22:54 akpm
2008-08-19 22:42 akpm
2008-08-08 22:03 akpm
2008-07-30 19:06 akpm
2008-07-22 20:26 akpm
2008-07-04 6:32 akpm
2008-06-16 6:26 akpm
2008-06-08 19:40 akpm
2008-05-16 22:26 akpm
2008-05-14 21:21 akpm
2008-05-13 21:08 akpm
2008-05-13 2:09 akpm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200401010740.MfREMVWnU%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mm-commits@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox