Commit 5c38b7d3 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'xtensa-20200712' of git://github.com/jcmvbkbc/linux-xtensa

Pull Xtensa fixes from Max Filippov:

 - fix __sync_fetch_and_{and,or}_4 declarations to avoid build warning

 - update *pos in cpuinfo_op.next to avoid runtime warning

 - use for_each_set_bit in xtensa_pmu_irq_handler instead of open-coding
   it

* tag 'xtensa-20200712' of git://github.com/jcmvbkbc/linux-xtensa:
  xtensa: simplify xtensa_pmu_irq_handler
  xtensa: update *pos in cpuinfo_op.next
  xtensa: fix __sync_fetch_and_{and,or}_4 declarations
parents 4437dd6e ee769ebb
...@@ -362,9 +362,7 @@ irqreturn_t xtensa_pmu_irq_handler(int irq, void *dev_id) ...@@ -362,9 +362,7 @@ irqreturn_t xtensa_pmu_irq_handler(int irq, void *dev_id)
struct xtensa_pmu_events *ev = this_cpu_ptr(&xtensa_pmu_events); struct xtensa_pmu_events *ev = this_cpu_ptr(&xtensa_pmu_events);
unsigned i; unsigned i;
for (i = find_first_bit(ev->used_mask, XCHAL_NUM_PERF_COUNTERS); for_each_set_bit(i, ev->used_mask, XCHAL_NUM_PERF_COUNTERS) {
i < XCHAL_NUM_PERF_COUNTERS;
i = find_next_bit(ev->used_mask, XCHAL_NUM_PERF_COUNTERS, i + 1)) {
uint32_t v = get_er(XTENSA_PMU_PMSTAT(i)); uint32_t v = get_er(XTENSA_PMU_PMSTAT(i));
struct perf_event *event = ev->event[i]; struct perf_event *event = ev->event[i];
struct hw_perf_event *hwc = &event->hw; struct hw_perf_event *hwc = &event->hw;
......
...@@ -724,7 +724,8 @@ c_start(struct seq_file *f, loff_t *pos) ...@@ -724,7 +724,8 @@ c_start(struct seq_file *f, loff_t *pos)
static void * static void *
c_next(struct seq_file *f, void *v, loff_t *pos) c_next(struct seq_file *f, void *v, loff_t *pos)
{ {
return NULL; ++*pos;
return c_start(f, pos);
} }
static void static void
......
...@@ -87,13 +87,13 @@ void __xtensa_libgcc_window_spill(void) ...@@ -87,13 +87,13 @@ void __xtensa_libgcc_window_spill(void)
} }
EXPORT_SYMBOL(__xtensa_libgcc_window_spill); EXPORT_SYMBOL(__xtensa_libgcc_window_spill);
unsigned long __sync_fetch_and_and_4(unsigned long *p, unsigned long v) unsigned int __sync_fetch_and_and_4(volatile void *p, unsigned int v)
{ {
BUG(); BUG();
} }
EXPORT_SYMBOL(__sync_fetch_and_and_4); EXPORT_SYMBOL(__sync_fetch_and_and_4);
unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v) unsigned int __sync_fetch_and_or_4(volatile void *p, unsigned int v)
{ {
BUG(); BUG();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment