diff options
author | Erin Allison | 2022-05-15 16:42:41 -0400 |
---|---|---|
committer | Erin Allison | 2022-05-15 16:51:17 -0400 |
commit | e4e816d3b141c95e287e7e208b691d28f4ca6aac (patch) | |
tree | d230668f45baa3a3cb1f015cf545729c0dc93a3d /fourteen.patch | |
parent | 2da04582c26cb75d02252e2264810e715194ed6c (diff) | |
download | aur-e4e816d3b141c95e287e7e208b691d28f4ca6aac.tar.gz |
upgpkg: nvidia-merged 510.47.03-1
upstream release
Signed-off-by: Erin Allison <erin@eallison.us>
Diffstat (limited to 'fourteen.patch')
-rw-r--r-- | fourteen.patch | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/fourteen.patch b/fourteen.patch deleted file mode 100644 index 8c20985ad941..000000000000 --- a/fourteen.patch +++ /dev/null @@ -1,322 +0,0 @@ ---- ./common/inc/nv-time.h -+++ ./common/inc/nv-time.h -@@ -205,7 +205,7 @@ - // the requested timeout has expired, loop until less - // than a jiffie of the desired delay remains. - // -- current->state = TASK_INTERRUPTIBLE; -+ current->__state = TASK_INTERRUPTIBLE; - do - { - schedule_timeout(jiffies); - ---- ./conftest.sh -+++ ./conftest.sh -@@ -4736,17 +4736,47 @@ - # - VERBOSE=$6 - iommu=CONFIG_VFIO_IOMMU_TYPE1 -- mdev=CONFIG_VFIO_MDEV_DEVICE -+ mdev=CONFIG_VFIO_MDEV - kvm=CONFIG_KVM_VFIO -+ VFIO_IOMMU_PRESENT=0 -+ VFIO_MDEV_DEVICE_PRESENT=0 -+ KVM_PRESENT=0 - - if [ -n "$VGX_KVM_BUILD" ]; then -- if (test_configuration_option ${iommu} || test_configuration_option ${iommu}_MODULE) && -- (test_configuration_option ${mdev} || test_configuration_option ${mdev}_MODULE) && -- (test_configuration_option ${kvm} || test_configuration_option ${kvm}_MODULE); then -+ if (test_configuration_option ${iommu} || test_configuration_option ${iommu}_MODULE); then -+ VFIO_IOMMU_PRESENT=1 -+ fi -+ -+ if (test_configuration_option ${mdev} || test_configuration_option ${mdev}_MODULE); then -+ VFIO_MDEV_DEVICE_PRESENT=1 -+ fi -+ -+ if (test_configuration_option ${kvm} || test_configuration_option ${kvm}_MODULE); then -+ KVM_PRESENT=1 -+ fi -+ -+ if [ "$VFIO_IOMMU_PRESENT" != "0" ] && -+ [ "$VFIO_MDEV_DEVICE_PRESENT" != "0" ] && -+ [ "$KVM_PRESENT" != "0" ] ; then - exit 0 - else -- echo "The kernel is not running a vGPU on KVM host."; -+ echo "Below CONFIG options are missing on the kernel for installing"; -+ echo "NVIDIA vGPU driver on KVM host"; -+ if [ "$VFIO_IOMMU_PRESENT" = "0" ]; then -+ echo "CONFIG_VFIO_IOMMU_TYPE1"; -+ fi -+ -+ if [ "$VFIO_MDEV_DEVICE_PRESENT" = "0" ]; then -+ echo "CONFIG_VFIO_MDEV_DEVICE"; -+ fi -+ -+ if [ "$KVM_PRESENT" = "0" ]; then -+ echo "CONFIG_KVM"; -+ fi -+ echo "Please install the kernel with above CONFIG options set, then"; -+ echo "try installing again"; - echo ""; -+ - if [ "$VERBOSE" = "full_output" ]; then - echo "*** Failed vGPU on KVM sanity check. Bailing out! ***"; - echo ""; - ---- ./Kbuild -+++ ./Kbuild -@@ -75,7 +75,7 @@ - EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"460.73.01\" -Wno-unused-function -Wuninitialized -fno-strict-aliasing -mno-red-zone -mcmodel=kernel -DNV_UVM_ENABLE - EXTRA_CFLAGS += $(call cc-option,-Werror=undef,) - EXTRA_CFLAGS += -DNV_SPECTRE_V2=$(NV_SPECTRE_V2) --EXTRA_CFLAGS += -DNV_KERNEL_INTERFACE_LAYER -+EXTRA_CFLAGS += -DNV_KERNEL_INTERFACE_LAYER -Wfatal-errors - - # - # Detect SGI UV systems and apply system-specific optimizations. - ---- ./nvidia-drm/nvidia-drm-crtc.c -+++ ./nvidia-drm/nvidia-drm-crtc.c -@@ -227,7 +227,7 @@ - } - - static int nv_drm_plane_atomic_check(struct drm_plane *plane, -- struct drm_plane_state *plane_state) -+ struct drm_atomic_state *plane_state) - { - int i; - struct drm_crtc *crtc; -@@ -238,7 +238,7 @@ - goto done; - } - -- nv_drm_for_each_crtc_in_state(plane_state->state, crtc, crtc_state, i) { -+ nv_drm_for_each_crtc_in_state(plane_state, crtc, crtc_state, i) { - struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc_state); - struct NvKmsKapiHeadRequestedConfig *head_req_config = - &nv_crtc_state->req_config; -@@ -246,14 +246,14 @@ - &head_req_config->layerRequestedConfig[type]; - - if (plane->state->crtc == crtc && -- plane->state->crtc != plane_state->crtc) { -+ plane->state->crtc != plane_state->crtcs->ptr) { - plane_req_config_disable(plane_requested_config); - continue; - } - -- if (plane_state->crtc == crtc) { -+ if (plane_state->crtcs->ptr == crtc) { - plane_req_config_update(plane, -- plane_state, -+ plane_state->planes->state, - plane_requested_config); - - if (__is_async_flip_requested(plane, crtc_state)) { -@@ -276,12 +276,12 @@ - } - - static void nv_drm_plane_atomic_update(struct drm_plane *plane, -- struct drm_plane_state *old_state) -+ struct drm_atomic_state *old_state) - { - } - - static void nv_drm_plane_atomic_disable(struct drm_plane *plane, -- struct drm_plane_state *old_state) -+ struct drm_atomic_state *old_state) - { - } - ---- ./nvidia-drm/nvidia-drm-drv.c -+++ ./nvidia-drm/nvidia-drm-drv.c -@@ -866,7 +866,7 @@ - dev->dev_private = nv_dev; - nv_dev->dev = dev; - if (device->bus == &pci_bus_type) { -- dev->pdev = to_pci_dev(device); -+ //dev->pdev = to_pci_dev(device); - } - - /* Register DRM device to DRM sub-system */ - ---- ./nvidia-vgpu-vfio/nvidia-vgpu-vfio.c -+++ ./nvidia-vgpu-vfio/nvidia-vgpu-vfio.c -@@ -25,6 +25,9 @@ - #include <linux/init.h> - #include <linux/err.h> - #include <linux/eventfd.h> -+#include <uapi/linux/uuid.h> -+#include <linux/device.h> -+#include <linux/mdev.h> - #include "nvstatus.h" - #include "nv-misc.h" - #include "nv-linux.h" -@@ -38,6 +41,25 @@ - struct vgpu_devs vgpu_devices; - struct phys_devs phys_devices; - -+struct mdev_parent { -+ struct device *dev; -+ const struct mdev_parent_ops *ops; -+ struct kref ref; -+ struct list_head next; -+ struct kset *mdev_types_kset; -+ struct list_head type_list; -+ /* Synchronize device creation/removal with parent unregistration */ -+ struct rw_semaphore unreg_sem; -+}; -+ -+struct mdev_type { -+ struct kobject kobj; -+ struct kobject *devices_kobj; -+ struct mdev_parent *parent; -+ struct list_head next; -+ unsigned int type_group_id; -+}; -+ - #define SLEEP_TIME_MILLISECONDS 20 - #define VGPU_EXIT_TIMEOUT_MILLISECONDS 5000 - #define WAITQUEUE_TIMEOUT_SECONDS 25000 -@@ -203,8 +225,8 @@ - .remove = nv_vgpu_vfio_destroy, - .read = nv_vgpu_vfio_read, - .write = nv_vgpu_vfio_write, -- .open = nv_vgpu_vfio_open, -- .release = nv_vgpu_vfio_close, -+ .open_device = nv_vgpu_vfio_open, -+ .close_device = nv_vgpu_vfio_close, - .ioctl = nv_vgpu_vfio_ioctl, - .mmap = nv_vgpu_vfio_mmap, - }; -@@ -412,9 +434,9 @@ - return NV_OK; - } - --static ssize_t name_show(struct kobject *kobj, struct device *dev, char *buf) -+static ssize_t name_show(struct mdev_type *mtype, struct mdev_type_attribute *attr, char *buf) - { -- struct pci_dev *pdev = to_pci_dev(dev); -+ struct pci_dev *pdev = to_pci_dev(mtype->parent->dev); - struct pci_dev *parent_device; - NvU32 vgpu_type_id; - NV_STATUS status; -@@ -425,7 +447,7 @@ - - parent_device = pdev; - -- if (nv_get_vgpu_type_id(kobj->name, dev, &vgpu_type_id) -+ if (nv_get_vgpu_type_id(mtype->kobj.name, mtype->parent->dev, &vgpu_type_id) - == NV_OK) - status = rm_vgpu_vfio_ops.get_name(parent_device, vgpu_type_id, buf); - else -@@ -438,9 +460,9 @@ - } - MDEV_TYPE_ATTR_RO(name); - --static ssize_t description_show(struct kobject *kobj, struct device *dev, char *buf) -+static ssize_t description_show(struct mdev_type *mtype, struct mdev_type_attribute *attr, char *buf) - { -- struct pci_dev *pdev = to_pci_dev(dev); -+ struct pci_dev *pdev = to_pci_dev(mtype->parent->dev); - struct pci_dev *parent_device; - NvU32 vgpu_type_id; - NV_STATUS status; -@@ -451,7 +473,7 @@ - - parent_device = pdev; - -- if (nv_get_vgpu_type_id(kobj->name, dev, &vgpu_type_id) -+ if (nv_get_vgpu_type_id(mtype->kobj.name, mtype->parent->dev, &vgpu_type_id) - == NV_OK) - status = rm_vgpu_vfio_ops.get_description(parent_device, vgpu_type_id, buf); - else -@@ -464,13 +486,13 @@ - } - MDEV_TYPE_ATTR_RO(description); - --static ssize_t available_instances_show(struct kobject *kobj, struct device *dev, char *buf) -+static ssize_t available_instances_show(struct mdev_type *t, struct mdev_type_attribute *ta, char *buf) - { -- struct pci_dev *pdev = to_pci_dev(dev); -+ struct pci_dev *pdev = to_pci_dev(t->parent->dev); - NvU32 vgpu_type_id; - NV_STATUS status; - -- if ((nv_get_vgpu_type_id(kobj->name, dev, &vgpu_type_id)) == NV_OK) -+ if ((nv_get_vgpu_type_id(t->kobj.name, t->parent->dev, &vgpu_type_id)) == NV_OK) - status = rm_vgpu_vfio_ops.get_instances(pdev, vgpu_type_id, buf); - else - return -EINVAL; -@@ -482,8 +504,7 @@ - } - MDEV_TYPE_ATTR_RO(available_instances); - --static ssize_t device_api_show(struct kobject *kobj, struct device *dev, -- char *buf) -+static ssize_t device_api_show(struct mdev_type *t, struct mdev_type_attribute *ta, char *buf) - { - return sprintf(buf, "%s\n", - VFIO_DEVICE_API_PCI_STRING); -@@ -578,7 +599,7 @@ - return ret; - } - --static int nv_vgpu_vfio_create(struct kobject *kobj, struct mdev_device *mdev) -+static int nv_vgpu_vfio_create(struct mdev_device *mdev) - { - NV_STATUS status = NV_OK; - vgpu_dev_t *vgpu_dev = NULL; -@@ -600,7 +621,7 @@ - if (!pdev) - return -EINVAL; - -- if (nv_get_vgpu_type_id(kobj->name, NV_GET_MDEV_PARENT(mdev), &vgpu_type_id) -+ if (nv_get_vgpu_type_id(mdev->type->kobj.name, NV_GET_MDEV_PARENT(mdev), &vgpu_type_id) - != NV_OK) - { - ret = -EINVAL; -@@ -676,12 +697,7 @@ - if (pdev->is_virtfn) - { - #if defined(NV_MDEV_SET_IOMMU_DEVICE_PRESENT) -- ret = mdev_set_iommu_device(NV_GET_MDEV_DEV(mdev), NV_GET_MDEV_PARENT(mdev)); -- if (ret != 0) -- { -- NV_VGPU_DEV_LOG(VGPU_ERR, mdev, "Failed to set IOMMU device. ret: %d \n", ret); -- goto remove_vgpu; -- } -+ mdev_set_iommu_device(mdev, NV_GET_MDEV_PARENT(mdev)); - #endif - } - ---- ./nvidia-vgpu-vfio/nvidia-vgpu-vfio.h -+++ ./nvidia-vgpu-vfio/nvidia-vgpu-vfio.h -@@ -37,7 +37,6 @@ - #include <linux/list.h> - #include <linux/pci.h> - #include <linux/sched.h> --#include <linux/eventfd.h> - - struct vgpu_dev_s; - struct mapping_node_s; -@@ -52,7 +51,7 @@ - static NV_STATUS nv_vgpu_vfio_validate_map_request(struct mdev_device *, loff_t, NvU64 *, - NvU64 *, NvU64 *, pgprot_t *, NvBool *); - static void nv_vgpu_remove(struct pci_dev *); --static int nv_vgpu_vfio_create(struct kobject *, struct mdev_device *); -+static int nv_vgpu_vfio_create(struct mdev_device *); - static int nv_vgpu_vfio_destroy(struct mdev_device *mdev); - static int nv_vgpu_vfio_open(struct mdev_device *); - static void nv_vgpu_vfio_close(struct mdev_device *); -@@ -307,6 +306,7 @@ - - } intr_info_t; - -+ - typedef struct - { - NvU64 pending; |