File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -879,8 +879,8 @@ static int hw_perf_event_reset(struct perf_event *event)
879
879
u64 prev , new ;
880
880
int err ;
881
881
882
+ prev = local64_read (& event -> hw .prev_count );
882
883
do {
883
- prev = local64_read (& event -> hw .prev_count );
884
884
err = ecctr (event -> hw .config , & new );
885
885
if (err ) {
886
886
if (err != 3 )
@@ -892,7 +892,7 @@ static int hw_perf_event_reset(struct perf_event *event)
892
892
*/
893
893
new = 0 ;
894
894
}
895
- } while (local64_cmpxchg (& event -> hw .prev_count , prev , new ) != prev );
895
+ } while (! local64_try_cmpxchg (& event -> hw .prev_count , & prev , new ));
896
896
897
897
return err ;
898
898
}
@@ -902,12 +902,12 @@ static void hw_perf_event_update(struct perf_event *event)
902
902
u64 prev , new , delta ;
903
903
int err ;
904
904
905
+ prev = local64_read (& event -> hw .prev_count );
905
906
do {
906
- prev = local64_read (& event -> hw .prev_count );
907
907
err = ecctr (event -> hw .config , & new );
908
908
if (err )
909
909
return ;
910
- } while (local64_cmpxchg (& event -> hw .prev_count , prev , new ) != prev );
910
+ } while (! local64_try_cmpxchg (& event -> hw .prev_count , & prev , new ));
911
911
912
912
delta = (prev <= new ) ? new - prev
913
913
: (-1ULL - prev ) + new + 1 ; /* overflow */
You can’t perform that action at this time.
0 commit comments