All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Isaku Yamahata <yamahata@valinux.co.jp>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 19/20] pci: pci bridge related clean up.
Date: Thu, 12 Nov 2009 12:47:17 +0200	[thread overview]
Message-ID: <20091112104717.GO3785@redhat.com> (raw)
In-Reply-To: <1258005528-25383-20-git-send-email-yamahata@valinux.co.jp>

On Thu, Nov 12, 2009 at 02:58:47PM +0900, Isaku Yamahata wrote:
> - fix bridge prefetchable memory accesser to check 64bit or not.
> - use pcibus_t consistently instead mixing pcibus_t and uint64_t.
> 
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  hw/pci.c |   18 +++++++++++-------
>  hw/pci.h |    1 +
>  2 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/hw/pci.c b/hw/pci.c
> index d1b884a..add919b 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -634,19 +634,23 @@ static uint32_t pci_config_get_io_base(PCIDevice *d,
>      return val;
>  }
>  
> -static uint64_t pci_config_get_memory_base(PCIDevice *d, uint32_t base)
> +static pcibus_t pci_config_get_memory_base(PCIDevice *d, uint32_t base)
>  {
> -    return ((uint64_t)pci_get_word(d->config + base) & PCI_MEMORY_RANGE_MASK)
> +    return ((pcibus_t)pci_get_word(d->config + base) & PCI_MEMORY_RANGE_MASK)
>          << 16;
>  }
>  
> -static uint64_t pci_config_get_pref_base(PCIDevice *d,
> +static pcibus_t pci_config_get_pref_base(PCIDevice *d,
>                                           uint32_t base, uint32_t upper)
>  {
> -    uint64_t val;
> -    val = ((uint64_t)pci_get_word(d->config + base) &
> -           PCI_PREF_RANGE_MASK) << 16;
> -    val |= (uint64_t)pci_get_long(d->config + upper) << 32;
> +    pcibus_t tmp;
> +    pcibus_t val;
> +
> +    tmp = (pcibus_t)pci_get_word(d->config + base);
> +    val = (tmp & PCI_PREF_RANGE_MASK) << 16;
> +    if (tmp & PCI_PREF_RANGE_TYPE_64) {
> +        val |= (pcibus_t)pci_get_long(d->config + upper) << 32;
> +    }
>      return val;
>  }
>  
> diff --git a/hw/pci.h b/hw/pci.h
> index 72a476e..03639b7 100644
> --- a/hw/pci.h
> +++ b/hw/pci.h
> @@ -131,6 +131,7 @@ typedef struct PCIIORegion {
>  #define PCI_PREF_MEMORY_BASE    0x24    /* Prefetchable memory range behind */
>  #define PCI_PREF_MEMORY_LIMIT   0x26
>  #define  PCI_PREF_RANGE_MASK    (~0x0fUL)
> +#define  PCI_PREF_RANGE_TYPE_64 0x01
>  #define PCI_PREF_BASE_UPPER32   0x28    /* Upper half of prefetchable memory range */
>  #define PCI_PREF_LIMIT_UPPER32	0x2c
>  #define PCI_SUBSYSTEM_VENDOR_ID 0x2c    /* 16 bits */
> -- 
> 1.6.0.2

  reply	other threads:[~2009-11-12 10:49 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-12  5:58 [Qemu-devel] [PATCH 00/20] PCI express clean up patches Isaku Yamahata
2009-11-12  5:58 ` [Qemu-devel] [PATCH 01/20] pci: fix pci_info_device() Isaku Yamahata
2009-11-12 10:17   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 02/20] pci: move pci_data_{read, write}() declaration from pci.h to pci_host.h Isaku Yamahata
2009-11-12 10:18   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12 12:44   ` Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 03/20] pci: simplify pci_data_read(), pcie_mmcfg_data_read() Isaku Yamahata
2009-11-12 11:01   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12 11:15     ` Michael S. Tsirkin
2009-11-12 12:02       ` Michael S. Tsirkin
2009-11-12 12:14         ` Isaku Yamahata
2009-11-12  5:58 ` [Qemu-devel] [PATCH 04/20] pci: remove pci_addr_to_config() by open code Isaku Yamahata
2009-11-12 11:01   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 05/20] pci: rename pci_addr_to_dev(), pcie_mmcfg_addr_to_dev() Isaku Yamahata
2009-11-12 11:02   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 06/20] pci: shorten pci_host_{conf, data}_register_xxx function a bit Isaku Yamahata
2009-11-12 10:19   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 07/20] pci: remove pci_sub_bus() by open coding Isaku Yamahata
2009-11-12 10:45   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12 13:00     ` Isaku Yamahata
2009-11-12  5:58 ` [Qemu-devel] [PATCH 08/20] pci: s/pci_find_host_bus/pci_find_root_bus/g Isaku Yamahata
2009-11-12 10:45   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 09/20] pci_host: remove unnecessary & 0xff Isaku Yamahata
2009-11-12 10:32   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 10/20] pci: kill unnecessary included in pci.c Isaku Yamahata
2009-11-12 10:32   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 11/20] pci: clean up of pci_init_wmask() Isaku Yamahata
2009-11-12 10:18   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 12/20] pci: remove some unnecessary comment in pci.h Isaku Yamahata
2009-11-12 10:33   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 13/20] pci: move typedef, PCIHostState, PCIExpressHost to qemu-common.h Isaku Yamahata
2009-11-12 10:33   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 14/20] pci: remove unused constants Isaku Yamahata
2009-11-12 10:33   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 15/20] pci: clean up of pci_update_mappings() Isaku Yamahata
2009-11-12 10:34   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 16/20] pci: kill goto in pci_update_mappings() Isaku Yamahata
2009-11-12 12:06   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12 13:12     ` Isaku Yamahata
2009-11-12 13:13       ` Michael S. Tsirkin
2009-11-12 13:29       ` Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 17/20] pci: remove magic number, 256 in pci.c Isaku Yamahata
2009-11-12 10:34   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 18/20] pci: fix pci_config_get_io_base() Isaku Yamahata
2009-11-12 10:36   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12  5:58 ` [Qemu-devel] [PATCH 19/20] pci: pci bridge related clean up Isaku Yamahata
2009-11-12 10:47   ` Michael S. Tsirkin [this message]
2009-11-12  5:58 ` [Qemu-devel] [PATCH 20/20] pci: remove goto in pci_bridge_filter() Isaku Yamahata
2009-11-12 12:08   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-12 13:13     ` Isaku Yamahata
2009-11-12 12:58 ` [Qemu-devel] Re: [PATCH 00/20] PCI express clean up patches Michael S. Tsirkin

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=20091112104717.GO3785@redhat.com \
    --to=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yamahata@valinux.co.jp \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.