From: Andrew Morton <akpm@linux-foundation.org>
To: gechangwei@live.cn, ghe@suse.com, jiangqi903@gmail.com,
jlbec@evilplan.org, joseph.qi@linux.alibaba.com, mark@fasheh.com,
mm-commits@vger.kernel.org, piaojun@huawei.com, tiwai@suse.de
Subject: + ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow.patch added to -mm tree
Date: Wed, 18 Mar 2020 14:08:00 -0700 [thread overview]
Message-ID: <20200318210800.S3VUGNL_g%akpm@linux-foundation.org> (raw)
In-Reply-To: <20200305222751.6d781a3f2802d79510941e4e@linux-foundation.org>
The patch titled
Subject: ocfs2: use scnprintf() for avoiding potential buffer overflow
has been added to the -mm tree. Its filename is
ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow.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: Takashi Iwai <tiwai@suse.de>
Subject: ocfs2: use scnprintf() for avoiding potential buffer overflow
Since snprintf() returns the would-be-output size instead of the actual
output size, the succeeding calls may go beyond the given buffer limit.
Fix it by replacing with scnprintf().
Link: http://lkml.kernel.org/r/20200311093516.25300-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Gang He <ghe@suse.com>
Cc: Jun Piao <piaojun@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/ocfs2/cluster/heartbeat.c | 10 +--
fs/ocfs2/cluster/netdebug.c | 4 -
fs/ocfs2/dlm/dlmdebug.c | 100 ++++++++++++++++-----------------
fs/ocfs2/super.c | 46 +++++++--------
4 files changed, 80 insertions(+), 80 deletions(-)
--- a/fs/ocfs2/cluster/heartbeat.c~ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow
+++ a/fs/ocfs2/cluster/heartbeat.c
@@ -1307,7 +1307,7 @@ static int o2hb_debug_open(struct inode
case O2HB_DB_TYPE_REGION_NUMBER:
reg = (struct o2hb_region *)db->db_data;
- out += snprintf(buf + out, PAGE_SIZE - out, "%d\n",
+ out += scnprintf(buf + out, PAGE_SIZE - out, "%d\n",
reg->hr_region_num);
goto done;
@@ -1317,12 +1317,12 @@ static int o2hb_debug_open(struct inode
/* If 0, it has never been set before */
if (lts)
lts = jiffies_to_msecs(jiffies - lts);
- out += snprintf(buf + out, PAGE_SIZE - out, "%lu\n", lts);
+ out += scnprintf(buf + out, PAGE_SIZE - out, "%lu\n", lts);
goto done;
case O2HB_DB_TYPE_REGION_PINNED:
reg = (struct o2hb_region *)db->db_data;
- out += snprintf(buf + out, PAGE_SIZE - out, "%u\n",
+ out += scnprintf(buf + out, PAGE_SIZE - out, "%u\n",
!!reg->hr_item_pinned);
goto done;
@@ -1331,8 +1331,8 @@ static int o2hb_debug_open(struct inode
}
while ((i = find_next_bit(map, db->db_len, i + 1)) < db->db_len)
- out += snprintf(buf + out, PAGE_SIZE - out, "%d ", i);
- out += snprintf(buf + out, PAGE_SIZE - out, "\n");
+ out += scnprintf(buf + out, PAGE_SIZE - out, "%d ", i);
+ out += scnprintf(buf + out, PAGE_SIZE - out, "\n");
done:
i_size_write(inode, out);
--- a/fs/ocfs2/cluster/netdebug.c~ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow
+++ a/fs/ocfs2/cluster/netdebug.c
@@ -443,8 +443,8 @@ static int o2net_fill_bitmap(char *buf,
o2net_fill_node_map(map, sizeof(map));
while ((i = find_next_bit(map, O2NM_MAX_NODES, i + 1)) < O2NM_MAX_NODES)
- out += snprintf(buf + out, PAGE_SIZE - out, "%d ", i);
- out += snprintf(buf + out, PAGE_SIZE - out, "\n");
+ out += scnprintf(buf + out, PAGE_SIZE - out, "%d ", i);
+ out += scnprintf(buf + out, PAGE_SIZE - out, "\n");
return out;
}
--- a/fs/ocfs2/dlm/dlmdebug.c~ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow
+++ a/fs/ocfs2/dlm/dlmdebug.c
@@ -244,11 +244,11 @@ static int stringify_lockname(const char
memcpy((__be64 *)&inode_blkno_be,
(char *)&lockname[OCFS2_DENTRY_LOCK_INO_START],
sizeof(__be64));
- out += snprintf(buf + out, len - out, "%.*s%08x",
+ out += scnprintf(buf + out, len - out, "%.*s%08x",
OCFS2_DENTRY_LOCK_INO_START - 1, lockname,
(unsigned int)be64_to_cpu(inode_blkno_be));
} else
- out += snprintf(buf + out, len - out, "%.*s",
+ out += scnprintf(buf + out, len - out, "%.*s",
locklen, lockname);
return out;
}
@@ -260,7 +260,7 @@ static int stringify_nodemap(unsigned lo
int i = -1;
while ((i = find_next_bit(nodemap, maxnodes, i + 1)) < maxnodes)
- out += snprintf(buf + out, len - out, "%d ", i);
+ out += scnprintf(buf + out, len - out, "%d ", i);
return out;
}
@@ -278,34 +278,34 @@ static int dump_mle(struct dlm_master_li
mle_type = "MIG";
out += stringify_lockname(mle->mname, mle->mnamelen, buf + out, len - out);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"\t%3s\tmas=%3u\tnew=%3u\tevt=%1d\tuse=%1d\tref=%3d\n",
mle_type, mle->master, mle->new_master,
!list_empty(&mle->hb_events),
!!mle->inuse,
kref_read(&mle->mle_refs));
- out += snprintf(buf + out, len - out, "Maybe=");
+ out += scnprintf(buf + out, len - out, "Maybe=");
out += stringify_nodemap(mle->maybe_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
- out += snprintf(buf + out, len - out, "Vote=");
+ out += scnprintf(buf + out, len - out, "Vote=");
out += stringify_nodemap(mle->vote_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
- out += snprintf(buf + out, len - out, "Response=");
+ out += scnprintf(buf + out, len - out, "Response=");
out += stringify_nodemap(mle->response_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
- out += snprintf(buf + out, len - out, "Node=");
+ out += scnprintf(buf + out, len - out, "Node=");
out += stringify_nodemap(mle->node_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
return out;
}
@@ -353,7 +353,7 @@ static int debug_purgelist_print(struct
int out = 0;
unsigned long total = 0;
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Dumping Purgelist for Domain: %s\n", dlm->name);
spin_lock(&dlm->spinlock);
@@ -365,13 +365,13 @@ static int debug_purgelist_print(struct
out += stringify_lockname(res->lockname.name,
res->lockname.len,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\t%ld\n",
+ out += scnprintf(buf + out, len - out, "\t%ld\n",
(jiffies - res->last_used)/HZ);
spin_unlock(&res->spinlock);
}
spin_unlock(&dlm->spinlock);
- out += snprintf(buf + out, len - out, "Total on list: %lu\n", total);
+ out += scnprintf(buf + out, len - out, "Total on list: %lu\n", total);
return out;
}
@@ -410,7 +410,7 @@ static int debug_mle_print(struct dlm_ct
int i, out = 0;
unsigned long total = 0, longest = 0, bucket_count = 0;
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Dumping MLEs for Domain: %s\n", dlm->name);
spin_lock(&dlm->master_lock);
@@ -428,7 +428,7 @@ static int debug_mle_print(struct dlm_ct
}
spin_unlock(&dlm->master_lock);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Total: %lu, Longest: %lu\n", total, longest);
return out;
}
@@ -467,7 +467,7 @@ static int dump_lock(struct dlm_lock *lo
#define DEBUG_LOCK_VERSION 1
spin_lock(&lock->spinlock);
- out = snprintf(buf, len, "LOCK:%d,%d,%d,%d,%d,%d:%lld,%d,%d,%d,%d,%d,"
+ out = scnprintf(buf, len, "LOCK:%d,%d,%d,%d,%d,%d:%lld,%d,%d,%d,%d,%d,"
"%d,%d,%d,%d\n",
DEBUG_LOCK_VERSION,
list_type, lock->ml.type, lock->ml.convert_type,
@@ -491,13 +491,13 @@ static int dump_lockres(struct dlm_lock_
int i;
int out = 0;
- out += snprintf(buf + out, len - out, "NAME:");
+ out += scnprintf(buf + out, len - out, "NAME:");
out += stringify_lockname(res->lockname.name, res->lockname.len,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
#define DEBUG_LRES_VERSION 1
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"LRES:%d,%d,%d,%ld,%d,%d,%d,%d,%d,%d,%d\n",
DEBUG_LRES_VERSION,
res->owner, res->state, res->last_used,
@@ -509,17 +509,17 @@ static int dump_lockres(struct dlm_lock_
kref_read(&res->refs));
/* refmap */
- out += snprintf(buf + out, len - out, "RMAP:");
+ out += scnprintf(buf + out, len - out, "RMAP:");
out += stringify_nodemap(res->refmap, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* lvb */
- out += snprintf(buf + out, len - out, "LVBX:");
+ out += scnprintf(buf + out, len - out, "LVBX:");
for (i = 0; i < DLM_LVB_LEN; i++)
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%02x", (unsigned char)res->lvb[i]);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* granted */
list_for_each_entry(lock, &res->granted, list)
@@ -533,7 +533,7 @@ static int dump_lockres(struct dlm_lock_
list_for_each_entry(lock, &res->blocked, list)
out += dump_lock(lock, 2, buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
return out;
}
@@ -683,41 +683,41 @@ static int debug_state_print(struct dlm_
}
/* Domain: xxxxxxxxxx Key: 0xdfbac769 */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Domain: %s Key: 0x%08x Protocol: %d.%d\n",
dlm->name, dlm->key, dlm->dlm_locking_proto.pv_major,
dlm->dlm_locking_proto.pv_minor);
/* Thread Pid: xxx Node: xxx State: xxxxx */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Thread Pid: %d Node: %d State: %s\n",
task_pid_nr(dlm->dlm_thread_task), dlm->node_num, state);
/* Number of Joins: xxx Joining Node: xxx */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Number of Joins: %d Joining Node: %d\n",
dlm->num_joins, dlm->joining_node);
/* Domain Map: xx xx xx */
- out += snprintf(buf + out, len - out, "Domain Map: ");
+ out += scnprintf(buf + out, len - out, "Domain Map: ");
out += stringify_nodemap(dlm->domain_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* Exit Domain Map: xx xx xx */
- out += snprintf(buf + out, len - out, "Exit Domain Map: ");
+ out += scnprintf(buf + out, len - out, "Exit Domain Map: ");
out += stringify_nodemap(dlm->exit_domain_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* Live Map: xx xx xx */
- out += snprintf(buf + out, len - out, "Live Map: ");
+ out += scnprintf(buf + out, len - out, "Live Map: ");
out += stringify_nodemap(dlm->live_nodes_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* Lock Resources: xxx (xxx) */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Lock Resources: %d (%d)\n",
atomic_read(&dlm->res_cur_count),
atomic_read(&dlm->res_tot_count));
@@ -729,29 +729,29 @@ static int debug_state_print(struct dlm_
cur_mles += atomic_read(&dlm->mle_cur_count[i]);
/* MLEs: xxx (xxx) */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"MLEs: %d (%d)\n", cur_mles, tot_mles);
/* Blocking: xxx (xxx) */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
" Blocking: %d (%d)\n",
atomic_read(&dlm->mle_cur_count[DLM_MLE_BLOCK]),
atomic_read(&dlm->mle_tot_count[DLM_MLE_BLOCK]));
/* Mastery: xxx (xxx) */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
" Mastery: %d (%d)\n",
atomic_read(&dlm->mle_cur_count[DLM_MLE_MASTER]),
atomic_read(&dlm->mle_tot_count[DLM_MLE_MASTER]));
/* Migration: xxx (xxx) */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
" Migration: %d (%d)\n",
atomic_read(&dlm->mle_cur_count[DLM_MLE_MIGRATION]),
atomic_read(&dlm->mle_tot_count[DLM_MLE_MIGRATION]));
/* Lists: Dirty=Empty Purge=InUse PendingASTs=Empty ... */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Lists: Dirty=%s Purge=%s PendingASTs=%s "
"PendingBASTs=%s\n",
(list_empty(&dlm->dirty_list) ? "Empty" : "InUse"),
@@ -760,12 +760,12 @@ static int debug_state_print(struct dlm_
(list_empty(&dlm->pending_basts) ? "Empty" : "InUse"));
/* Purge Count: xxx Refs: xxx */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Purge Count: %d Refs: %d\n", dlm->purge_count,
kref_read(&dlm->dlm_refs));
/* Dead Node: xxx */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Dead Node: %d\n", dlm->reco.dead_node);
/* What about DLM_RECO_STATE_FINALIZE? */
@@ -775,19 +775,19 @@ static int debug_state_print(struct dlm_
state = "INACTIVE";
/* Recovery Pid: xxxx Master: xxx State: xxxx */
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"Recovery Pid: %d Master: %d State: %s\n",
task_pid_nr(dlm->dlm_reco_thread_task),
dlm->reco.new_master, state);
/* Recovery Map: xx xx */
- out += snprintf(buf + out, len - out, "Recovery Map: ");
+ out += scnprintf(buf + out, len - out, "Recovery Map: ");
out += stringify_nodemap(dlm->recovery_map, O2NM_MAX_NODES,
buf + out, len - out);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
/* Recovery Node State: */
- out += snprintf(buf + out, len - out, "Recovery Node State:\n");
+ out += scnprintf(buf + out, len - out, "Recovery Node State:\n");
list_for_each_entry(node, &dlm->reco.node_data, list) {
switch (node->state) {
case DLM_RECO_NODE_DATA_INIT:
@@ -815,7 +815,7 @@ static int debug_state_print(struct dlm_
state = "BAD";
break;
}
- out += snprintf(buf + out, len - out, "\t%u - %s\n",
+ out += scnprintf(buf + out, len - out, "\t%u - %s\n",
node->node_num, state);
}
--- a/fs/ocfs2/super.c~ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow
+++ a/fs/ocfs2/super.c
@@ -220,31 +220,31 @@ static int ocfs2_osb_dump(struct ocfs2_s
int i, out = 0;
unsigned long flags;
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Id: %-s Uuid: %-s Gen: 0x%X Label: %-s\n",
"Device", osb->dev_str, osb->uuid_str,
osb->fs_generation, osb->vol_label);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => State: %d Flags: 0x%lX\n", "Volume",
atomic_read(&osb->vol_state), osb->osb_flags);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Block: %lu Cluster: %d\n", "Sizes",
osb->sb->s_blocksize, osb->s_clustersize);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Compat: 0x%X Incompat: 0x%X "
"ROcompat: 0x%X\n",
"Features", osb->s_feature_compat,
osb->s_feature_incompat, osb->s_feature_ro_compat);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Opts: 0x%lX AtimeQuanta: %u\n", "Mount",
osb->s_mount_opt, osb->s_atime_quantum);
if (cconn) {
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Stack: %s Name: %*s "
"Version: %d.%d\n", "Cluster",
(*osb->osb_cluster_stack == '\0' ?
@@ -255,7 +255,7 @@ static int ocfs2_osb_dump(struct ocfs2_s
}
spin_lock_irqsave(&osb->dc_task_lock, flags);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Pid: %d Count: %lu WakeSeq: %lu "
"WorkSeq: %lu\n", "DownCnvt",
(osb->dc_task ? task_pid_nr(osb->dc_task) : -1),
@@ -264,32 +264,32 @@ static int ocfs2_osb_dump(struct ocfs2_s
spin_unlock_irqrestore(&osb->dc_task_lock, flags);
spin_lock(&osb->osb_lock);
- out += snprintf(buf + out, len - out, "%10s => Pid: %d Nodes:",
+ out += scnprintf(buf + out, len - out, "%10s => Pid: %d Nodes:",
"Recovery",
(osb->recovery_thread_task ?
task_pid_nr(osb->recovery_thread_task) : -1));
if (rm->rm_used == 0)
- out += snprintf(buf + out, len - out, " None\n");
+ out += scnprintf(buf + out, len - out, " None\n");
else {
for (i = 0; i < rm->rm_used; i++)
- out += snprintf(buf + out, len - out, " %d",
+ out += scnprintf(buf + out, len - out, " %d",
rm->rm_entries[i]);
- out += snprintf(buf + out, len - out, "\n");
+ out += scnprintf(buf + out, len - out, "\n");
}
spin_unlock(&osb->osb_lock);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => Pid: %d Interval: %lu\n", "Commit",
(osb->commit_task ? task_pid_nr(osb->commit_task) : -1),
osb->osb_commit_interval);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => State: %d TxnId: %lu NumTxns: %d\n",
"Journal", osb->journal->j_state,
osb->journal->j_trans_id,
atomic_read(&osb->journal->j_num_trans));
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => GlobalAllocs: %d LocalAllocs: %d "
"SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
"Stats",
@@ -299,7 +299,7 @@ static int ocfs2_osb_dump(struct ocfs2_s
atomic_read(&osb->alloc_stats.moves),
atomic_read(&osb->alloc_stats.bg_extends));
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => State: %u Descriptor: %llu Size: %u bits "
"Default: %u bits\n",
"LocalAlloc", osb->local_alloc_state,
@@ -307,7 +307,7 @@ static int ocfs2_osb_dump(struct ocfs2_s
osb->local_alloc_bits, osb->local_alloc_default_bits);
spin_lock(&osb->osb_lock);
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s => InodeSlot: %d StolenInodes: %d, "
"MetaSlot: %d StolenMeta: %d\n", "Steal",
osb->s_inode_steal_slot,
@@ -316,20 +316,20 @@ static int ocfs2_osb_dump(struct ocfs2_s
atomic_read(&osb->s_num_meta_stolen));
spin_unlock(&osb->osb_lock);
- out += snprintf(buf + out, len - out, "OrphanScan => ");
- out += snprintf(buf + out, len - out, "Local: %u Global: %u ",
+ out += scnprintf(buf + out, len - out, "OrphanScan => ");
+ out += scnprintf(buf + out, len - out, "Local: %u Global: %u ",
os->os_count, os->os_seqno);
- out += snprintf(buf + out, len - out, " Last Scan: ");
+ out += scnprintf(buf + out, len - out, " Last Scan: ");
if (atomic_read(&os->os_state) == ORPHAN_SCAN_INACTIVE)
- out += snprintf(buf + out, len - out, "Disabled\n");
+ out += scnprintf(buf + out, len - out, "Disabled\n");
else
- out += snprintf(buf + out, len - out, "%lu seconds ago\n",
+ out += scnprintf(buf + out, len - out, "%lu seconds ago\n",
(unsigned long)(ktime_get_seconds() - os->os_scantime));
- out += snprintf(buf + out, len - out, "%10s => %3s %10s\n",
+ out += scnprintf(buf + out, len - out, "%10s => %3s %10s\n",
"Slots", "Num", "RecoGen");
for (i = 0; i < osb->max_slots; ++i) {
- out += snprintf(buf + out, len - out,
+ out += scnprintf(buf + out, len - out,
"%10s %c %3d %10d\n",
" ",
(i == osb->slot_num ? '*' : ' '),
_
Patches currently in -mm which might be from tiwai@suse.de are
ocfs2-use-scnprintf-for-avoiding-potential-buffer-overflow.patch
next prev parent reply other threads:[~2020-03-18 21:08 UTC|newest]
Thread overview: 200+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-06 6:27 incoming Andrew Morton
2020-03-06 6:28 ` [patch 1/7] mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa Andrew Morton
2020-03-06 6:28 ` [patch 2/7] mm: fix possible PMD dirty bit lost in set_pmd_migration_entry() Andrew Morton
2020-03-06 6:28 ` [patch 3/7] mm: avoid data corruption on CoW fault into PFN-mapped VMA Andrew Morton
2020-03-06 6:28 ` [patch 4/7] fat: fix uninit-memory access for partial initialized inode Andrew Morton
2020-03-06 6:28 ` [patch 5/7] mm/z3fold.c: do not include rwlock.h directly Andrew Morton
2020-03-06 6:28 ` [patch 6/7] mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled Andrew Morton
2020-03-06 6:28 ` [patch 7/7] arch/Kconfig: update HAVE_RELIABLE_STACKTRACE description Andrew Morton
2020-03-07 20:49 ` + proc-speed-up-proc-statm.patch added to -mm tree Andrew Morton
2020-03-07 20:58 ` + mm-hotplug-fix-hot-remove-failure-in-sparsememvmemmap-case.patch " Andrew Morton
2020-03-07 21:01 ` + mm-use-fallthrough.patch " Andrew Morton
2020-03-07 21:53 ` + mm-gup-track-foll_pin-pages-fix.patch " Andrew Morton
2020-03-07 22:10 ` + mm-shmem-add-vmstat-for-hugepage-fallback.patch " Andrew Morton
2020-03-07 22:10 ` + mm-thp-track-fallbacks-due-to-failed-memcg-charges-separately.patch " Andrew Morton
2020-03-07 22:39 ` + mmpage_alloccma-conditionally-prefer-cma-pageblocks-for-movable-allocations.patch " Andrew Morton
2020-03-07 23:04 ` + mm-memory_hotplug-drop-the-flags-field-from-struct-mhp_restrictions.patch " Andrew Morton
2020-03-07 23:04 ` + mm-memory_hotplug-rename-mhp_restrictions-to-mhp_params.patch " Andrew Morton
2020-03-07 23:04 ` + x86-mm-thread-pgprot_t-through-init_memory_mapping.patch " Andrew Morton
2020-03-07 23:04 ` + x86-mm-introduce-__set_memory_prot.patch " Andrew Morton
2020-03-07 23:04 ` + powerpc-mm-thread-pgprot_t-through-create_section_mapping.patch " Andrew Morton
2020-03-07 23:04 ` + mm-memory_hotplug-add-pgprot_t-to-mhp_params.patch " Andrew Morton
2020-03-07 23:05 ` + mm-memremap-set-caching-mode-for-pci-p2pdma-memory-to-wc.patch " Andrew Morton
2020-03-07 23:11 ` + kasan-detect-negative-size-in-memory-operation-function-fix.patch " Andrew Morton
2020-03-07 23:25 ` + mm-gup-track-foll_pin-pages-fix-2.patch " Andrew Morton
[not found] ` <202efdc4-2b19-278b-9960-3afb18b8173d@nvidia.com>
[not found] ` <20200311111352.1dff2984@p-imbrenda>
2020-03-12 0:51 ` Andrew Morton
2020-03-07 23:25 ` + mm-gup-writeback-add-callbacks-for-inaccessible-pages.patch " Andrew Morton
2020-03-07 23:33 ` + mm-sparsemem-use-wrapped-macros-instead-of-open-coding.patch " Andrew Morton
2020-03-09 23:34 ` + checkpatch-check-proper-licensing-of-devicetree-bindings.patch " Andrew Morton
2020-03-09 23:37 ` + kcov-cleanup-debug-messages.patch " Andrew Morton
2020-03-09 23:37 ` + kcov-collect-coverage-from-interrupts.patch " Andrew Morton
2020-03-09 23:37 ` + usb-core-kcov-collect-coverage-from-usb-complete-callback.patch " Andrew Morton
2020-03-10 0:49 ` + mm-swap_slotsc-dont-reset-the-cache-slot-after-use.patch " Andrew Morton
2020-03-10 0:51 ` + mm-hotplug-fix-hot-remove-failure-in-sparsememvmemmap-case-fix.patch " Andrew Morton
2020-03-10 0:57 ` + linux-bitsh-add-compile-time-sanity-check-of-genmask-inputs.patch " Andrew Morton
2020-03-10 2:29 ` + mm-page_alloc-use-free_area_empty-instead-of-open-coding.patch " Andrew Morton
2020-03-10 2:50 ` + mm-special-create-generic-fallbacks-for-pte_special-and-pte_mkspecial.patch " Andrew Morton
2020-03-10 2:53 ` + ocfs2-cluster-replace-zero-length-array-with-flexible-array-member.patch " Andrew Morton
2020-03-10 2:54 ` + ocfs2-dlm-replace-zero-length-array-with-flexible-array-member.patch " Andrew Morton
2020-03-10 2:54 ` + ocfs2-ocfs2_fsh-replace-zero-length-array-with-flexible-array-member.patch " Andrew Morton
2020-03-10 2:56 ` + mm-page_allocc-micro-optimisation-remove-unnecessary-branch.patch " Andrew Morton
2020-03-10 3:38 ` + mm-gup-rename-nonblocking-to-locked-where-proper.patch " Andrew Morton
2020-03-10 3:38 ` + mm-gup-fix-__get_user_pages-on-fault-retry-of-hugetlb.patch " Andrew Morton
2020-03-10 3:38 ` + mm-introduce-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + x86-mm-use-helper-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + arc-mm-use-helper-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + arm64-mm-use-helper-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + powerpc-mm-use-helper-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + sh-mm-use-helper-fault_signal_pending.patch " Andrew Morton
2020-03-10 3:38 ` + mm-return-faster-for-non-fatal-signals-in-user-mode-faults.patch " Andrew Morton
2020-03-10 3:38 ` + userfaultfd-dont-retake-mmap_sem-to-emulate-nopage.patch " Andrew Morton
2020-03-10 3:38 ` + mm-introduce-fault_flag_default.patch " Andrew Morton
2020-03-10 3:39 ` + mm-introduce-fault_flag_interruptible.patch " Andrew Morton
2020-03-10 3:39 ` + mm-allow-vm_fault_retry-for-multiple-times.patch " Andrew Morton
2020-03-10 3:39 ` + mm-gup-allow-vm_fault_retry-for-multiple-times.patch " Andrew Morton
2020-03-10 3:39 ` + mm-gup-allow-to-react-to-fatal-signals.patch " Andrew Morton
2020-03-10 3:39 ` + mm-userfaultfd-honor-fault_flag_killable-in-fault-path.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-add-helper-for-writeprotect-check.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-hook-userfault-handler-to-write-protection-fault.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-add-wp-pagetable-tracking-to-x86.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-userfaultfd_pte-huge_pmd_wp-helpers.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-add-uffdio_copy_mode_wp.patch " Andrew Morton
2020-03-10 3:41 ` + mm-merge-parameters-for-change_protection.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-apply-_page_uffd_wp-bit.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-drop-_page_uffd_wp-properly-when-fork.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-add-pmd_swp_uffd_wp-helpers.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-support-swap-and-page-migration.patch " Andrew Morton
2020-03-10 3:41 ` + khugepaged-skip-collapse-if-uffd-wp-detected.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-support-write-protection-for-userfault-vma-range.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-add-the-writeprotect-api-to-userfaultfd-ioctl.patch " Andrew Morton
2020-03-10 3:41 ` + userfaultfd-wp-enabled-write-protection-in-userfaultfd-api.patch " Andrew Morton
2020-03-10 3:42 ` + userfaultfd-wp-dont-wake-up-when-doing-write-protect.patch " Andrew Morton
2020-03-10 3:42 ` + userfaultfd-wp-uffdio_register_mode_wp-documentation-update.patch " Andrew Morton
2020-03-10 3:42 ` + userfaultfd-wp-declare-_uffdio_writeprotect-conditionally.patch " Andrew Morton
2020-03-10 3:42 ` + userfaultfd-selftests-refactor-statistics.patch " Andrew Morton
2020-03-10 3:42 ` + userfaultfd-selftests-add-write-protect-test.patch " Andrew Morton
2020-03-10 23:59 ` + kmod-make-request_module-return-an-error-when-autoloading-is-disabled.patch " Andrew Morton
2020-03-11 0:19 ` + mm-filemapc-remove-unused-argument-from-shrink_readahead_size_eio.patch " Andrew Morton
2020-03-11 22:08 ` + mm-hugetlb-remove-unnecessary-memory-fetch-in-pageheadhuge.patch " Andrew Morton
2020-03-11 22:10 ` + fs_parse-remove-pr_notice-about-each-validation.patch " Andrew Morton
2020-03-11 23:26 ` + mmpage_alloccma-conditionally-prefer-cma-pageblocks-for-movable-allocations-fix.patch " Andrew Morton
2020-03-11 23:29 ` + mm-hugetlb-optionally-allocate-gigantic-hugepages-using-cma.patch " Andrew Morton
2020-03-11 23:33 ` + virtio-balloon-switch-back-to-oom-handler-for-virtio_balloon_f_deflate_on_oom.patch " Andrew Morton
2020-03-11 23:38 ` + kasan-fix-wstringop-overflow-warning.patch " Andrew Morton
2020-03-11 23:42 ` + mm-fix-tick-timer-stall-during-deferred-page-init.patch " Andrew Morton
2020-03-12 0:00 ` + drivers-base-memory-map-mmop_offline-to-0.patch " Andrew Morton
2020-03-12 0:00 ` + drivers-base-memory-store-mapping-between-mmop_-and-string-in-an-array.patch " Andrew Morton
2020-03-12 0:00 ` + mm-memory_hotplug-convert-memhp_auto_online-to-store-an-online_type.patch " Andrew Morton
2020-03-12 0:00 ` + mm-memory_hotplug-allow-to-specify-a-default-online_type.patch " Andrew Morton
2020-03-12 0:18 ` + mm-debug-add-tests-validating-architecture-page-table-helpers.patch " Andrew Morton
2020-03-12 0:25 ` + mm-swap_slotsc-assignreset-cache-slot-by-value-directly.patch " Andrew Morton
2020-03-12 0:25 ` [alternative-merged] mm-swap_slotsc-dont-reset-the-cache-slot-after-use.patch removed from " Andrew Morton
2020-03-12 0:33 ` + mm-introduce-fault_signal_pending-fix.patch added to " Andrew Morton
2020-03-12 0:34 ` [failures] mm-sparsemem-use-wrapped-macros-instead-of-open-coding.patch removed from " Andrew Morton
2020-03-12 1:04 ` + kasan-detect-negative-size-in-memory-operation-function-fix-2.patch added to " Andrew Morton
2020-03-12 1:08 ` + page-flags-fix-a-crash-at-setpageerrorthp_swap.patch " Andrew Morton
2020-03-12 1:11 ` + mm-page_alloc-simplify-page_is_buddy-for-better-code-readability.patch " Andrew Morton
2020-03-12 1:17 ` + mm-special-create-generic-fallbacks-for-pte_special-and-pte_mkspecial-v3.patch " Andrew Morton
2020-03-12 2:40 ` + memcg-fix-null-pointer-dereference-in-__mem_cgroup_usage_unregister_event-fix.patch " Andrew Morton
2020-03-12 2:58 ` + list-prevent-compiler-reloads-inside-safe-list-iteration.patch " Andrew Morton
2020-03-12 3:14 ` + mm-clarify-a-confusing-comment-of-remap_pfn_range.patch " Andrew Morton
2020-03-12 4:12 ` mmotm 2020-03-11-21-11 uploaded Andrew Morton
2020-03-12 22:29 ` + fs-filesystemsc-downgrade-user-reachable-warn_once-to-pr_warn_once.patch added to -mm tree Andrew Morton
2020-03-12 22:29 ` + docs-admin-guide-document-the-kernelmodprobe-sysctl.patch " Andrew Morton
2020-03-12 22:29 ` + selftests-kmod-test-disabling-module-autoloading.patch " Andrew Morton
2020-03-12 22:35 ` + mm-memcg-fix-corruption-on-64-bit-divisor-in-memoryhigh-throttling.patch " Andrew Morton
2020-03-12 22:35 ` + mm-memcg-throttle-allocators-based-on-ancestral-memoryhigh.patch " Andrew Morton
2020-03-12 22:44 ` + mm-memcg-prevent-memoryhigh-load-store-tearing.patch " Andrew Morton
2020-03-12 22:45 ` + mm-memcg-prevent-memorymax-load-tearing.patch " Andrew Morton
2020-03-12 22:45 ` + mm-memcg-prevent-memorylow-load-store-tearing.patch " Andrew Morton
2020-03-12 22:45 ` + mm-memcg-prevent-memorymin-load-store-tearing.patch " Andrew Morton
2020-03-12 22:45 ` + mm-memcg-prevent-memoryswapmax-load-tearing.patch " Andrew Morton
2020-03-12 22:45 ` + mm-memcg-prevent-mem_cgroup_protected-store-tearing.patch " Andrew Morton
2020-03-12 22:46 ` + mm-memcg-bypass-high-reclaim-iteration-for-cgroup-hierarchy-root.patch " Andrew Morton
2020-03-12 22:47 ` [failures] hugetlbfs-use-i_mmap_rwsem-for-more-pmd-sharing-synchronization.patch removed from " Andrew Morton
2020-03-12 22:47 ` [failures] hugetlbfs-use-i_mmap_rwsem-to-address-page-fault-truncate-race.patch " Andrew Morton
2020-03-12 22:53 ` + mm-sparsec-use-kvmalloc_node-kvfree-to-alloc-free-memmap-for-the-classic-sparse.patch added to " Andrew Morton
2020-03-12 23:41 ` + mm-sparsec-introduce-new-function-fill_subsection_map.patch " Andrew Morton
2020-03-12 23:41 ` + mm-sparsec-introduce-a-new-function-clear_subsection_map.patch " Andrew Morton
2020-03-12 23:41 ` + mm-sparsec-only-use-subsection-map-in-vmemmap-case.patch " Andrew Morton
2020-03-12 23:41 ` + mm-sparsec-add-note-about-only-vmemmap-supporting-sub-section-hotplug.patch " Andrew Morton
2020-03-12 23:41 ` + mm-sparsec-move-subsection_map-related-functions-together.patch " Andrew Morton
2020-03-12 23:43 ` + mm-make-may_enter_fs-bool-in-shrink_page_list.patch " Andrew Morton
2020-03-12 23:44 ` + stackdepot-check-depot_index-before-accessing-the-stack-slab-fix.patch " Andrew Morton
2020-03-13 0:26 ` + mm-do-not-allow-madv_pageout-for-cow-pages.patch " Andrew Morton
2020-03-13 0:32 ` + mm-gup-track-foll_pin-pages-fix-2-fix.patch " Andrew Morton
2020-03-13 3:05 ` + a.patch " Andrew Morton
2020-03-13 3:05 ` + mm-hugetlb-optionally-allocate-gigantic-hugepages-using-cma-fix.patch " Andrew Morton
2020-03-13 3:13 ` + kasan-stackdepot-move-filter_irq_stacks-to-stackdepotc-fix-1.patch " Andrew Morton
2020-03-13 3:13 ` + kasan-stackdepot-move-filter_irq_stacks-to-stackdepotc-fix-2.patch " Andrew Morton
2020-03-13 3:25 ` + selftests-vm-fix-map_hugetlb-length-used-for-testing-read-and-write.patch " Andrew Morton
2020-03-13 4:49 ` mmotm 2020-03-12-21-49 uploaded Andrew Morton
2020-03-18 2:58 ` + proc-inline-vma_stop-into-m_stop.patch added to -mm tree Andrew Morton
2020-03-18 2:58 ` + proc-remove-m_cache_vma.patch " Andrew Morton
2020-03-18 2:58 ` + proc-use-ppos-instead-of-m-version.patch " Andrew Morton
2020-03-18 2:58 ` + seq_file-remove-m-version.patch " Andrew Morton
2020-03-18 2:58 ` + proc-inline-m_next_vma-into-m_next.patch " Andrew Morton
2020-03-18 2:59 ` + mm-kmemleak-silence-kcsan-splats-in-checksum.patch " Andrew Morton
2020-03-18 3:07 ` + mm-swap-make-page_evictable-inline.patch " Andrew Morton
2020-03-18 3:07 ` + mm-swap-use-smp_mb__after_atomic-to-order-lru-bit-set.patch " Andrew Morton
2020-03-18 3:12 ` + mm-mmu_notifier-silence-prove_rcu_list-warnings.patch " Andrew Morton
2020-03-18 3:19 ` + lib-test_lockup-test-module-to-generate-lockups-fix.patch " Andrew Morton
2020-03-18 3:25 ` + ocfs2-roll-back-the-reference-count-modification-of-the-parent-directory-if-an-error-occurs.patch " Andrew Morton
2020-03-18 4:08 ` + hv_balloon-dont-check-for-memhp_auto_online-manually-fix.patch " Andrew Morton
2020-03-18 4:08 ` + drivers-base-memory-rename-mmop_online_keep-to-mmop_online.patch " Andrew Morton
2020-03-18 4:08 ` + drivers-base-memory-map-mmop_offline-to-0.patch " Andrew Morton
2020-03-18 4:08 ` + drivers-base-memory-store-mapping-between-mmop_-and-string-in-an-array.patch " Andrew Morton
2020-03-18 4:08 ` + powernv-memtrace-always-online-added-memory-blocks.patch " Andrew Morton
2020-03-18 4:08 ` + hv_balloon-dont-check-for-memhp_auto_online-manually.patch " Andrew Morton
2020-03-18 4:08 ` + hv_balloon-dont-check-for-memhp_auto_online-manually-fix.patch " Andrew Morton
2020-03-18 4:08 ` + mm-memory_hotplug-unexport-memhp_auto_online.patch " Andrew Morton
2020-03-18 4:08 ` + mm-memory_hotplug-convert-memhp_auto_online-to-store-an-online_type.patch " Andrew Morton
2020-03-18 4:08 ` + mm-memory_hotplug-allow-to-specify-a-default-online_type.patch " Andrew Morton
2020-03-18 4:57 ` + mm-code-cleanup-for-madv_free.patch " Andrew Morton
2020-03-18 5:02 ` + mm-hugetlb-fix-build-failure-with-hugetlb_page-but-not-hugebtlbfs.patch " Andrew Morton
2020-03-18 20:21 ` + mm-compactionc-clean-code-by-removing-unnecessary-assignment.patch " Andrew Morton
2020-03-18 20:31 ` + mm-hugetlb-fix-hugetlb_cma_reserve-if-config_numa-isnt-set.patch " Andrew Morton
2020-03-18 20:39 ` + mm-clarify-a-confusing-comment-for-vm_iomap_memory.patch " Andrew Morton
2020-03-18 21:03 ` + psi-move-pf_memstall-out-of-task-flags.patch " Andrew Morton
2020-03-18 21:08 ` Andrew Morton [this message]
2020-03-18 21:12 ` + mm-memcg-make-memoryoomgroup-tolerable-to-task-migration.patch " Andrew Morton
2020-03-18 21:14 ` [to-be-updated] mm-swap-make-page_evictable-inline.patch removed from " Andrew Morton
2020-03-18 21:14 ` [to-be-updated] mm-swap-use-smp_mb__after_atomic-to-order-lru-bit-set.patch " Andrew Morton
2020-03-18 21:19 ` + memremap-remove-stale-comments.patch added to " Andrew Morton
2020-03-18 21:30 ` + hugetlbfs-use-i_mmap_rwsem-for-more-pmd-sharing-synchronization.patch " Andrew Morton
2020-03-18 21:30 ` + hugetlbfs-use-i_mmap_rwsem-to-address-page-fault-truncate-race.patch " Andrew Morton
2020-03-20 23:36 ` + mm-dmapoolc-micro-optimisation-remove-unnecessary-branch.patch " Andrew Morton
2020-03-20 23:48 ` + mm-slub-prevent-kmalloc_node-crashes-and-memory-leaks.patch " Andrew Morton
2020-03-20 23:48 ` + revert-topology-add-support-for-node_to_mem_node-to-determine-the-fallback-node.patch " Andrew Morton
2020-03-20 23:55 ` + mmap-remove-inline-of-vm_unmapped_area.patch " Andrew Morton
2020-03-20 23:55 ` + mm-mmap-add-trace-point-of-vm_unmapped_area.patch " Andrew Morton
2020-03-21 0:23 ` [to-be-updated] kcov-cleanup-debug-messages.patch removed from " Andrew Morton
2020-03-21 0:23 ` [to-be-updated] kcov-collect-coverage-from-interrupts.patch " Andrew Morton
2020-03-21 0:23 ` [to-be-updated] usb-core-kcov-collect-coverage-from-usb-complete-callback.patch " Andrew Morton
2020-03-21 0:27 ` + kcov-cleanup-debug-messages.patch added to " Andrew Morton
2020-03-21 0:27 ` + kcov-fix-potential-use-after-free-in-kcov_remote_start.patch " Andrew Morton
2020-03-21 0:27 ` + kcov-move-t-kcov-assignments-into-kcov_start-stop.patch " Andrew Morton
2020-03-21 0:27 ` + kcov-move-t-kcov_sequence-assignment.patch " Andrew Morton
2020-03-21 0:27 ` + kcov-use-t-kcov_mode-as-enabled-indicator.patch " Andrew Morton
2020-03-21 0:27 ` + kcov-collect-coverage-from-interrupts.patch " Andrew Morton
2020-03-21 0:27 ` + usb-core-kcov-collect-coverage-from-usb-complete-callback.patch " Andrew Morton
2020-03-21 0:40 ` + dynamic_debug-use-address-of-operator-on-section-symbols.patch " Andrew Morton
2020-03-21 0:45 ` + mm-vmscanc-do_try_to_free_pages-clean-code-by-removing-unnecessary-assignment.patch " Andrew Morton
2020-03-21 0:54 ` + mm-compaction-disable-compact_unevictable_allowed-on-rt-v5.patch " Andrew Morton
2020-03-21 1:22 ` + mm-swap-make-page_evictable-inline.patch " Andrew Morton
2020-03-21 1:22 ` + mm-swap-use-smp_mb__after_atomic-to-order-lru-bit-set.patch " Andrew Morton
2020-03-21 2:07 ` + sparcx86-vdso-remove-meaningless-undefining-config_optimize_inlining.patch " Andrew Morton
2020-03-21 2:07 ` + compiler-remove-config_optimize_inlining-entirely.patch " Andrew Morton
2020-03-21 2:13 ` + mm-swap-make-page_evictable-inline-fix.patch " Andrew Morton
2020-03-21 2:23 ` + selftests-kmod-fix-handling-test-numbers-above-9.patch " Andrew Morton
2020-03-21 2:42 ` + mm-hugetlbc-fix-printk-format-warning-for-32-bit-phys_addr_t.patch " Andrew Morton
2020-03-21 2:42 ` + mm-hugetlbc-fix-printk-format-warning-for-32-bit-phys_addr_t-fix.patch " Andrew Morton
2020-03-21 2:48 ` [to-be-updated] mm-sparsec-use-kvmalloc_node-kvfree-to-alloc-free-memmap-for-the-classic-sparse.patch removed from " Andrew Morton
2020-03-21 2:48 ` + mm-sparsec-use-kvmalloc-kvfree-to-alloc-free-memmap-for-the-classic-sparse.patch added to " Andrew Morton
2020-03-21 3:05 ` + mm-memory_hotplug-use-__pfn_to_section-instead-of-open-coding.patch " Andrew Morton
2020-03-21 20:24 ` + mm-swap_statec-use-the-same-way-to-count-page-in-_swap_cache.patch " Andrew Morton
2020-03-21 20:36 ` + change-email-address-for-pali-rohar.patch " Andrew Morton
2020-03-21 20:41 ` + hugetlb_cgroup-fix-illegal-access-to-memory.patch " Andrew Morton
2020-03-21 20:43 ` + scripts-spellingtxt-add-more-spellings-to-spellingtxt.patch " Andrew Morton
2020-03-21 21:14 ` + mm-sparsec-move-subsection_map-related-functions-together-fix.patch " Andrew Morton
2020-03-21 22:17 ` mmotm 2020-03-21-15-17 uploaded Andrew Morton
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=20200318210800.S3VUGNL_g%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=gechangwei@live.cn \
--cc=ghe@suse.com \
--cc=jiangqi903@gmail.com \
--cc=jlbec@evilplan.org \
--cc=joseph.qi@linux.alibaba.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark@fasheh.com \
--cc=mm-commits@vger.kernel.org \
--cc=piaojun@huawei.com \
--cc=tiwai@suse.de \
/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