[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH V5 09/29] pci: clean up of pci_default_read_conf
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] Re: [PATCH V5 09/29] pci: clean up of pci_default_read_config. |
Date: |
Fri, 9 Oct 2009 08:58:53 +0200 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
On Fri, Oct 09, 2009 at 03:28:42PM +0900, Isaku Yamahata wrote:
> This patch cleans up pci_default_read_config() removing
> ugly length and range check.
>
> Suggesed by "Michael S. Tsirkin" <address@hidden>
> Signed-off-by: Isaku Yamahata <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
> ---
> hw/pci.c | 26 +++++---------------------
> 1 files changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/hw/pci.c b/hw/pci.c
> index 634899a..755ebad 100644
> --- a/hw/pci.c
> +++ b/hw/pci.c
> @@ -558,27 +558,11 @@ static void pci_update_mappings(PCIDevice *d)
> uint32_t pci_default_read_config(PCIDevice *d,
> uint32_t address, int len)
> {
> - uint32_t val;
> -
> - switch(len) {
> - default:
> - case 4:
> - if (address <= 0xfc) {
> - val = pci_get_long(d->config + address);
> - break;
> - }
> - /* fall through */
> - case 2:
> - if (address <= 0xfe) {
> - val = pci_get_word(d->config + address);
> - break;
> - }
> - /* fall through */
> - case 1:
> - val = pci_get_byte(d->config + address);
> - break;
> - }
> - return val;
> + uint32_t val = 0;
> + assert(len == 1 || len == 2 || len == 4);
> + len = MIN(len, PCI_CONFIG_SPACE_SIZE - address);
> + memcpy(&val, d->config + address, len);
> + return le32_to_cpu(val);
> }
>
> void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int
> l)
> --
> 1.6.0.2
- [Qemu-devel] Re: [PATCH V5 10/29] pci: make pci_bar() aware of header type 1., (continued)
- [Qemu-devel] [PATCH V5 04/29] pci: define a constant to represent a unmapped bar and use it., Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 29/29] pci/monitor: print out bridge's filtering values and so on., Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 14/29] pci: introduce FMT_PCIBUS for printf format for pcibus_t., Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 05/29] pci: helper functions to access PCIDevice::config, Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 09/29] pci: clean up of pci_default_read_config., Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 08/29] pci: s/PCI_ADDRESS_SPACE_/PCI_BASE_ADDRESS_SPACE_/ to match pci_regs.h, Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 28/29] pci: initialize pci config headers depending it pci header type., Isaku Yamahata, 2009/10/09
- [Qemu-devel] [PATCH V5 17/29] pci: make pci configuration transaction more accurate., Isaku Yamahata, 2009/10/09