Re: [PATCH v3 0/3] uio: add MSI/MSI-X support to uio_pci_generic driver

From: Vlad Zolotarov
Date: Tue Oct 06 2015 - 10:41:31 EST




On 10/06/15 17:30, Michael S. Tsirkin wrote:
On Tue, Oct 06, 2015 at 11:37:59AM +0300, Vlad Zolotarov wrote:
Bus mastering is easily enabled from the user space (taken from DPDK code):

static int
pci_uio_set_bus_master(int dev_fd)
{
uint16_t reg;
int ret;

ret = pread(dev_fd, &reg, sizeof(reg), PCI_COMMAND);
if (ret != sizeof(reg)) {
RTE_LOG(ERR, EAL,
"Cannot read command from PCI config space!\n");
return -1;
}

/* return if bus mastering is already on */
if (reg & PCI_COMMAND_MASTER)
return 0;

reg |= PCI_COMMAND_MASTER;

ret = pwrite(dev_fd, &reg, sizeof(reg), PCI_COMMAND);
if (ret != sizeof(reg)) {
RTE_LOG(ERR, EAL,
"Cannot write command to PCI config space!\n");
return -1;
}

return 0;
}

So, this is a non-issue. ;)
There might be valid reasons for DPDK to do this, e.g. if using VFIO.

Michael, I'm afraid u are missing the main point here - the code above destroys all your long arguments. U can't possibly prevent the root-user from enabling the device bus mastering. And as me and other people on this thread have already mentioned MSI and MSI-X device configuration is controlled from the device BAR, thus may not be prevented too.



I'm guessing it doesn't enable MSI though, does it?

Again, enabling MSI is a matter of a trivial patch configuring device registers on the device BAR.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/