vfio/iommufd: Fix SIGSEV in iommufd_cdev_attach()
When iommufd_cdev_ram_block_discard_disable() fails for whatever reason, errp should be set or else SIGSEV is triggered in vfio_realize() when error_prepend() is called. By this chance, use the same error message for both legacy and iommufd backend. Fixes: 5ee3dc7af785 ("vfio/iommufd: Implement the iommufd backend") Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Link: https://lore.kernel.org/r/20250116102307.260849-1-zhenzhong.duan@intel.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
e45891e0b1
commit
7b3d5b84cb
@ -515,8 +515,8 @@ static bool iommufd_cdev_attach(const char *name, VFIODevice *vbasedev,
|
|||||||
} else {
|
} else {
|
||||||
ret = iommufd_cdev_ram_block_discard_disable(true);
|
ret = iommufd_cdev_ram_block_discard_disable(true);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
error_setg(errp,
|
error_setg_errno(errp, -ret,
|
||||||
"Cannot set discarding of RAM broken (%d)", ret);
|
"Cannot set discarding of RAM broken");
|
||||||
goto err_discard_disable;
|
goto err_discard_disable;
|
||||||
}
|
}
|
||||||
goto found_container;
|
goto found_container;
|
||||||
@ -544,6 +544,7 @@ static bool iommufd_cdev_attach(const char *name, VFIODevice *vbasedev,
|
|||||||
|
|
||||||
ret = iommufd_cdev_ram_block_discard_disable(true);
|
ret = iommufd_cdev_ram_block_discard_disable(true);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
error_setg_errno(errp, -ret, "Cannot set discarding of RAM broken");
|
||||||
goto err_discard_disable;
|
goto err_discard_disable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user