qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 29/37] ehci: kick async schedule on wakeup
Date: Fri, 06 Jul 2012 16:30:52 +0200	[thread overview]
Message-ID: <4FF6F69C.2040808@redhat.com> (raw)
In-Reply-To: <1339061486-28513-30-git-send-email-kraxel@redhat.com>

Hi,

On 06/07/2012 11:31 AM, Gerd Hoffmann wrote:
> Kick async schedule when we get a wakeup
> notification from a usb device.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>   hw/usb/hcd-ehci.c |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
> index 8b2dfed..f8ed80d 100644
> --- a/hw/usb/hcd-ehci.c
> +++ b/hw/usb/hcd-ehci.c
> @@ -852,6 +852,8 @@ static void ehci_wakeup(USBPort *port)
>           USBPort *companion = s->companion_ports[port->index];
>           if (companion->ops->wakeup) {
>               companion->ops->wakeup(companion);
> +        } else {
> +            qemu_bh_schedule(s->async_bh);
>           }
>       }
>   }
>

This is wrong, this puts the added else inside the
"if (portsc & PORTSC_POWNER) {" block, iow it will only
trigger when the port is redirected to the companion controller,
it should be the else of the "if (portsc & PORTSC_POWNER)" so that
the async schedule gets kicked on wakeup when the device is connected
to the ehci (rather then to an companion uhci).

Notice how the if where the else now belongs to is unconditionally
dereferencing companion in the form of companion->ops, it can do
this because the "if (portsc & PORTSC_POWNER)" check ensures there is
a companion port for this device, the second level if is to see if
the companion has wakeup support.

Regards,

Hans

  reply	other threads:[~2012-07-06 14:30 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07  9:30 [Qemu-devel] [PULL 00/37] usb patch queue Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 01/37] uhci: fix bandwidth management Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 02/37] uhci: use bottom half Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 03/37] uhci: make bandwidth tunable Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 04/37] uhci: fix trace format strings Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 05/37] uhci: zap uhci_pre_save Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 06/37] uhci: fix irq routing Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 07/37] scsi: prepare migration code for usb-storage support Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 08/37] usb-storage: remove MSDState->residue Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 09/37] usb-storage: add usb_msd_packet_complete() Gerd Hoffmann
2012-06-07  9:30 ` [Qemu-devel] [PATCH 10/37] usb-storage: add scsi_off, remove scsi_buf Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 11/37] usb-storage: migration support Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 12/37] xhci: Clean up reset function Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 13/37] xhci: trace: mmio reads+writes Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 14/37] xhci: trace: run+stop Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 15/37] xhci: trace: irq + events Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 16/37] xhci: trace: ring fetch Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 17/37] xhci: trace: endpoints Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 18/37] xhci: trace: transfers Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 19/37] xhci: trace: slots Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 20/37] ehci: add EHCIPacket Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 21/37] ehci: make ehci_execute work on EHCIPacket instead of EHCIQueue Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 22/37] ehci: cache USBDevice in EHCIQueue Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 23/37] ehci: move ehci_flush_qh Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 24/37] ehci: add queuing support Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 25/37] ehci: tweak queue initialization Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 26/37] ehci: add async field to EHCIQueue Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 27/37] ehci: move async schedule to bottom half Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 28/37] ehci: schedule async bh on async packet completion Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 29/37] ehci: kick async schedule on wakeup Gerd Hoffmann
2012-07-06 14:30   ` Hans de Goede [this message]
2012-07-06 14:54     ` Hans de Goede
2012-07-09  8:02       ` Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 30/37] ehci: fix reset Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 31/37] ehci: add ehci_*_enabled() helpers Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 32/37] ehci: update status bits in ehci_set_state Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 33/37] ehci: fix halt status handling Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 34/37] ehci: remove unused attach_poll_counter Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 35/37] ehci: create ehci_update_frindex Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 36/37] ehci: adaptive wakeup rate Gerd Hoffmann
2012-06-07  9:31 ` [Qemu-devel] [PATCH 37/37] ehci: rework frame skipping Gerd Hoffmann
2012-06-11 18:27 ` [Qemu-devel] [PULL 00/37] usb patch queue Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FF6F69C.2040808@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).