Merge 0d508cefcd ("vdpa/mlx5: Fix mlx5_vdpa_get_config() endianness on big-endian machines") into android16-6.12-lts
Steps on the way to 6.12.31 Resolves merge conflicts in: drivers/media/usb/uvc/uvc_ctrl.c Change-Id: I663a7a27e554e5a9d426532ff17f7dffc9619d22 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
+1
-1
@@ -162,7 +162,7 @@ static inline bool rcu_seq_done_exact(unsigned long *sp, unsigned long s)
|
||||
{
|
||||
unsigned long cur_s = READ_ONCE(*sp);
|
||||
|
||||
return ULONG_CMP_GE(cur_s, s) || ULONG_CMP_LT(cur_s, s - (2 * RCU_SEQ_STATE_MASK + 1));
|
||||
return ULONG_CMP_GE(cur_s, s) || ULONG_CMP_LT(cur_s, s - (3 * RCU_SEQ_STATE_MASK + 1));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+11
-4
@@ -1822,10 +1822,14 @@ static noinline_for_stack bool rcu_gp_init(void)
|
||||
|
||||
/* Advance to a new grace period and initialize state. */
|
||||
record_gp_stall_check_time();
|
||||
/*
|
||||
* A new wait segment must be started before gp_seq advanced, so
|
||||
* that previous gp waiters won't observe the new gp_seq.
|
||||
*/
|
||||
start_new_poll = rcu_sr_normal_gp_init();
|
||||
/* Record GP times before starting GP, hence rcu_seq_start(). */
|
||||
rcu_seq_start(&rcu_state.gp_seq);
|
||||
ASSERT_EXCLUSIVE_WRITER(rcu_state.gp_seq);
|
||||
start_new_poll = rcu_sr_normal_gp_init();
|
||||
trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, TPS("start"));
|
||||
rcu_poll_gp_seq_start(&rcu_state.gp_seq_polled_snap);
|
||||
raw_spin_unlock_irq_rcu_node(rnp);
|
||||
@@ -4183,14 +4187,17 @@ EXPORT_SYMBOL_GPL(get_state_synchronize_rcu);
|
||||
*/
|
||||
void get_state_synchronize_rcu_full(struct rcu_gp_oldstate *rgosp)
|
||||
{
|
||||
struct rcu_node *rnp = rcu_get_root();
|
||||
|
||||
/*
|
||||
* Any prior manipulation of RCU-protected data must happen
|
||||
* before the loads from ->gp_seq and ->expedited_sequence.
|
||||
*/
|
||||
smp_mb(); /* ^^^ */
|
||||
rgosp->rgos_norm = rcu_seq_snap(&rnp->gp_seq);
|
||||
|
||||
// Yes, rcu_state.gp_seq, not rnp_root->gp_seq, the latter's use
|
||||
// in poll_state_synchronize_rcu_full() notwithstanding. Use of
|
||||
// the latter here would result in too-short grace periods due to
|
||||
// interactions with newly onlined CPUs.
|
||||
rgosp->rgos_norm = rcu_seq_snap(&rcu_state.gp_seq);
|
||||
rgosp->rgos_exp = rcu_seq_snap(&rcu_state.expedited_sequence);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(get_state_synchronize_rcu_full);
|
||||
|
||||
Reference in New Issue
Block a user