From: Jason Wang <jasowang@redhat.com>
To: P J P <ppandit@redhat.com>
Cc: Yang Hongke <yanghongke@huawei.com>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] net: ne2000: check ring buffer control registers
Date: Tue, 23 Feb 2016 11:27:43 +0800 [thread overview]
Message-ID: <56CBD1AF.6090802@redhat.com> (raw)
In-Reply-To: <alpine.LFD.2.20.1602091152150.31016@wniryva>
On 02/09/2016 02:47 PM, P J P wrote:
> Hello Jason,
>
> +-- On Fri, 5 Feb 2016, Jason Wang wrote --+
> | I suspect this could even work. Consider after realizing, s->stop is
> | zero, any attempt to set STARTPG will fail?
>
> Ie after 'pci_ne2000_realize'? It does not seem to set or reset s->stop
> register.
I mean with your patch, driver will only be allowed to set EN0_STOPPG
before EN0_STARTPG. So if a driver want to set STARTPG first, the check
+ if (v < NE2000_PMEM_END && v < s->stop) {
will prevent the driver from working correctly since s->stop is zero here.
>
> | This may not be sufficient, consider:
> |
> | set start to 1
> | set stop to 100
> | set boundary to 50
> | then set stop to 10
>
> I think any attempts to define the ring buffer limits should reset
> 'boundary' and 'curpag' registers to s->start(STARTPG). I wonder if a driver
> should be allowed to fiddle with the ring buffers location inside contorller's
> memory. It does not seem right.
Well, I think we could not assume the behavior of a driver, especially
consider it may be malicious.
>
> | I'm thinking maybe we need check during receiving like what we did in
> | dd793a74882477ca38d49e191110c17dfee51dcc?
>
> Check if (s->start == s->stop) at each receive call?
Or in ne2000_buffer_full()?
>
> --
> - P J P
> 47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F
>
next prev parent reply other threads:[~2016-02-23 3:28 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-02 14:29 [Qemu-devel] [PATCH] net: ne2000: check ring buffer control registers P J P
2016-02-05 9:04 ` Jason Wang
2016-02-05 9:29 ` [Qemu-devel] 答复: " yanghongke
2016-02-09 6:49 ` P J P
2016-02-09 6:47 ` [Qemu-devel] " P J P
2016-02-15 4:25 ` P J P
2016-02-23 3:27 ` Jason Wang [this message]
2016-02-23 8:28 ` P J P
2016-02-24 1:52 ` Jason Wang
2016-02-24 5:58 ` P J P
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=56CBD1AF.6090802@redhat.com \
--to=jasowang@redhat.com \
--cc=ppandit@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yanghongke@huawei.com \
/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.