Commit ab91292c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull char/misc driver fixes from Greg KH:
 "Here are some small driver fixes, and one "large" revert, for
  5.10-rc7.

  They include:

   - revert mei patch from 5.10-rc1 that was using a reserved userspace
     value. It will be resubmitted once the proper id has been assigned
     by the virtio people.

   - habanalabs fixes found by the fall-through audit from Gustavo

   - speakup driver fixes for reported issues

   - fpga config build fix for reported issue.

  All of these except the revert have been in linux-next with no
  reported issues. The revert is "clean" and just removes a
  previously-added driver, so no real issue there"

* tag 'char-misc-5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  Revert "mei: virtio: virtualization frontend driver"
  fpga: Specify HAS_IOMEM dependency for FPGA_DFL
  habanalabs: put devices before driver removal
  habanalabs: free host huge va_range if not used
  speakup: Reject setting the speakup line discipline outside of speakup
parents d49248eb 264f53b4
Loading
Loading
Loading
Loading
+23 −14
Original line number Diff line number Diff line
@@ -47,27 +47,20 @@ static int spk_ttyio_ldisc_open(struct tty_struct *tty)
{
	struct spk_ldisc_data *ldisc_data;

	if (tty != speakup_tty)
		/* Somebody tried to use this line discipline outside speakup */
		return -ENODEV;

	if (!tty->ops->write)
		return -EOPNOTSUPP;

	mutex_lock(&speakup_tty_mutex);
	if (speakup_tty) {
		mutex_unlock(&speakup_tty_mutex);
		return -EBUSY;
	}
	speakup_tty = tty;

	ldisc_data = kmalloc(sizeof(*ldisc_data), GFP_KERNEL);
	if (!ldisc_data) {
		speakup_tty = NULL;
		mutex_unlock(&speakup_tty_mutex);
	if (!ldisc_data)
		return -ENOMEM;
	}

	init_completion(&ldisc_data->completion);
	ldisc_data->buf_free = true;
	speakup_tty->disc_data = ldisc_data;
	mutex_unlock(&speakup_tty_mutex);
	tty->disc_data = ldisc_data;

	return 0;
}
@@ -191,10 +184,26 @@ static int spk_ttyio_initialise_ldisc(struct spk_synth *synth)

	tty_unlock(tty);

	mutex_lock(&speakup_tty_mutex);
	speakup_tty = tty;
	ret = tty_set_ldisc(tty, N_SPEAKUP);
	if (ret)
		speakup_tty = NULL;
	mutex_unlock(&speakup_tty_mutex);

	if (!ret)
		/* Success */
		return 0;

	pr_err("speakup: Failed to set N_SPEAKUP on tty\n");

	tty_lock(tty);
	if (tty->ops->close)
		tty->ops->close(tty, NULL);
	tty_unlock(tty);

	tty_kclose(tty);

	return ret;
}

+1 −0
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ config FPGA_DFL
	tristate "FPGA Device Feature List (DFL) support"
	select FPGA_BRIDGE
	select FPGA_REGION
	depends on HAS_IOMEM
	help
	  Device Feature List (DFL) defines a feature list structure that
	  creates a linked list of feature headers within the MMIO space
+8 −8
Original line number Diff line number Diff line
@@ -231,16 +231,16 @@ delete_cdev_device:

static void device_cdev_sysfs_del(struct hl_device *hdev)
{
	/* device_release() won't be called so must free devices explicitly */
	if (!hdev->cdev_sysfs_created) {
		kfree(hdev->dev_ctrl);
		kfree(hdev->dev);
		return;
	}
	if (!hdev->cdev_sysfs_created)
		goto put_devices;

	hl_sysfs_fini(hdev);
	cdev_device_del(&hdev->cdev_ctrl, hdev->dev_ctrl);
	cdev_device_del(&hdev->cdev, hdev->dev);

put_devices:
	put_device(hdev->dev);
	put_device(hdev->dev_ctrl);
}

/*
@@ -1371,9 +1371,9 @@ sw_fini:
early_fini:
	device_early_fini(hdev);
free_dev_ctrl:
	kfree(hdev->dev_ctrl);
	put_device(hdev->dev_ctrl);
free_dev:
	kfree(hdev->dev);
	put_device(hdev->dev);
out_disabled:
	hdev->disabled = true;
	if (add_cdev_sysfs_on_err)
+1 −0
Original line number Diff line number Diff line
@@ -1626,6 +1626,7 @@ static int vm_ctx_init_with_ranges(struct hl_ctx *ctx,
			goto host_hpage_range_err;
		}
	} else {
		kfree(ctx->host_huge_va_range);
		ctx->host_huge_va_range = ctx->host_va_range;
	}

+0 −10
Original line number Diff line number Diff line
@@ -46,14 +46,4 @@ config INTEL_MEI_TXE
	  Supported SoCs:
	  Intel Bay Trail

config INTEL_MEI_VIRTIO
	tristate "Intel MEI interface emulation with virtio framework"
	select INTEL_MEI
	depends on X86 && PCI && VIRTIO_PCI
	help
	  This module implements mei hw emulation over virtio transport.
	  The module will be called mei_virtio.
	  Enable this if your virtual machine supports virtual mei
	  device over virtio.

source "drivers/misc/mei/hdcp/Kconfig"
Loading