Skip to content

Intel official release 1.0.14 - #30

Open
sys-sdk-build wants to merge 20 commits into
mainfrom
feature/patch-base-93f420500fb50f80
Open

Intel official release 1.0.14#30
sys-sdk-build wants to merge 20 commits into
mainfrom
feature/patch-base-93f420500fb50f80

Conversation

@sys-sdk-build

Copy link
Copy Markdown

This PR contains the IDPF release 1.0.14
with incremental linear git history.

Signed-off-by: Sarath Somasekharan sarath.somasekharan@intel.com

leitao and others added 20 commits August 18, 2026 13:21
callback to optimize RX ring queries") added specific support for GRXRINGS
callback, simplifying .get_rxnfc.

Remove the handling of GRXRINGS in .get_rxnfc() by moving it to the new
.get_rx_ring_count().

This simplifies the RX ring count retrieval and aligns idpf with the new
ethtool API for querying RX ring parameters.

Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
Switch to netdev parameter when calling vport_ctrl_lock/unlock to match
the upstream code.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
Expand idpf_mb_clean() to allow the option to reclaim message buffers
regardless of their state. Previously it would only clean descriptors
marked as descriptor done (DD), but we may end up in flows where we
need to clean all allocations unconditionally, such as a reset.

This implementation mirrors upstream, sans the libie calls.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
- Potential memory leak, not freeing adapter->vcxn_mngr.
- Make sure debugfs directory is removed.
- When HAVE_PCI_ENABLE_PCIE_ERROR_REPORTING was not defined, an init_wq
  allocation failure jumped to err_free, compounding the above. Instead
  jump to err_wq_alloc and make that label always compile to consistently
  handle the vcxn/debugfs/PCIe teardown.
- pci_ptm_disable() was not always called, add err_disable_ptm label to
  match similar patch upstream.
- Added call to pci_release_mem_regions() to make sure BAR regions are
  released on error.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
Part of the buffer pool refactor changed the Tx cleaning implementation
so that it loops through a chain of buffers and only terminates if it
sees NULL tx_buf next. Even though XDP packets are currently only one
buffer, it still needs to have the NULL terminator to avoid entering an
infinite loop in the cleaning path. Set the NULL terminator in each XDP
packet accordingly.

Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Change-type: DefectResolution
removed the granularity parameter from pci_enable_ptm().

Add support for older kernels in COMPAT.

Updated TDD to make sure the PTM related calls are enabled and tested.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: DefectResolution
Move the call to queue up the mbx_task in idpf_mb_intr_rel_irq() from
idpf_intr_rel(). This brings the logic on par with upstream and is
needed for the order of operations in idpf_reset_prepare when calling
the PCI callbacks during FLR, to make sure the driver can send messages
to the CP in preparation for the reset.

Fix a possible race by adding arq/asq checks that prevent the mbx task
from rearming if it was (or being torn down).

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
- Add IDPF_PCI_CB_RESET flag, that allows the reuse of the existing reset
handling, when attempting to resume after a reset.
- Remove the conditional call to idpf_vc_xn_shutdown() from
idpf_vc_core_deinit(). Previously it only allowed MBX on remove, but we
need the same for the preparation stage of the FLR reset. Add the call
on shutdown to avoid a regression, where long delayes can happen when
shutting down with non-working MBX.
- Re-shuffle the logic in idpf_reset_prepare() to improve locking.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
Fix several cleanup and rollback paths that leaked driver state when
queue setup, MMIO reinitialization, IRQ request, PTP teardown, or
probe unwind failed.

Tighten TX and XDP rollback to release preserved skbs and DMA state,
free vport, mailbox, debugfs, platform-device, and vcxn resources on
error paths, and update the affected tests to cover the revised cleanup
behaviour. Keep the touched RX and TX helper declarations in reverse
Christmas tree order while doing so.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Remove the callback specific modifications to the task's refresh rate in
favor of a flat 1 second across the board. This is to align with
potential changes in the upstream driver. The implementation is likely
not upstreamable, and does not solve the concern of hogging the MBX
outside of init/reset.

