Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 258144
b: refs/heads/master
c: b02f0c2
h: refs/heads/master
v: v3
  • Loading branch information
Jan Glauber authored and Martin Schwidefsky committed Jul 24, 2011
1 parent 28b4e8a commit 8c4f971
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 50a15981a1fac7e019ff7c3cba87531fb580f065
refs/heads/master: b02f0c2ea25781e0f94b4fc8f6f85582057857b3
15 changes: 5 additions & 10 deletions trunk/drivers/s390/cio/qdio_thinint.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,11 @@ void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr)
}
}

static inline u32 shared_ind_set(void)
static inline u32 clear_shared_ind(void)
{
return q_indicators[TIQDIO_SHARED_IND].ind;
if (!atomic_read(&q_indicators[TIQDIO_SHARED_IND].count))
return 0;
return xchg(&q_indicators[TIQDIO_SHARED_IND].ind, 0);
}

/**
Expand All @@ -107,7 +109,7 @@ static inline u32 shared_ind_set(void)
*/
static void tiqdio_thinint_handler(void *alsi, void *data)
{
u32 si_used = shared_ind_set();
u32 si_used = clear_shared_ind();
struct qdio_q *q;

last_ai_time = S390_lowcore.int_clock;
Expand Down Expand Up @@ -150,13 +152,6 @@ static void tiqdio_thinint_handler(void *alsi, void *data)
qperf_inc(q, adapter_int);
}
rcu_read_unlock();

/*
* If the shared indicator was used clear it now after all queues
* were processed.
*/
if (si_used && shared_ind_set())
xchg(&q_indicators[TIQDIO_SHARED_IND].ind, 0);
}

static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset)
Expand Down

0 comments on commit 8c4f971

Please sign in to comment.