@@ -117,7 +117,7 @@ void srcu_drive_gp(struct work_struct *wp)
117117 struct srcu_struct * ssp ;
118118
119119 ssp = container_of (wp , struct srcu_struct , srcu_work );
120- if (ssp -> srcu_gp_running || USHORT_CMP_GE (ssp -> srcu_idx , READ_ONCE (ssp -> srcu_idx_max )))
120+ if (ssp -> srcu_gp_running || ULONG_CMP_GE (ssp -> srcu_idx , READ_ONCE (ssp -> srcu_idx_max )))
121121 return ; /* Already running or nothing to do. */
122122
123123 /* Remove recently arrived callbacks and wait for readers. */
@@ -150,17 +150,17 @@ void srcu_drive_gp(struct work_struct *wp)
150150 * straighten that out.
151151 */
152152 WRITE_ONCE (ssp -> srcu_gp_running , false);
153- if (USHORT_CMP_LT (ssp -> srcu_idx , READ_ONCE (ssp -> srcu_idx_max )))
153+ if (ULONG_CMP_LT (ssp -> srcu_idx , READ_ONCE (ssp -> srcu_idx_max )))
154154 schedule_work (& ssp -> srcu_work );
155155}
156156EXPORT_SYMBOL_GPL (srcu_drive_gp );
157157
158158static void srcu_gp_start_if_needed (struct srcu_struct * ssp )
159159{
160- unsigned short cookie ;
160+ unsigned long cookie ;
161161
162162 cookie = get_state_synchronize_srcu (ssp );
163- if (USHORT_CMP_GE (READ_ONCE (ssp -> srcu_idx_max ), cookie ))
163+ if (ULONG_CMP_GE (READ_ONCE (ssp -> srcu_idx_max ), cookie ))
164164 return ;
165165 WRITE_ONCE (ssp -> srcu_idx_max , cookie );
166166 if (!READ_ONCE (ssp -> srcu_gp_running )) {
@@ -215,7 +215,7 @@ unsigned long get_state_synchronize_srcu(struct srcu_struct *ssp)
215215 barrier ();
216216 ret = (READ_ONCE (ssp -> srcu_idx ) + 3 ) & ~0x1 ;
217217 barrier ();
218- return ret & USHRT_MAX ;
218+ return ret ;
219219}
220220EXPORT_SYMBOL_GPL (get_state_synchronize_srcu );
221221
@@ -240,10 +240,10 @@ EXPORT_SYMBOL_GPL(start_poll_synchronize_srcu);
240240 */
241241bool poll_state_synchronize_srcu (struct srcu_struct * ssp , unsigned long cookie )
242242{
243- unsigned short cur_s = READ_ONCE (ssp -> srcu_idx );
243+ unsigned long cur_s = READ_ONCE (ssp -> srcu_idx );
244244
245245 barrier ();
246- return USHORT_CMP_GE (cur_s , cookie ) || USHORT_CMP_LT (cur_s , cookie - 3 );
246+ return ULONG_CMP_GE (cur_s , cookie ) || ULONG_CMP_LT (cur_s , cookie - 3 );
247247}
248248EXPORT_SYMBOL_GPL (poll_state_synchronize_srcu );
249249
0 commit comments