All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>,
	Dmitry Fleytman <dmitry@daynix.com>
Cc: Leonid Bloch <leonid@daynix.com>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL V3 00/20] Net patches
Date: Mon, 30 May 2016 09:51:39 +0800	[thread overview]
Message-ID: <574B9CAB.3020001@redhat.com> (raw)
In-Reply-To: <CAFEAcA-bnLVexuZAcvipkdutUoZtzqYiRmQXrYX-AtTuXEfT=g@mail.gmail.com>



On 2016年05月30日 00:45, Peter Maydell wrote:
> On 29 May 2016 at 16:22, Dmitry Fleytman <dmitry@daynix.com> wrote:
>> It turned out that the issue is not in the new code but in
>> pci.h helper functions used by the new code to fill DSN capability.
> Thanks for tracking this down.
>
>> Following patch fixes the problem:
>>
>> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
>> index ef6ba51..ee238ad
>> --- a/include/hw/pci/pci.h
>> +++ b/include/hw/pci/pci.h
>> @@ -468,13 +468,13 @@ pci_get_long(const uint8_t *config)
>>   static inline void
>>   pci_set_quad(uint8_t *config, uint64_t val)
>>   {
>> -    cpu_to_le64w((uint64_t *)config, val);
>> +    stq_le_p(config, val);
>>   }
>>
>>   static inline uint64_t
>>   pci_get_quad(const uint8_t *config)
>>   {
>> -    return le64_to_cpup((const uint64_t *)config);
>> +    return ldq_le_p(config);
>>   }
>>
>> I see from git blame that some time ago you did similar change in all other
>> pci_set_* pci_get_* functions except these two.
>>
>> Is there any specific reason you did not change these two functions then?
> The patches where I changed the other functions were cleanups
> to convert away from some legacy *_to_cpupu() functions, which
> were specifically intended to work with unaligned pointers
> (which is what the "u" indicated). I was doing the cleanups
> per-conversion-function, not per-callsite, and since these
> two functions aren't using a _to_cpupu() function but just
> _to_cpup() they wouldn't have shown up in my searches.
>
> In any case this is the correct fix, and we should probably
> audit the other uses of *_to_cpup and cpu_to_* -- I suspect
> many of them are working with possibly-unaligned
> pointers in to guest memory and we should replace them with
> ld*_*_p functions and get rid of the _to_cpup functions entirely.
>
> thanks
> -- PMM

git grep shows lots of places. Is it ok to send a new version of pull 
request with Dmitry's fix first?

Thanks

  reply	other threads:[~2016-05-30  1:51 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-26  2:16 [Qemu-devel] [PULL V3 00/20] Net patches Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 01/20] net/tap: Allocating Large sized arrays to heap Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 02/20] net: mipsnet: check packet length against buffer Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 03/20] msix: make msix_clr_pending() visible for clients Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 04/20] pci: Introduce define for PM capability version 1.1 Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 05/20] pcie: Add support for PCIe CAP v1 Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 06/20] pcie: Introduce function for DSN capability creation Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 07/20] vmxnet3: Use generic function for DSN capability definition Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 08/20] net: Introduce Toeplitz hash calculator Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 09/20] net: Add macros for MAC address tracing Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 10/20] vmxnet3: Use common MAC address tracing macros Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 11/20] net_pkt: Name vmxnet3 packet abstractions more generic Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 12/20] rtl8139: Move more TCP definitions to common header Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 13/20] net_pkt: Extend packet abstraction as required by e1000e functionality Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 14/20] vmxnet3: Use pci_dma_* API instead of cpu_physical_memory_* Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 15/20] e1000_regs: Add definitions for Intel 82574-specific bits Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 16/20] e1000: Move out code that will be reused in e1000e Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 17/20] net: Introduce e1000e device emulation Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 18/20] e1000e: Introduce qtest for e1000e device Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 19/20] net: vl: Move default_net to vl.c Jason Wang
2016-05-26  2:16 ` [Qemu-devel] [PULL V3 20/20] net/net: Add SocketReadState for reuse codes Jason Wang
2016-05-26 15:08 ` [Qemu-devel] [PULL V3 00/20] Net patches Peter Maydell
2016-05-26 15:20   ` Eric Blake
2016-05-26 15:28     ` Peter Maydell
2016-05-27  3:35   ` Jason Wang
2016-05-27  9:03     ` Peter Maydell
2016-05-29 15:22     ` Dmitry Fleytman
2016-05-29 16:45       ` Peter Maydell
2016-05-30  1:51         ` Jason Wang [this message]
2016-05-30 11:52           ` Peter Maydell

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=574B9CAB.3020001@redhat.com \
    --to=jasowang@redhat.com \
    --cc=dmitry@daynix.com \
    --cc=leonid@daynix.com \
    --cc=peter.maydell@linaro.org \
    --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 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.