Message ID | 1443860438-144926-1-git-send-email-feng.wu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2015/10/3 16:20, Feng Wu wrote: > irq_set_vcpu_affinity() is needed when CONFIG_SMP=n, so move the > definition out of "#ifdef CONFIG_SMP" > > Suggested-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Feng Wu <feng.wu@intel.com> Reviewed-by: Jiang Liu <jiang.liu@linux.intel.com> > --- > kernel/irq/manage.c | 62 ++++++++++++++++++++++++++--------------------------- > 1 file changed, 31 insertions(+), 31 deletions(-) > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c > index 1c58655..90b378d 100644 > --- a/kernel/irq/manage.c > +++ b/kernel/irq/manage.c > @@ -258,37 +258,6 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) > } > EXPORT_SYMBOL_GPL(irq_set_affinity_hint); > > -/** > - * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt > - * @irq: interrupt number to set affinity > - * @vcpu_info: vCPU specific data > - * > - * This function uses the vCPU specific data to set the vCPU > - * affinity for an irq. The vCPU specific data is passed from > - * outside, such as KVM. One example code path is as below: > - * KVM -> IOMMU -> irq_set_vcpu_affinity(). > - */ > -int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) > -{ > - unsigned long flags; > - struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); > - struct irq_data *data; > - struct irq_chip *chip; > - int ret = -ENOSYS; > - > - if (!desc) > - return -EINVAL; > - > - data = irq_desc_get_irq_data(desc); > - chip = irq_data_get_irq_chip(data); > - if (chip && chip->irq_set_vcpu_affinity) > - ret = chip->irq_set_vcpu_affinity(data, vcpu_info); > - irq_put_desc_unlock(desc, flags); > - > - return ret; > -} > -EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); > - > static void irq_affinity_notify(struct work_struct *work) > { > struct irq_affinity_notify *notify = > @@ -424,6 +393,37 @@ setup_affinity(struct irq_desc *desc, struct cpumask *mask) > } > #endif > > +/** > + * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt > + * @irq: interrupt number to set affinity > + * @vcpu_info: vCPU specific data > + * > + * This function uses the vCPU specific data to set the vCPU > + * affinity for an irq. The vCPU specific data is passed from > + * outside, such as KVM. One example code path is as below: > + * KVM -> IOMMU -> irq_set_vcpu_affinity(). > + */ > +int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) > +{ > + unsigned long flags; > + struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); > + struct irq_data *data; > + struct irq_chip *chip; > + int ret = -ENOSYS; > + > + if (!desc) > + return -EINVAL; > + > + data = irq_desc_get_irq_data(desc); > + chip = irq_data_get_irq_chip(data); > + if (chip && chip->irq_set_vcpu_affinity) > + ret = chip->irq_set_vcpu_affinity(data, vcpu_info); > + irq_put_desc_unlock(desc, flags); > + > + return ret; > +} > +EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); > + > void __disable_irq(struct irq_desc *desc) > { > if (!desc->depth++) > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Thomas & Paolo, > -----Original Message----- > From: Jiang Liu [mailto:jiang.liu@linux.intel.com] > Sent: Saturday, October 03, 2015 5:11 PM > To: Wu, Feng; tglx@linutronix.de; pbonzini@redhat.com > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] genirq: Move irq_set_vcpu_affinity out of "#ifdef > CONFIG_SMP" > > On 2015/10/3 16:20, Feng Wu wrote: > > irq_set_vcpu_affinity() is needed when CONFIG_SMP=n, so move the > > definition out of "#ifdef CONFIG_SMP" What is your option about this patch, Thanks a lot! Thanks, Feng > > > > Suggested-by: Paolo Bonzini <pbonzini@redhat.com> > > Signed-off-by: Feng Wu <feng.wu@intel.com> > > Reviewed-by: Jiang Liu <jiang.liu@linux.intel.com> > > > --- > > kernel/irq/manage.c | 62 > ++++++++++++++++++++++++++--------------------------- > > 1 file changed, 31 insertions(+), 31 deletions(-) > > > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c > > index 1c58655..90b378d 100644 > > --- a/kernel/irq/manage.c > > +++ b/kernel/irq/manage.c > > @@ -258,37 +258,6 @@ int irq_set_affinity_hint(unsigned int irq, const > struct cpumask *m) > > } > > EXPORT_SYMBOL_GPL(irq_set_affinity_hint); > > > > -/** > > - * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt > > - * @irq: interrupt number to set affinity > > - * @vcpu_info: vCPU specific data > > - * > > - * This function uses the vCPU specific data to set the vCPU > > - * affinity for an irq. The vCPU specific data is passed from > > - * outside, such as KVM. One example code path is as below: > > - * KVM -> IOMMU -> irq_set_vcpu_affinity(). > > - */ > > -int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) > > -{ > > - unsigned long flags; > > - struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); > > - struct irq_data *data; > > - struct irq_chip *chip; > > - int ret = -ENOSYS; > > - > > - if (!desc) > > - return -EINVAL; > > - > > - data = irq_desc_get_irq_data(desc); > > - chip = irq_data_get_irq_chip(data); > > - if (chip && chip->irq_set_vcpu_affinity) > > - ret = chip->irq_set_vcpu_affinity(data, vcpu_info); > > - irq_put_desc_unlock(desc, flags); > > - > > - return ret; > > -} > > -EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); > > - > > static void irq_affinity_notify(struct work_struct *work) > > { > > struct irq_affinity_notify *notify = > > @@ -424,6 +393,37 @@ setup_affinity(struct irq_desc *desc, struct > cpumask *mask) > > } > > #endif > > > > +/** > > + * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt > > + * @irq: interrupt number to set affinity > > + * @vcpu_info: vCPU specific data > > + * > > + * This function uses the vCPU specific data to set the vCPU > > + * affinity for an irq. The vCPU specific data is passed from > > + * outside, such as KVM. One example code path is as below: > > + * KVM -> IOMMU -> irq_set_vcpu_affinity(). > > + */ > > +int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) > > +{ > > + unsigned long flags; > > + struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); > > + struct irq_data *data; > > + struct irq_chip *chip; > > + int ret = -ENOSYS; > > + > > + if (!desc) > > + return -EINVAL; > > + > > + data = irq_desc_get_irq_data(desc); > > + chip = irq_data_get_irq_chip(data); > > + if (chip && chip->irq_set_vcpu_affinity) > > + ret = chip->irq_set_vcpu_affinity(data, vcpu_info); > > + irq_put_desc_unlock(desc, flags); > > + > > + return ret; > > +} > > +EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); > > + > > void __disable_irq(struct irq_desc *desc) > > { > > if (!desc->depth++) > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 08/10/2015 06:43, Wu, Feng wrote: > Hi Thomas & Paolo, > > What is your option about this patch, Thanks a lot! > > Thanks, > Feng > >>> diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c >>> index 1c58655..90b378d 100644 >>> --- a/kernel/irq/manage.c >>> +++ b/kernel/irq/manage.c >>> @@ -258,37 +258,6 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) >>> } >>> EXPORT_SYMBOL_GPL(irq_set_affinity_hint); >>> >>> -/** >>> - * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt >>> - * @irq: interrupt number to set affinity >>> - * @vcpu_info: vCPU specific data >>> - * >>> - * This function uses the vCPU specific data to set the vCPU >>> - * affinity for an irq. The vCPU specific data is passed from >>> - * outside, such as KVM. One example code path is as below: >>> - * KVM -> IOMMU -> irq_set_vcpu_affinity(). >>> - */ >>> -int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) >>> -{ >>> - unsigned long flags; >>> - struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); >>> - struct irq_data *data; >>> - struct irq_chip *chip; >>> - int ret = -ENOSYS; >>> - >>> - if (!desc) >>> - return -EINVAL; >>> - >>> - data = irq_desc_get_irq_data(desc); >>> - chip = irq_data_get_irq_chip(data); >>> - if (chip && chip->irq_set_vcpu_affinity) >>> - ret = chip->irq_set_vcpu_affinity(data, vcpu_info); >>> - irq_put_desc_unlock(desc, flags); >>> - >>> - return ret; >>> -} >>> -EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); >>> - >>> static void irq_affinity_notify(struct work_struct *work) >>> { >>> struct irq_affinity_notify *notify = >>> @@ -424,6 +393,37 @@ setup_affinity(struct irq_desc *desc, struct >> cpumask *mask) >>> } >>> #endif >>> >>> +/** >>> + * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt >>> + * @irq: interrupt number to set affinity >>> + * @vcpu_info: vCPU specific data >>> + * >>> + * This function uses the vCPU specific data to set the vCPU >>> + * affinity for an irq. The vCPU specific data is passed from >>> + * outside, such as KVM. One example code path is as below: >>> + * KVM -> IOMMU -> irq_set_vcpu_affinity(). >>> + */ >>> +int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) >>> +{ >>> + unsigned long flags; >>> + struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); >>> + struct irq_data *data; >>> + struct irq_chip *chip; >>> + int ret = -ENOSYS; >>> + >>> + if (!desc) >>> + return -EINVAL; >>> + >>> + data = irq_desc_get_irq_data(desc); >>> + chip = irq_data_get_irq_chip(data); >>> + if (chip && chip->irq_set_vcpu_affinity) >>> + ret = chip->irq_set_vcpu_affinity(data, vcpu_info); >>> + irq_put_desc_unlock(desc, flags); >>> + >>> + return ret; >>> +} >>> +EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); >>> + >>> void __disable_irq(struct irq_desc *desc) >>> { >>> if (!desc->depth++) >>> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 1c58655..90b378d 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -258,37 +258,6 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m) } EXPORT_SYMBOL_GPL(irq_set_affinity_hint); -/** - * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt - * @irq: interrupt number to set affinity - * @vcpu_info: vCPU specific data - * - * This function uses the vCPU specific data to set the vCPU - * affinity for an irq. The vCPU specific data is passed from - * outside, such as KVM. One example code path is as below: - * KVM -> IOMMU -> irq_set_vcpu_affinity(). - */ -int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) -{ - unsigned long flags; - struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); - struct irq_data *data; - struct irq_chip *chip; - int ret = -ENOSYS; - - if (!desc) - return -EINVAL; - - data = irq_desc_get_irq_data(desc); - chip = irq_data_get_irq_chip(data); - if (chip && chip->irq_set_vcpu_affinity) - ret = chip->irq_set_vcpu_affinity(data, vcpu_info); - irq_put_desc_unlock(desc, flags); - - return ret; -} -EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); - static void irq_affinity_notify(struct work_struct *work) { struct irq_affinity_notify *notify = @@ -424,6 +393,37 @@ setup_affinity(struct irq_desc *desc, struct cpumask *mask) } #endif +/** + * irq_set_vcpu_affinity - Set vcpu affinity for the interrupt + * @irq: interrupt number to set affinity + * @vcpu_info: vCPU specific data + * + * This function uses the vCPU specific data to set the vCPU + * affinity for an irq. The vCPU specific data is passed from + * outside, such as KVM. One example code path is as below: + * KVM -> IOMMU -> irq_set_vcpu_affinity(). + */ +int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info) +{ + unsigned long flags; + struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0); + struct irq_data *data; + struct irq_chip *chip; + int ret = -ENOSYS; + + if (!desc) + return -EINVAL; + + data = irq_desc_get_irq_data(desc); + chip = irq_data_get_irq_chip(data); + if (chip && chip->irq_set_vcpu_affinity) + ret = chip->irq_set_vcpu_affinity(data, vcpu_info); + irq_put_desc_unlock(desc, flags); + + return ret; +} +EXPORT_SYMBOL_GPL(irq_set_vcpu_affinity); + void __disable_irq(struct irq_desc *desc) { if (!desc->depth++)
irq_set_vcpu_affinity() is needed when CONFIG_SMP=n, so move the definition out of "#ifdef CONFIG_SMP" Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Feng Wu <feng.wu@intel.com> --- kernel/irq/manage.c | 62 ++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 31 deletions(-)