diff mbox

[for-2.7] Xen PCI passthrough: fix passthrough failure when no interrupt pin

Message ID 1469633448-10692-1-git-send-email-brogers@suse.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bruce Rogers July 27, 2016, 3:30 p.m. UTC
Commit 5a11d0f7 mistakenly converted a log message into an error
condition when no pin interrupt is found for the pci device being
passed through. Revert that part of the commit.

Signed-off-by: Bruce Rogers <brogers@suse.com>
---
 hw/xen/xen_pt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Cao jin July 28, 2016, 3:10 a.m. UTC | #1
hello bruce,

AFAIK, the message in error object will be printed to stderr or current 
monitor according whether we have a monitor. I just checked XEN_PT_LOG, 
message is only printed to stderr. If Xen pt device can be hotplugged 
via monitor command device_add, I guess using error object is right.

Yours Sincerely,
Cao jin

On 07/27/2016 11:30 PM, Bruce Rogers wrote:
> Commit 5a11d0f7 mistakenly converted a log message into an error
> condition when no pin interrupt is found for the pci device being
> passed through. Revert that part of the commit.
>
> Signed-off-by: Bruce Rogers <brogers@suse.com>
> ---
>   hw/xen/xen_pt.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
> index f593b04..b6d71bb 100644
> --- a/hw/xen/xen_pt.c
> +++ b/hw/xen/xen_pt.c
> @@ -842,7 +842,7 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
>           goto err_out;
>       }
>       if (!scratch) {
> -        error_setg(errp, "no pin interrupt");
> +        XEN_PT_LOG(d, "no pin interrupt\n");
>           goto out;
>       }
>
>
Bruce Rogers Aug. 1, 2016, 5:17 p.m. UTC | #2
Hi Cao, 

Upon re-reading your comment, I believe you are still thinking that 
it was right to use the error object in this context. The fact that this 
device has no pin interrupt is _not_ an error condition, and hence the 
use of error_setg() is not appropriate, and in fact causes Xen HVM PCI 
passthrough to fail, when it would otherwise succeed. 

This patch does not attempt to address any shortcomings with 
XEN_PT_LOG, since it is still in use in many other places in this source 
file. 

hth, 

Bruce 

>>> Cao jin <caoj.fnst@cn.fujitsu.com> 7/27/2016 9:10 PM >>>
hello bruce,

AFAIK, the message in error object will be printed to stderr or current
monitor according whether we have a monitor. I just checked XEN_PT_LOG,
message is only printed to stderr. If Xen pt device can be hotplugged
via monitor command device_add, I guess using error object is right.

Yours Sincerely,
Cao jin

On 07/27/2016 11:30 PM, Bruce Rogers wrote:
> Commit 5a11d0f7 mistakenly converted a log message into an error
> condition when no pin interrupt is found for the pci device being
> passed through. Revert that part of the commit.
>
> Signed-off-by: Bruce Rogers <brogers@suse.com>
> ---
>   hw/xen/xen_pt.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
> index f593b04..b6d71bb 100644
> --- a/hw/xen/xen_pt.c
> +++ b/hw/xen/xen_pt.c
> @@ -842,7 +842,7 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
>           goto err_out;
>       }
>       if (!scratch) {
> -        error_setg(errp, "no pin interrupt");
> +        XEN_PT_LOG(d, "no pin interrupt\n");
>           goto out;
>       }
>
>
Cao jin Aug. 4, 2016, 2:51 a.m. UTC | #3
On 08/02/2016 01:17 AM, Bruce Rogers wrote:
> Hi Cao,
>
>
> Upon re-reading your comment, I believe you are still thinking that
>
> it was right to use the error object in this context. The fact that this
>
> device has no pin interrupt is _not_ an error condition, and hence the
>
> use of error_setg() is not appropriate, and in fact causes Xen HVM PCI
>
> passthrough to fail, when it would otherwise succeed.
>

Hi bruce,

Thanks for pointing it out, I didn't have much knowledge on this topic, 
but you words buys me, I am fine with the patch.

>
> This patch does not attempt to address any shortcomings with
>
> XEN_PT_LOG, since it is still in use in many other places in this source
>
> file.
>
>
> hth,
>
>
> Bruce
>
>
Anthony PERARD Aug. 4, 2016, 2:08 p.m. UTC | #4
On Wed, Jul 27, 2016 at 09:30:48AM -0600, Bruce Rogers wrote:
> Commit 5a11d0f7 mistakenly converted a log message into an error
> condition when no pin interrupt is found for the pci device being
> passed through. Revert that part of the commit.
> 
> Signed-off-by: Bruce Rogers <brogers@suse.com>

Acked-by: Anthony PERARD <anthony.perard@citrix.com>

> ---
>  hw/xen/xen_pt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
> index f593b04..b6d71bb 100644
> --- a/hw/xen/xen_pt.c
> +++ b/hw/xen/xen_pt.c
> @@ -842,7 +842,7 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
>          goto err_out;
>      }
>      if (!scratch) {
> -        error_setg(errp, "no pin interrupt");
> +        XEN_PT_LOG(d, "no pin interrupt\n");
>          goto out;
>      }
>  
> -- 
> 1.9.0
>
diff mbox

Patch

diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index f593b04..b6d71bb 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -842,7 +842,7 @@  static void xen_pt_realize(PCIDevice *d, Error **errp)
         goto err_out;
     }
     if (!scratch) {
-        error_setg(errp, "no pin interrupt");
+        XEN_PT_LOG(d, "no pin interrupt\n");
         goto out;
     }