Hello, On Sat, Aug 14, 2021 at 08:20:18PM -0700, Junhua Huang wrote: > From: Junhua Huang <huang.junhua@xxxxxxxxxx> > > We use pcpu_next_fit_region to find the next fit region for alloc. Once > return, the region fit the request and then break the loop, or get the > next start offset from pcpu_is_populated. So there is no necessary to > add bits to bit_off. At the same time, bits will set 0 in > pcpu_next_fit_region each time, so I think it is unnecessary to > set bits zero in pcpu_for_each_fit_region loops. > I think you're right in this instance, but I don't think this change is correct as a whole. > Signed-off-by: Junhua Huang <huang.junhua@xxxxxxxxxx> > --- > mm/percpu.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/mm/percpu.c b/mm/percpu.c > index 7f2e0151c4e2..ec7a5d10f6c9 100644 > --- a/mm/percpu.c > +++ b/mm/percpu.c > @@ -489,7 +489,6 @@ static void pcpu_next_fit_region(struct pcpu_chunk *chunk, int alloc_bits, > for (pcpu_next_fit_region((chunk), (alloc_bits), (align), &(bit_off), \ > &(bits)); \ > (bit_off) < pcpu_chunk_map_bits((chunk)); \ > - (bit_off) += (bits), \ Removing this makes the iterator by itself wrong. While correct in the current usage, it could potentially be wrong for the next. > pcpu_next_fit_region((chunk), (alloc_bits), (align), &(bit_off), \ > &(bits))) > > @@ -1126,7 +1125,6 @@ static int pcpu_find_block_fit(struct pcpu_chunk *chunk, int alloc_bits, > break; > > bit_off = next_off; > - bits = 0; > } > > if (bit_off == pcpu_chunk_map_bits(chunk)) > -- > 2.25.1 > > Thanks, Dennis