mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
vdpa: solidrun: Replace deprecated PCI functions
The PCI functions pcim_iomap_regions() pcim_iounmap_regions() pcim_iomap_table() have been deprecated by the PCI subsystem. Replace these functions with their successors pcim_iomap_region() and pcim_iounmap_region(). Signed-off-by: Philipp Stanner <pstanner@redhat.com> Message-Id: <20241219094428.21511-2-phasta@kernel.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com>
This commit is contained in:
parent
212c3a8513
commit
6f3955a62c
|
|
@ -556,58 +556,60 @@ static const struct vdpa_config_ops snet_config_ops = {
|
|||
static int psnet_open_pf_bar(struct pci_dev *pdev, struct psnet *psnet)
|
||||
{
|
||||
char *name;
|
||||
int ret, i, mask = 0;
|
||||
unsigned short i;
|
||||
bool bars_found = false;
|
||||
|
||||
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "psnet[%s]-bars", pci_name(pdev));
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
|
||||
/* We don't know which BAR will be used to communicate..
|
||||
* We will map every bar with len > 0.
|
||||
*
|
||||
* Later, we will discover the BAR and unmap all other BARs.
|
||||
*/
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pdev, i))
|
||||
mask |= (1 << i);
|
||||
void __iomem *io;
|
||||
|
||||
if (pci_resource_len(pdev, i) == 0)
|
||||
continue;
|
||||
|
||||
io = pcim_iomap_region(pdev, i, name);
|
||||
if (IS_ERR(io)) {
|
||||
SNET_ERR(pdev, "Failed to request and map PCI BARs\n");
|
||||
return PTR_ERR(io);
|
||||
}
|
||||
|
||||
psnet->bars[i] = io;
|
||||
bars_found = true;
|
||||
}
|
||||
|
||||
/* No BAR can be used.. */
|
||||
if (!mask) {
|
||||
if (!bars_found) {
|
||||
SNET_ERR(pdev, "Failed to find a PCI BAR\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "psnet[%s]-bars", pci_name(pdev));
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = pcim_iomap_regions(pdev, mask, name);
|
||||
if (ret) {
|
||||
SNET_ERR(pdev, "Failed to request and map PCI BARs\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (mask & (1 << i))
|
||||
psnet->bars[i] = pcim_iomap_table(pdev)[i];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snet_open_vf_bar(struct pci_dev *pdev, struct snet *snet)
|
||||
{
|
||||
char *name;
|
||||
int ret;
|
||||
void __iomem *io;
|
||||
|
||||
name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "snet[%s]-bars", pci_name(pdev));
|
||||
if (!name)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Request and map BAR */
|
||||
ret = pcim_iomap_regions(pdev, BIT(snet->psnet->cfg.vf_bar), name);
|
||||
if (ret) {
|
||||
io = pcim_iomap_region(pdev, snet->psnet->cfg.vf_bar, name);
|
||||
if (IS_ERR(io)) {
|
||||
SNET_ERR(pdev, "Failed to request and map PCI BAR for a VF\n");
|
||||
return ret;
|
||||
return PTR_ERR(io);
|
||||
}
|
||||
|
||||
snet->bar = pcim_iomap_table(pdev)[snet->psnet->cfg.vf_bar];
|
||||
snet->bar = io;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -656,15 +658,12 @@ static int psnet_detect_bar(struct psnet *psnet, u32 off)
|
|||
|
||||
static void psnet_unmap_unused_bars(struct pci_dev *pdev, struct psnet *psnet)
|
||||
{
|
||||
int i, mask = 0;
|
||||
unsigned short i;
|
||||
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (psnet->bars[i] && i != psnet->barno)
|
||||
mask |= (1 << i);
|
||||
pcim_iounmap_region(pdev, i);
|
||||
}
|
||||
|
||||
if (mask)
|
||||
pcim_iounmap_regions(pdev, mask);
|
||||
}
|
||||
|
||||
/* Read SNET config from PCI BAR */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user