lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 19 Jul 2020 00:06:28 -0400 From: Joel Fernandes <joel@...lfernandes.org> To: LKML <linux-kernel@...r.kernel.org> Cc: Josh Triplett <josh@...htriplett.org>, Lai Jiangshan <jiangshanlai@...il.com>, Mathieu Desnoyers <mathieu.desnoyers@...icios.com>, "Paul E. McKenney" <paulmck@...nel.org>, rcu <rcu@...r.kernel.org>, Steven Rostedt <rostedt@...dmis.org> Subject: Re: [PATCH RFC v2] rcu/segcblist: Add counters to segcblist datastructure On Sat, Jul 18, 2020 at 11:55 PM Joel Fernandes (Google) <joel@...lfernandes.org> wrote: [...] > /* If no callbacks moved, nothing more need be done. */ > @@ -419,10 +494,9 @@ void rcu_segcblist_advance(struct rcu_segcblist *rsclp, unsigned long seq) > * callbacks. The overall effect is to copy down the later pointers > * into the gap that was created by the now-ready segments. > */ > - for (j = RCU_WAIT_TAIL; i < RCU_NEXT_TAIL; i++, j++) { > - if (rsclp->tails[j] == rsclp->tails[RCU_NEXT_TAIL]) > - break; /* No more callbacks. */ > + for (j = RCU_WAIT_TAIL; i < RCU_NEXT_TAIL && j < RCU_NEXT_TAIL; i++, j++) { > WRITE_ONCE(rsclp->tails[j], rsclp->tails[i]); > + rcu_segcblist_move_seglen(rsclp, i, j); > rsclp->gp_seq[j] = rsclp->gp_seq[i]; > } Unfortunately I broke this code, _sigh_. I need to reinstate the if (rsclp->tails[j] == rsclp->tails[RCU_NEXT_TAIL]) , I completely misunderstood that.
Powered by blists - more mailing lists