On Wed, Jan 14, 2026 at 01:27:14AM +0900, Koichiro Den wrote:
> Introduce a new EPC feature bit (dynamic_inbound_mapping) that indicates
> whether an Endpoint Controller can update the inbound address
> translation for a BAR without requiring the EPF driver to clear/reset
> the BAR first.
>
> Endpoint Function drivers (e.g. vNTB) can use this information to decide
> whether it really is safe to call pci_epc_set_bar() multiple times to
> update inbound mappings for the BAR.
>
> Suggested-by: Niklas Cassel <[email protected]>
> Reviewed-by: Niklas Cassel <[email protected]>
> Signed-off-by: Koichiro Den <[email protected]>
> ---
Reviewed-by: Frank Li <[email protected]>
> include/linux/pci-epc.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h
> index 4286bfdbfdfa..4c8516756c56 100644
> --- a/include/linux/pci-epc.h
> +++ b/include/linux/pci-epc.h
> @@ -223,6 +223,10 @@ struct pci_epc_bar_desc {
> /**
> * struct pci_epc_features - features supported by a EPC device per function
> * @linkup_notifier: indicate if the EPC device can notify EPF driver on
> link up
> + * @dynamic_inbound_mapping: indicate if the EPC device supports updating
> + * inbound mappings for an already configured BAR
> + * (i.e. allow calling pci_epc_set_bar() again
> + * without first calling pci_epc_clear_bar())
> * @msi_capable: indicate if the endpoint function has MSI capability
> * @msix_capable: indicate if the endpoint function has MSI-X capability
> * @intx_capable: indicate if the endpoint can raise INTx interrupts
> @@ -231,6 +235,7 @@ struct pci_epc_bar_desc {
> */
> struct pci_epc_features {
> unsigned int linkup_notifier : 1;
> + unsigned int dynamic_inbound_mapping : 1;
> unsigned int msi_capable : 1;
> unsigned int msix_capable : 1;
> unsigned int intx_capable : 1;
> --
> 2.51.0
>