tmfifo: Fix a memory barrier issue

Bug #1927262 reported by Liming Sun
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-bluefield (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

This one is used to track a code merge of the tmfifo driver.

SRU Justification:

[Impact]
* The virtio framework uses wmb() when updating avail->idx. It guarantees the write order, but not necessarily loading order for the code accessing the memory. So potentially it could cause traffic stuck which has been observed in the field.

[Fix]
* This commit adds a load barrier after reading the avail->idx to make sure all the data in the descriptor is visible. It also adds a barrier when returning the packet to virtio framework to make sure read/writes are visible to the virtio code.

[Test Case]
* Just normal test. This change doesn't affect any functionality.

[Regression Potential]
* SQA team has been running test with this fix for quite some time (several months). No issue as observed.

[Other]
* N/A

Tim Gardner (timg-tpi)
Changed in linux-bluefield (Ubuntu):
status: New → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (34.0 KiB)

This bug was fixed in the package linux-bluefield - 5.4.0-1012.15

---------------
linux-bluefield (5.4.0-1012.15) focal; urgency=medium

  * focal/linux-bluefield: 5.4.0-1012.15 -proposed tracker (LP: #1927599)

  * Focal update: v5.4.109 upstream stable release (LP: #1923220)
    - [Config] bluefield: Record PNFS_FLEXFILE_LAYOUT=y

  * mlx-bootctl: rshim logging display from linux sysfs (LP: #1927263)
    - mlx-bootctl: rshim logging display from linux sysfs

  * Backport TLS Bond (LP: #1926994)
    - netpoll: Fix use correct return type for ndo_start_xmit()
    - netpoll: remove dev argument from netpoll_send_skb_on_dev()
    - netpoll: move netpoll_send_skb() out of line
    - netpoll: netpoll_send_skb() returns transmit status
    - netpoll: accept NULL np argument in netpoll_send_skb()
    - bonding: propagate transmit status
    - xfrm: bail early on slave pass over skb
    - ixgbe_ipsec: become aware of when running as a bonding slave
    - mlx5: become aware of when running as a bonding slave
    - bonding: support hardware encryption offload to slaves
    - bonding: Remove extraneous parentheses in bond_setup
    - bonding: allow xfrm offload setup post-module-load
    - bonding/xfrm: use real_dev instead of slave_dev
    - bonding: deal with xfrm state in all modes and add more error-checking
    - bonding: fix feature flag setting at init time
    - net/core: Introduce netdev_get_xmit_slave
    - bonding: Export skip slave logic to function
    - bonding: Rename slave_arr to usable_slaves
    - bonding/alb: Add helper functions to get the xmit slave
    - bonding: Add helper function to get the xmit slave based on hash
    - bonding: Add helper function to get the xmit slave in rr mode
    - bonding: Add function to get the xmit slave in active-backup mode
    - bonding: Add array of all slaves
    - bonding: Implement ndo_get_xmit_slave
    - net: netdevice: Add operation ndo_sk_get_lower_dev
    - net/bonding: Take IP hash logic into a helper
    - net/bonding: Implement ndo_sk_get_lower_dev
    - net/bonding: Take update_features call out of XFRM funciton
    - net/bonding: Implement TLS TX device offload
    - net/bonding: Declare TLS RX device offload support
    - net/tls: Device offload to use lowest netdevice in chain
    - net/tls: Except bond interface from some TLS checks

  * Do offload refresh when requested (LP: #1927374)
    - SAUCE: netfilter: flowtable: Do flow offload refresh when requested

  * To support reclassifying a packet more than 4 times need to increase the
    reclassification setting. (LP: #1927257)
    - SAUCE: net/sched: Increase support of reclassification to 15

  * Enable CONFIG_IPV6_MROUTE_MULTIPLE_TABLES in kernel configuration
    (LP: #1927142)
    - [Config] CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y

  * Enable CONFIG_NET_VRF in kernel configuration (LP: #1923620)
    - [Config] CONFIG_NET_VRF=m

  * Fix NAT IPv6 offload mangling (LP: #1927244)
    - netfilter: flowtable: fix NAT IPv6 offload mangling

  * mlxbf-tmfifo: Add ctrl message and MAC configuration (LP: #1927253)
    - SAUCE: platform/mellanox: Add ctrl message and MAC configuration

  * tmfifo: Fix a memory barrier issue (LP: #1927262)...

Changed in linux-bluefield (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.