search for: unbind_from_irqhandl

Displaying 20 results from an estimated 93 matches for "unbind_from_irqhandl".

Did you mean: unbind_from_irqhandler
2007 Nov 06
0
[PATCH] [PV-ON-HVM] Fix evtchn of unbind_from_irqhandler()
Hi All, When xm block-detach command was done on PV-ON-HVM, the response of other disks was lost. It is because a wrong event channel was invalidated when detaching it. Not the evtchn number but the irq number is invalidated specifying it. Signed-off-by: Takanori Kasai <kasai.takanori@jp.fujitsu.com> Signed-off-by: Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com> Signed-off-by:
2013 Feb 15
1
[PATCH 7/8] netback: split event channels support
...tchn, xenvif_rx_interrupt, 0, + vif->dev->name, vif); + if (err < 0) + goto err_tx_unbind; + vif->rx_irq = err; + disable_irq(vif->rx_irq); + } xenvif_get(vif); @@ -367,6 +408,10 @@ int xenvif_connect(struct xenvif *vif, rtnl_unlock(); return 0; + +err_tx_unbind: + unbind_from_irqhandler(vif->tx_irq, vif); + vif->tx_irq = 0; err_rx_unmap: xen_netbk_unmap_frontend_rings(vif, (void *)vif->rx.sring); vif->nr_rx_handles = 0; @@ -406,8 +451,13 @@ void xenvif_disconnect(struct xenvif *vif) atomic_dec(&vif->refcnt); wait_event(vif->waiting_to_free, atomic_...
2013 May 21
1
[PATCH net-next V2 2/2] xen-netfront: split event channels support for Xen frontend driver
...t_tx_interrupt(irq, dev_id); + xennet_rx_interrupt(irq, dev_id); return IRQ_HANDLED; } @@ -1451,9 +1471,14 @@ static void xennet_disconnect_backend(struct netfront_info *info) spin_unlock_irq(&info->tx_lock); spin_unlock_bh(&info->rx_lock); - if (info->netdev->irq) - unbind_from_irqhandler(info->netdev->irq, info->netdev); - info->evtchn = info->netdev->irq = 0; + if (info->tx_irq && (info->tx_irq == info->rx_irq)) + unbind_from_irqhandler(info->tx_irq, info); + if (info->tx_irq && (info->tx_irq != info->rx_irq)) { + unbind_f...
2010 Sep 16
10
PV driver domains and S3 sleep
Hello, The topic is self-explanatory: how to ensure that a PV driver domain correctly prepares its PCI devices for S3 sleep? If I do "pm-suspend" in dom0, and the driver domain has active network interfaces, suspend hangs the system. Yes, in case of this particular machine, suspend works fine when there is no driver domain. It is possible to manually invoke scripts from
2013 Dec 15
1
[PATCH v3 [resend] 14/18] smp, x86, xen: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2013 Dec 15
1
[PATCH v3 [resend] 14/18] smp, x86, xen: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2013 Dec 15
1
[PATCH v3 [resend] 14/18] smp, x86, xen: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2017 Nov 01
3
[PATCH-tip v2 0/2] x86/paravirt: Enable users to choose PV lock type
v1->v2: - Make pv_spinlock_type a bit mask for easier checking. - Add patch 2 to deprecate xen_nopvspin v1 - https://lkml.org/lkml/2017/11/1/381 Patch 1 adds a new pvlock_type parameter for the administrators to specify the type of lock to be used in a para-virtualized kernel. Patch 2 deprecates Xen's xen_nopvspin parameter as it is no longer needed. Waiman Long (2): x86/paravirt:
2017 Nov 01
3
[PATCH-tip v2 0/2] x86/paravirt: Enable users to choose PV lock type
v1->v2: - Make pv_spinlock_type a bit mask for easier checking. - Add patch 2 to deprecate xen_nopvspin v1 - https://lkml.org/lkml/2017/11/1/381 Patch 1 adds a new pvlock_type parameter for the administrators to specify the type of lock to be used in a para-virtualized kernel. Patch 2 deprecates Xen's xen_nopvspin parameter as it is no longer needed. Waiman Long (2): x86/paravirt:
2017 Nov 01
0
[PATCH-tip v2 2/2] x86/xen: Deprecate xen_nopvspin
...cpu, per_cpu(lock_kicker_irq, cpu)); @@ -110,8 +105,7 @@ void xen_init_lock_cpu(int cpu) void xen_uninit_lock_cpu(int cpu) { - if (!xen_pvspin || - (pv_spinlock_type & (locktype_queued|locktype_unfair))) + if (pv_spinlock_type & (locktype_queued|locktype_unfair)) return; unbind_from_irqhandler(per_cpu(lock_kicker_irq, cpu), NULL); @@ -132,8 +126,7 @@ void xen_uninit_lock_cpu(int cpu) */ void __init xen_init_spinlocks(void) { - if (!xen_pvspin || - (pv_spinlock_type & (locktype_queued|locktype_unfair))) { + if (pv_spinlock_type & (locktype_queued|locktype_unfair)) { pr...
2008 Apr 01
0
[PATCH 008/112] xen: add resend_irq_on_evtchn() definition into events.c.
...+ static void enable_dynirq(unsigned int irq) { int evtchn = evtchn_from_irq(irq); diff --git a/include/xen/events.h b/include/xen/events.h index d99a3e0..acd8e06 100644 --- a/include/xen/events.h +++ b/include/xen/events.h @@ -31,6 +31,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi, void unbind_from_irqhandler(unsigned int irq, void *dev_id); void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); +int resend_irq_on_evtchn(unsigned int irq); static inline void notify_remote_via_evtchn(int port) { -- 1.5.3 -- yamahata
2008 Apr 01
0
[PATCH 008/112] xen: add resend_irq_on_evtchn() definition into events.c.
...+ static void enable_dynirq(unsigned int irq) { int evtchn = evtchn_from_irq(irq); diff --git a/include/xen/events.h b/include/xen/events.h index d99a3e0..acd8e06 100644 --- a/include/xen/events.h +++ b/include/xen/events.h @@ -31,6 +31,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi, void unbind_from_irqhandler(unsigned int irq, void *dev_id); void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); +int resend_irq_on_evtchn(unsigned int irq); static inline void notify_remote_via_evtchn(int port) { -- 1.5.3 -- yamahata
2006 Dec 26
14
[PATCH] fix free of event channel in blkfront
Hi All, We tested the xm block-attach/detach command. It repeats block-attach/detach command for DomU and pv-on-hvm on HVM Domain. (block-attach -> block-detach -> block-attach -> block-detach -> ...) The block-attach command failed when repeating 256 times. It is because the channel had not been freed in blkfront. Therefore, it remain using the event channel. This patch is
2013 Sep 11
0
[RFC PATCH v2 21/25] smp, tile: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2013 Sep 11
0
[RFC PATCH v2 21/25] smp, tile: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2013 Sep 11
0
[RFC PATCH v2 21/25] smp, tile: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2015 Jan 23
0
[Resend Patch v4 11/16] smp, x86, xen: Kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -136,13 +134,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -191,18 +182,6 @@ static int xen_smp...
2015 Jan 23
0
[Resend Patch v4 11/16] smp, x86, xen: Kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -136,13 +134,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -191,18 +182,6 @@ static int xen_smp...
2013 Dec 04
0
[RFC PATCH v3 18/19] smp, tile: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...
2013 Dec 04
0
[RFC PATCH v3 18/19] smp, tile: kill SMP single function call interrupt
...id); static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id); /* @@ -123,13 +121,6 @@ static void xen_smp_intr_free(unsigned int cpu) kfree(per_cpu(xen_debug_irq, cpu).name); per_cpu(xen_debug_irq, cpu).name = NULL; } - if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { - unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, - NULL); - per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; - } if (xen_hvm_domain()) return; @@ -178,18 +169,6 @@ static int xen_smp...