mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +00:00
xen/events: reduce externally visible helper functions
get_evtchn_to_irq() has only one external user while irq_from_evtchn() provides the same functionality and is exported for a wider user base. Modify the only external user of get_evtchn_to_irq() to use irq_from_evtchn() instead and make get_evtchn_to_irq() static. evtchn_from_irq() and irq_from_virq() have a single external user and can easily be combined to a new helper irq_evtchn_from_virq() allowing to drop irq_from_virq() and to make evtchn_from_irq() static. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
parent
f96c6c588c
commit
686464514f
@ -171,11 +171,11 @@ static void evtchn_2l_handle_events(unsigned cpu, struct evtchn_loop_ctrl *ctrl)
|
||||
int i;
|
||||
struct shared_info *s = HYPERVISOR_shared_info;
|
||||
struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
|
||||
evtchn_port_t evtchn;
|
||||
|
||||
/* Timer interrupt has highest priority. */
|
||||
irq = irq_from_virq(cpu, VIRQ_TIMER);
|
||||
irq = irq_evtchn_from_virq(cpu, VIRQ_TIMER, &evtchn);
|
||||
if (irq != -1) {
|
||||
evtchn_port_t evtchn = evtchn_from_irq(irq);
|
||||
word_idx = evtchn / BITS_PER_LONG;
|
||||
bit_idx = evtchn % BITS_PER_LONG;
|
||||
if (active_evtchns(cpu, s, word_idx) & (1ULL << bit_idx))
|
||||
@ -328,9 +328,9 @@ irqreturn_t xen_debug_interrupt(int irq, void *dev_id)
|
||||
for (i = 0; i < EVTCHN_2L_NR_CHANNELS; i++) {
|
||||
if (sync_test_bit(i, BM(sh->evtchn_pending))) {
|
||||
int word_idx = i / BITS_PER_EVTCHN_WORD;
|
||||
printk(" %d: event %d -> irq %d%s%s%s\n",
|
||||
printk(" %d: event %d -> irq %u%s%s%s\n",
|
||||
cpu_from_evtchn(i), i,
|
||||
get_evtchn_to_irq(i),
|
||||
irq_from_evtchn(i),
|
||||
sync_test_bit(word_idx, BM(&v->evtchn_pending_sel))
|
||||
? "" : " l2-clear",
|
||||
!sync_test_bit(i, BM(sh->evtchn_mask))
|
||||
|
@ -248,7 +248,7 @@ static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_evtchn_to_irq(evtchn_port_t evtchn)
|
||||
static int get_evtchn_to_irq(evtchn_port_t evtchn)
|
||||
{
|
||||
if (evtchn >= xen_evtchn_max_channels())
|
||||
return -1;
|
||||
@ -415,7 +415,7 @@ static void xen_irq_info_cleanup(struct irq_info *info)
|
||||
/*
|
||||
* Accessors for packed IRQ information.
|
||||
*/
|
||||
evtchn_port_t evtchn_from_irq(unsigned irq)
|
||||
static evtchn_port_t evtchn_from_irq(unsigned int irq)
|
||||
{
|
||||
const struct irq_info *info = NULL;
|
||||
|
||||
@ -433,9 +433,14 @@ unsigned int irq_from_evtchn(evtchn_port_t evtchn)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(irq_from_evtchn);
|
||||
|
||||
int irq_from_virq(unsigned int cpu, unsigned int virq)
|
||||
int irq_evtchn_from_virq(unsigned int cpu, unsigned int virq,
|
||||
evtchn_port_t *evtchn)
|
||||
{
|
||||
return per_cpu(virq_to_irq, cpu)[virq];
|
||||
int irq = per_cpu(virq_to_irq, cpu)[virq];
|
||||
|
||||
*evtchn = evtchn_from_irq(irq);
|
||||
|
||||
return irq;
|
||||
}
|
||||
|
||||
static enum ipi_vector ipi_from_irq(unsigned irq)
|
||||
|
@ -33,7 +33,6 @@ struct evtchn_ops {
|
||||
|
||||
extern const struct evtchn_ops *evtchn_ops;
|
||||
|
||||
int get_evtchn_to_irq(evtchn_port_t evtchn);
|
||||
void handle_irq_for_port(evtchn_port_t port, struct evtchn_loop_ctrl *ctrl);
|
||||
|
||||
unsigned int cpu_from_evtchn(evtchn_port_t evtchn);
|
||||
|
@ -100,8 +100,8 @@ void xen_poll_irq_timeout(int irq, u64 timeout);
|
||||
|
||||
/* Determine the IRQ which is bound to an event channel */
|
||||
unsigned int irq_from_evtchn(evtchn_port_t evtchn);
|
||||
int irq_from_virq(unsigned int cpu, unsigned int virq);
|
||||
evtchn_port_t evtchn_from_irq(unsigned irq);
|
||||
int irq_evtchn_from_virq(unsigned int cpu, unsigned int virq,
|
||||
evtchn_port_t *evtchn);
|
||||
|
||||
int xen_set_callback_via(uint64_t via);
|
||||
int xen_evtchn_do_upcall(void);
|
||||
|
Loading…
Reference in New Issue
Block a user