Message ID | 20200921122224.7139-1-linmiaohe@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: swap: Use memset to fill the swap_map with SWAP_HAS_CACHE | expand |
On Mon, 21 Sep 2020 08:22:24 -0400 Miaohe Lin <linmiaohe@huawei.com> wrote: > We could use helper memset to fill the swap_map with SWAP_HAS_CACHE instead > of a direct loop here to simplify the code. Also we can remove the local > variable i and map this way. > > ... > > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -975,8 +975,7 @@ static int swap_alloc_cluster(struct swap_info_struct *si, swp_entry_t *slot) > { > unsigned long idx; > struct swap_cluster_info *ci; > - unsigned long offset, i; > - unsigned char *map; > + unsigned long offset; > > /* > * Should not even be attempting cluster allocations when huge > @@ -996,9 +995,7 @@ static int swap_alloc_cluster(struct swap_info_struct *si, swp_entry_t *slot) > alloc_cluster(si, idx); > cluster_set_count_flag(ci, SWAPFILE_CLUSTER, CLUSTER_FLAG_HUGE); > > - map = si->swap_map + offset; > - for (i = 0; i < SWAPFILE_CLUSTER; i++) > - map[i] = SWAP_HAS_CACHE; > + memset(si->swap_map + offset, SWAP_HAS_CACHE, SWAPFILE_CLUSTER); > unlock_cluster(ci); > swap_range_alloc(si, offset, SWAPFILE_CLUSTER); > *slot = swp_entry(si->type, offset); I suppose so. But it does assume that the ->swapmap array has the type char. If we ever change that, breakage will ensue.
diff --git a/mm/swapfile.c b/mm/swapfile.c index 8feaab31a3a9..b0b629b24e3a 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -975,8 +975,7 @@ static int swap_alloc_cluster(struct swap_info_struct *si, swp_entry_t *slot) { unsigned long idx; struct swap_cluster_info *ci; - unsigned long offset, i; - unsigned char *map; + unsigned long offset; /* * Should not even be attempting cluster allocations when huge @@ -996,9 +995,7 @@ static int swap_alloc_cluster(struct swap_info_struct *si, swp_entry_t *slot) alloc_cluster(si, idx); cluster_set_count_flag(ci, SWAPFILE_CLUSTER, CLUSTER_FLAG_HUGE); - map = si->swap_map + offset; - for (i = 0; i < SWAPFILE_CLUSTER; i++) - map[i] = SWAP_HAS_CACHE; + memset(si->swap_map + offset, SWAP_HAS_CACHE, SWAPFILE_CLUSTER); unlock_cluster(ci); swap_range_alloc(si, offset, SWAPFILE_CLUSTER); *slot = swp_entry(si->type, offset);
We could use helper memset to fill the swap_map with SWAP_HAS_CACHE instead of a direct loop here to simplify the code. Also we can remove the local variable i and map this way. Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> --- mm/swapfile.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)