vfio/fsl-mc: Use GFP_KERNEL_ACCOUNT for userspace persistent allocations

Use GFP_KERNEL_ACCOUNT for userspace persistent allocations.

The GFP_KERNEL_ACCOUNT option lets the memory allocator know that this
is untrusted allocation triggered from userspace and should be a subject
of kmem accounting, and as such it is controlled by the cgroup
mechanism.

Signed-off-by: Yishai Hadas <yishaih@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20230108154427.32609-6-yishaih@nvidia.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
Yishai Hadas 2023-01-08 17:44:26 +02:00 committed by Alex Williamson
parent cb8285b89f
commit 4a6c971a06
2 changed files with 3 additions and 3 deletions

View File

@ -28,7 +28,7 @@ static int vfio_fsl_mc_open_device(struct vfio_device *core_vdev)
int i; int i;
vdev->regions = kcalloc(count, sizeof(struct vfio_fsl_mc_region), vdev->regions = kcalloc(count, sizeof(struct vfio_fsl_mc_region),
GFP_KERNEL); GFP_KERNEL_ACCOUNT);
if (!vdev->regions) if (!vdev->regions)
return -ENOMEM; return -ENOMEM;

View File

@ -29,7 +29,7 @@ static int vfio_fsl_mc_irqs_allocate(struct vfio_fsl_mc_device *vdev)
irq_count = mc_dev->obj_desc.irq_count; irq_count = mc_dev->obj_desc.irq_count;
mc_irq = kcalloc(irq_count, sizeof(*mc_irq), GFP_KERNEL); mc_irq = kcalloc(irq_count, sizeof(*mc_irq), GFP_KERNEL_ACCOUNT);
if (!mc_irq) if (!mc_irq)
return -ENOMEM; return -ENOMEM;
@ -77,7 +77,7 @@ static int vfio_set_trigger(struct vfio_fsl_mc_device *vdev,
if (fd < 0) /* Disable only */ if (fd < 0) /* Disable only */
return 0; return 0;
irq->name = kasprintf(GFP_KERNEL, "vfio-irq[%d](%s)", irq->name = kasprintf(GFP_KERNEL_ACCOUNT, "vfio-irq[%d](%s)",
hwirq, dev_name(&vdev->mc_dev->dev)); hwirq, dev_name(&vdev->mc_dev->dev));
if (!irq->name) if (!irq->name)
return -ENOMEM; return -ENOMEM;