Sync up gpio interrupt handling with upstreamed version

Bug #1965017 reported by Asmaa Mnebhi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-bluefield (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
Undecided
Asmaa Mnebhi

Bug Description

SRU Justification:

[Impact]

Although the gpio-mlxbf2.c driver has already been upstreamed, it did not include gpio interrupt handling. We recently upstreamed the latter and as requested by maintainers, moved all gpio interrupt code from the mlxbf-gige driver to the gpio-mlxbf2.c to be conform with linux standards.
IMPORTANT: during testing, make sure the latest UEFI (bootloader) is loaded on top of these changes, otherwise both the gpio driver and mlxbf-gige driver will fail to load.

[Fix]

* reverted 6 commits related to the gpio-mlxbf2 driver so that the canonical changes are in sync with what is upstreamed.
* Cherry-picked 11 gpio-mlxbf2.c commits from the linux master branch. 10 commits are minor commits added by other maintainers. The 11th cherry-picked commit is the one adding proper interrupt support in the gpio-mlxbf2.c driver. The upstreamed version of the GPIO driver added back the dependency between the mlxbf-gige driver and gpio-mlxbf2 driver.
* Added one commit on top of the above to add the driver version and fix the SPDX Licence identifier.
* updated the UEFI ACPI table to reflect the above changes (so the bootloader and the linux drivers need to be in sync)
* Following the generic way of writing a linux gpio driver, we created a separate driver for power handling (low power and reboot) called pwr-mlxbf.c. This driver has not been upstreamed yet but will take care of the GPIO7 software reset and the OCP3.0 GPIO low power mode. Previously all this code was integrated within the gpio-mlxbf2.c driver.

[Test Case]

* oob_net0 coming up after several SW_RESET or reboot
* oob_net0 coming up after several powercycles
* oob_net0 coming up after pushing a new Ubuntu/CentOS/Yocto
* rmmod/modprobe mlxbf_gige several times
* Test that GPIO7 reset still works on BlueSphere like boards

[Regression Potential]

Any of the test cases above could be impacted due to these changes.

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

This bug is awaiting verification that the linux-bluefield/5.4.0-1033.36 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 (22.3 KiB)

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

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

  * focal/linux-bluefield: 5.4.0-1035.38 -proposed tracker (LP: #1969372)

  * mlxbf-gige: sync up with upstreamed version (LP: #1969233)
    - SAUCE: Revert "UBUNTU: SAUCE: Fix OOB handling RX packets in heavy traffic"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: update driver version to 1.25"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: clear valid_polarity upon open"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: add interrupt counts to "ethtool
      -S""
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf-gige: add ethtool
      mlxbf_gige_set_ringparam"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf-gige: add driver version"
    - mlxbf_gige: clear valid_polarity upon open
    - net: mellanox: mlxbf_gige: Replace non-standard interrupt handling
    - SAUCE: mlxbf-gige: add driver version
    - SAUCE: mlxbf_gige: add interrupt counts to "ethtool -S"
    - SAUCE: mlxbf-gige: add ethtool mlxbf_gige_set_ringparam
    - SAUCE: Fix OOB handling RX packets in heavy traffic

  * linux-bluefield: Fix build failure in mlxbf_gige (LP: #1969374)
    - gpiolib: acpi: Allow to find GpioInt() resource by name and index

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

  * focal/linux-bluefield: 5.4.0-1034.37 -proposed tracker (LP: #1968766)

  * Devlink wasn't enabled from common config (LP: #1968751)
    - [Config] Bluefield: Enable CONFIG_NET_DEVLINK
    - [Config] Bluefield: Enable dummy config options NET_VENDOR_BROADCOM and
      PAGE_POOL

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

  * focal/linux-bluefield: 5.4.0-1033.36 -proposed tracker (LP: #1967369)

  * Fix flow table lookup failure with no originating ifindex (LP: #1967892)
    - net/sched: act_ct: Fix flow table lookup failure with no originating ifindex

  * Fix OOB handling RX packets in heavy traffic (LP: #1964984)
    - SAUCE: Fix OOB handling RX packets in heavy traffic

  * Pass originating device to drivers offloading ct connection so devices will
    filter the tuples and offload them more efficiently (LP: #1960575)
    - net: openvswitch: Be liberal in tcp conntrack.
    - net/sched: act_ct: Fill offloading tuple iifidx
    - net: openvswitch: Fill act ct extension

  * Fix flow table lookup after ct clear or switching zones (LP: #1963948)
    - net/sched: act_ct: Fix flow table lookup after ct clear or switching zones

  * CT: Offload only ASSURED connections (LP: #1961819)
    - net/sched: act_ct: Offload only ASSURED connections

  * Sync up gpio interrupt handling with upstreamed version (LP: #1965017)
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: Fix setting the gpio direction to
      output"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: remove phy interrupt"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2: Cleanup and use generic gpio_irq_chip
      struct"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: Support soft reset gpio interrupt"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: fix spinlock bug and using
      uninitialized work"
    - Revert "UBUNTU: SAUCE: gpio: Add irq support for gpio-mlxbf2"
    - gpio: mlxbf2: remove unused inclu...

Changed in linux-bluefield (Ubuntu Focal):
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.