From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH net] e1000e: Remove Other from EIAC. Date: Sun, 1 Apr 2018 23:29:17 +0200 Message-ID: References: <20180131072627.18305-1-bpoirier@suse.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="2oEjpd7VoCzZehQkdR7JRdUs4ODUFqfCF" Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org To: Benjamin Poirier , Jeff Kirsher Return-path: In-Reply-To: <20180131072627.18305-1-bpoirier@suse.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --2oEjpd7VoCzZehQkdR7JRdUs4ODUFqfCF Content-Type: multipart/mixed; boundary="rnXzrojDxBXIaqqhqgdNSIvkN1q6eb8kX"; protected-headers="v1" From: Jan Kiszka To: Benjamin Poirier , Jeff Kirsher Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Message-ID: Subject: Re: [PATCH net] e1000e: Remove Other from EIAC. References: <20180131072627.18305-1-bpoirier@suse.com> In-Reply-To: <20180131072627.18305-1-bpoirier@suse.com> --rnXzrojDxBXIaqqhqgdNSIvkN1q6eb8kX Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2018-01-31 08:26, Benjamin Poirier wrote: > It was reported that emulated e1000e devices in vmware esxi 6.5 Build > 7526125 do not link up after commit 4aea7a5c5e94 ("e1000e: Avoid receiv= er > overrun interrupt bursts", v4.15-rc1). Some tracing shows that after > e1000e_trigger_lsc() is called, ICR reads out as 0x0 in e1000_msix_othe= r() > on emulated e1000e devices. In comparison, on real e1000e 82574 hardwar= e, > icr=3D0x80000004 (_INT_ASSERTED | _LSC) in the same situation. >=20 > Some experimentation showed that this flaw in vmware e1000e emulation c= an > be worked around by not setting Other in EIAC. This is how it was befor= e > 16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", v4.5-rc1). >=20 > Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts")= > Signed-off-by: Benjamin Poirier > --- > drivers/net/ethernet/intel/e1000e/netdev.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/e= thernet/intel/e1000e/netdev.c > index 9f18d39bdc8f..625a4c9a86a4 100644 > --- a/drivers/net/ethernet/intel/e1000e/netdev.c > +++ b/drivers/net/ethernet/intel/e1000e/netdev.c > @@ -1918,6 +1918,8 @@ static irqreturn_t e1000_msix_other(int __always_= unused irq, void *data) > bool enable =3D true; > =20 > icr =3D er32(ICR); > + ew32(ICR, E1000_ICR_OTHER); > + > if (icr & E1000_ICR_RXO) { > ew32(ICR, E1000_ICR_RXO); > enable =3D false; > @@ -2040,7 +2042,6 @@ static void e1000_configure_msix(struct e1000_ada= pter *adapter) > hw->hw_addr + E1000_EITR_82574(vector)); > else > writel(1, hw->hw_addr + E1000_EITR_82574(vector)); > - adapter->eiac_mask |=3D E1000_IMS_OTHER; > =20 > /* Cause Tx interrupts on every write back */ > ivar |=3D BIT(31); > @@ -2265,7 +2266,7 @@ static void e1000_irq_enable(struct e1000_adapter= *adapter) > =20 > if (adapter->msix_entries) { > ew32(EIAC_82574, adapter->eiac_mask & E1000_EIAC_MASK_82574); > - ew32(IMS, adapter->eiac_mask | E1000_IMS_LSC); > + ew32(IMS, adapter->eiac_mask | E1000_IMS_OTHER | E1000_IMS_LSC); > } else if (hw->mac.type >=3D e1000_pch_lpt) { > ew32(IMS, IMS_ENABLE_MASK | E1000_IMS_ECCER); > } else { >=20 Shouldn't this be queued for stable as well? I'm missing it in 4.14 LTS at least. BTW, it seems QEMU's e1000e model is affected by the same issue. I've proposed a fix for it [1]. Jan [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg525182.html --rnXzrojDxBXIaqqhqgdNSIvkN1q6eb8kX-- --2oEjpd7VoCzZehQkdR7JRdUs4ODUFqfCF Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEARECAAYFAlrBTzIACgkQitSsb3rl5xRKnQCeMos2vf7xyUIm/C5m49fpKBVB YTQAoM0/7K2BfawPnBwq9vitdVMLMyRb =Dppw -----END PGP SIGNATURE----- --2oEjpd7VoCzZehQkdR7JRdUs4ODUFqfCF--