The stats task does not run on EMR/Simics, just cleanup the previous
restrictions in the callbacks as those are no longer needed.

Added check to avoid re-arm in the middle of a teardown.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Change-type: Other
Tighten the ADI queue bounds checks to reject index == num_* and move
the auxiliary-device names to heap storage so the AUX bus no longer
holds stack-backed pointers past the plug helpers.

Also fix the IDC unwind paths by freeing the IDA slot before
auxiliary_device_uninit() on add failures and by keeping the core iadev
owned until auxiliary_device_init() succeeds, with TDD updated for the
new teardown ordering.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Serialize all XDP TX producers that share an idpf_queue, including the
AF_XDP zero-copy splitq and singleq paths, with xdp_tx_lock so
concurrent descriptor production cannot corrupt the shared ring state.

Keep the existing init-task, debugfs, and stats fixes on the branch, and
extend the XSK TDD coverage to prove the lock is released on both
success and refillq-exhaustion paths.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
idpf_idc_issue_reset_event() takes the device lock through
cdev_info->adev and only then tests that pointer for NULL, so the !adev
test it already has can never fire. Read the aux device before the lock.

idpf_idc_vdev_mtu_event() locks &adev->dev but unlocks
&vdev_info->adev->dev. idpf_idc_vport_dev_down() can clear
vdev_info->adev while the event is in flight, so the unlock is handed
NULL and the device lock is leaked. Unlock what was locked.

Record the device passed to the device_lock() and device_unlock() mocks,
and add a test that clears vdev_info->adev from the event handler.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Signed-off-by: Wojciech Panfil <wojciech.panfil@intel.com>
idpf_statistics_task() walks adapter->vports and dereferences the netdev
of every vport it finds. The devlink subfunction paths mutate that array
idpf_cfg_netdev() gives it a netdev, and deleting one frees the netdev
and the vport before clearing the slot.

Stop the task across both operations instead of teaching the shared walk
to skip half-built vports. Reset and remove already do this in
idpf_deinit_task(), so factor that cancel out into idpf_stats_task_stop()
and add a matching idpf_stats_task_start() for the devlink paths.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
This reverts commit 6743d8a93e4629b6179d5544956fd847d19ba9a9.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Clamp the RSC segment-statistics index so a zero segment count cannot
underflow a u16 and write outside segs[], and reject queue == num_txq in
the ETF offload path before indexing txqs[].

Bound the ethtool coalesce paths by vport_config->max_q, which is what
q_coalesce[] is sized from at vport allocation. Count only the Tx queues
Tx queue per Rx queue when an XDP program is loaded, and those are
neither exposed by idpf_set_real_num_queues() nor covered by
q_coalesce[], so walking them was the out-of-bounds write.

Return early from idpf_vport_manage_rss_lut() while the link is down.
The RSS LUT and its cached copy are only allocated once the vport is
opened, so toggling RXHASH before that dereferenced NULL.

Validate debugfs register offsets against the mapped LAN BAR regions
rather than the whole BAR, so an unmapped offset can no longer reach the
BUG() in idpf_get_reg_addr(). The region test is factored into
idpf_reg_offset_in_region()/idpf_reg_offset_is_mapped() and reused by
idpf_get_reg_addr() itself.

fixtures by max_q, mark the RSS LUT vport as link up, and set
num_lan_regs in the debugfs fixture so the mapped-region check can
update, queue == num_txq in the ETF path, a debugfs offset that is inside
BAR0 but outside every mapped region, and an RSS LUT toggle with the
link down.

Change-type: Other
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Protect link event handling and vport deallocation with sf_mutex.
Extend the mutex lifetime across mailbox processing and initialize it in
the affected TDD fixtures.

Change-type: Other
Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Signed-off-by: Sarath Somasekharan <sarath.somasekharan@intel.com>
Bump version to 1.0.14 for release 3.2

Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Change-type: EngineeringNotes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants