qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] e1000e: Avoid hw_error if legacy mode used
@ 2020-01-27 16:03 Yuri Benditovich
  2020-01-29 16:08 ` Dmitry Fleytman
  2020-02-04  4:08 ` Jason Wang
  0 siblings, 2 replies; 3+ messages in thread
From: Yuri Benditovich @ 2020-01-27 16:03 UTC (permalink / raw)
  To: dmitry.fleytman, jasowang, qemu-devel; +Cc: yan

https://bugzilla.redhat.com/show_bug.cgi?id=1787142
The emulation issues hw_error if PSRCTL register
is written, for example, with zero value.
Such configuration does not present any problem when
DTYP bits of RCTL register define legacy format of
transfer descriptors. Current commit discards check
for BSIZE0 and BSIZE1 when legacy mode used.

Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
---
 hw/net/e1000e_core.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index 5b05c8ea8a..94ea34dca5 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -2813,12 +2813,15 @@ e1000e_set_eitr(E1000ECore *core, int index, uint32_t val)
 static void
 e1000e_set_psrctl(E1000ECore *core, int index, uint32_t val)
 {
-    if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
-        hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
-    }
+    if (core->mac[RCTL] & E1000_RCTL_DTYP_MASK) {
+
+        if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
+            hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
+        }
 
-    if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
-        hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
+        if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
+            hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
+        }
     }
 
     core->mac[PSRCTL] = val;
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] e1000e: Avoid hw_error if legacy mode used
  2020-01-27 16:03 [PATCH] e1000e: Avoid hw_error if legacy mode used Yuri Benditovich
@ 2020-01-29 16:08 ` Dmitry Fleytman
  2020-02-04  4:08 ` Jason Wang
  1 sibling, 0 replies; 3+ messages in thread
From: Dmitry Fleytman @ 2020-01-29 16:08 UTC (permalink / raw)
  To: Yuri Benditovich; +Cc: Yan Vugenfirer, Jason Wang, QEMU Developers

> On 27 Jan 2020, at 18:03, Yuri Benditovich <yuri.benditovich@daynix.com> wrote:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1787142
> The emulation issues hw_error if PSRCTL register
> is written, for example, with zero value.
> Such configuration does not present any problem when
> DTYP bits of RCTL register define legacy format of
> transfer descriptors. Current commit discards check
> for BSIZE0 and BSIZE1 when legacy mode used.
> 
> Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>

Acked-by: Dmitry Fleytman <dmitry.fleytman@gmail.com>

> ---
> hw/net/e1000e_core.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
> index 5b05c8ea8a..94ea34dca5 100644
> --- a/hw/net/e1000e_core.c
> +++ b/hw/net/e1000e_core.c
> @@ -2813,12 +2813,15 @@ e1000e_set_eitr(E1000ECore *core, int index, uint32_t val)
> static void
> e1000e_set_psrctl(E1000ECore *core, int index, uint32_t val)
> {
> -    if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
> -        hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
> -    }
> +    if (core->mac[RCTL] & E1000_RCTL_DTYP_MASK) {
> +
> +        if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
> +            hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
> +        }
> 
> -    if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
> -        hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
> +        if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
> +            hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
> +        }
>     }
> 
>     core->mac[PSRCTL] = val;
> -- 
> 2.17.1
> 



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] e1000e: Avoid hw_error if legacy mode used
  2020-01-27 16:03 [PATCH] e1000e: Avoid hw_error if legacy mode used Yuri Benditovich
  2020-01-29 16:08 ` Dmitry Fleytman
@ 2020-02-04  4:08 ` Jason Wang
  1 sibling, 0 replies; 3+ messages in thread
From: Jason Wang @ 2020-02-04  4:08 UTC (permalink / raw)
  To: Yuri Benditovich, dmitry.fleytman, qemu-devel; +Cc: yan


On 2020/1/28 上午12:03, Yuri Benditovich wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1787142
> The emulation issues hw_error if PSRCTL register
> is written, for example, with zero value.
> Such configuration does not present any problem when
> DTYP bits of RCTL register define legacy format of
> transfer descriptors. Current commit discards check
> for BSIZE0 and BSIZE1 when legacy mode used.
>
> Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
> ---
>   hw/net/e1000e_core.c | 13 ++++++++-----
>   1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
> index 5b05c8ea8a..94ea34dca5 100644
> --- a/hw/net/e1000e_core.c
> +++ b/hw/net/e1000e_core.c
> @@ -2813,12 +2813,15 @@ e1000e_set_eitr(E1000ECore *core, int index, uint32_t val)
>   static void
>   e1000e_set_psrctl(E1000ECore *core, int index, uint32_t val)
>   {
> -    if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
> -        hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
> -    }
> +    if (core->mac[RCTL] & E1000_RCTL_DTYP_MASK) {
> +
> +        if ((val & E1000_PSRCTL_BSIZE0_MASK) == 0) {
> +            hw_error("e1000e: PSRCTL.BSIZE0 cannot be zero");
> +        }
>   
> -    if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
> -        hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
> +        if ((val & E1000_PSRCTL_BSIZE1_MASK) == 0) {
> +            hw_error("e1000e: PSRCTL.BSIZE1 cannot be zero");
> +        }
>       }
>   
>       core->mac[PSRCTL] = val;


Applied.

Thanks



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-04  4:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-27 16:03 [PATCH] e1000e: Avoid hw_error if legacy mode used Yuri Benditovich
2020-01-29 16:08 ` Dmitry Fleytman
2020-02-04  4:08 ` Jason Wang

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).