[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/50] igb: Clear IMS bits when committing ICR access
|
From: |
Jason Wang |
|
Subject: |
[PULL 07/50] igb: Clear IMS bits when committing ICR access |
|
Date: |
Tue, 23 May 2023 15:31:55 +0800 |
From: Akihiko Odaki <akihiko.odaki@daynix.com>
The datasheet says contradicting statements regarding ICR accesses so it
is not reliable to determine the behavior of ICR accesses. However,
e1000e does clear IMS bits when reading ICR accesses and Linux also
expects ICR accesses will clear IMS bits according to:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/igb/igb_main.c?h=v6.2#n8048
Fixes: 3a977deebe ("Intrdocue igb device emulation")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@est.tech>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
hw/net/igb_core.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/net/igb_core.c b/hw/net/igb_core.c
index 96a118b..eaca5bd 100644
--- a/hw/net/igb_core.c
+++ b/hw/net/igb_core.c
@@ -2452,16 +2452,16 @@ igb_set_ims(IGBCore *core, int index, uint32_t val)
static void igb_commit_icr(IGBCore *core)
{
/*
- * If GPIE.NSICR = 0, then the copy of IAM to IMS will occur only if at
+ * If GPIE.NSICR = 0, then the clear of IMS will occur only if at
* least one bit is set in the IMS and there is a true interrupt as
* reflected in ICR.INTA.
*/
if ((core->mac[GPIE] & E1000_GPIE_NSICR) ||
(core->mac[IMS] && (core->mac[ICR] & E1000_ICR_INT_ASSERTED))) {
- igb_set_ims(core, IMS, core->mac[IAM]);
- } else {
- igb_update_interrupt_state(core);
+ igb_clear_ims_bits(core, core->mac[IAM]);
}
+
+ igb_update_interrupt_state(core);
}
static void igb_set_icr(IGBCore *core, int index, uint32_t val)
--
2.7.4
- [PULL 00/50] Net patches, Jason Wang, 2023/05/23
- [PULL 02/50] hw/net/net_tx_pkt: Decouple implementation from PCI, Jason Wang, 2023/05/23
- [PULL 01/50] e1000e: Fix tx/rx counters, Jason Wang, 2023/05/23
- [PULL 05/50] igb: Fix Rx packet type encoding, Jason Wang, 2023/05/23
- [PULL 03/50] hw/net/net_tx_pkt: Decouple interface from PCI, Jason Wang, 2023/05/23
- [PULL 04/50] e1000x: Fix BPRC and MPRC, Jason Wang, 2023/05/23
- [PULL 06/50] igb: Do not require CTRL.VME for tx VLAN tagging, Jason Wang, 2023/05/23
- [PULL 07/50] igb: Clear IMS bits when committing ICR access,
Jason Wang <=
- [PULL 08/50] net/net_rx_pkt: Use iovec for net_rx_pkt_set_protocols(), Jason Wang, 2023/05/23
- [PULL 09/50] e1000e: Always copy ethernet header, Jason Wang, 2023/05/23
- [PULL 10/50] igb: Always copy ethernet header, Jason Wang, 2023/05/23
- [PULL 11/50] Fix references to igb Avocado test, Jason Wang, 2023/05/23
- [PULL 12/50] tests/avocado: Remove unused imports, Jason Wang, 2023/05/23
- [PULL 13/50] tests/avocado: Remove test_igb_nomsi_kvm, Jason Wang, 2023/05/23
- [PULL 14/50] hw/net/net_tx_pkt: Remove net_rx_pkt_get_l4_info, Jason Wang, 2023/05/23
- [PULL 15/50] net/eth: Rename eth_setup_vlan_headers_ex, Jason Wang, 2023/05/23
- [PULL 16/50] e1000x: Share more Rx filtering logic, Jason Wang, 2023/05/23
- [PULL 17/50] e1000x: Take CRC into consideration for size check, Jason Wang, 2023/05/23