Commit 50f09a3d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull char/misc driver fixes from Greg KH:
 "Here is a big set of char/misc/other driver fixes for 5.13-rc3.

  The majority here is the fallout of the umn.edu re-review of all prior
  submissions. That resulted in a bunch of reverts along with the
  "correct" changes made, such that there is no regression of any of the
  potential fixes that were made by those individuals. I would like to
  thank the over 80 different developers who helped with the review and
  fixes for this mess.

  Other than that, there's a few habanna driver fixes for reported
  issues, and some dyndbg fixes for reported problems.

  All of these have been in linux-next for a while with no reported
  problems"

* tag 'char-misc-5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (82 commits)
  misc: eeprom: at24: check suspend status before disable regulator
  uio_hv_generic: Fix another memory leak in error handling paths
  uio_hv_generic: Fix a memory leak in error handling paths
  uio/uio_pci_generic: fix return value changed in refactoring
  Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
  dyndbg: drop uninformative vpr_info
  dyndbg: avoid calling dyndbg_emit_prefix when it has no work
  binder: Return EFAULT if we fail BINDER_ENABLE_ONEWAY_SPAM_DETECTION
  cdrom: gdrom: initialize global variable at init time
  brcmfmac: properly check for bus register errors
  Revert "brcmfmac: add a check for the status of usb_register"
  video: imsttfb: check for ioremap() failures
  Revert "video: imsttfb: fix potential NULL pointer dereferences"
  net: liquidio: Add missing null pointer checks
  Revert "net: liquidio: fix a NULL pointer dereference"
  media: gspca: properly check for errors in po1030_probe()
  Revert "media: gspca: Check the return value of write_bridge for timeout"
  media: gspca: mt9m111: Check write_bridge for timeout
  Revert "media: gspca: mt9m111: Check write_bridge for timeout"
  media: dvb: Add check on sp8870_readreg return
  ...
parents 7ac17714 2962484d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4918,7 +4918,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
		uint32_t enable;

		if (copy_from_user(&enable, ubuf, sizeof(enable))) {
			ret = -EINVAL;
			ret = -EFAULT;
			goto err;
		}
		binder_inner_proc_lock(proc);
+10 −3
Original line number Diff line number Diff line
@@ -744,6 +744,13 @@ static const struct blk_mq_ops gdrom_mq_ops = {
static int probe_gdrom(struct platform_device *devptr)
{
	int err;

	/*
	 * Ensure our "one" device is initialized properly in case of previous
	 * usages of it
	 */
	memset(&gd, 0, sizeof(gd));

	/* Start the device */
	if (gdrom_execute_diagnostic() != 1) {
		pr_warn("ATA Probe for GDROM failed\n");
@@ -830,6 +837,8 @@ static int remove_gdrom(struct platform_device *devptr)
	if (gdrom_major)
		unregister_blkdev(gdrom_major, GDROM_DEV_NAME);
	unregister_cdrom(gd.cd_info);
	kfree(gd.cd_info);
	kfree(gd.toc);

	return 0;
}
@@ -845,7 +854,7 @@ static struct platform_driver gdrom_driver = {
static int __init init_gdrom(void)
{
	int rc;
	gd.toc = NULL;

	rc = platform_driver_register(&gdrom_driver);
	if (rc)
		return rc;
@@ -861,8 +870,6 @@ static void __exit exit_gdrom(void)
{
	platform_device_unregister(pd);
	platform_driver_unregister(&gdrom_driver);
	kfree(gd.toc);
	kfree(gd.cd_info);
}

module_init(init_gdrom);
+2 −0
Original line number Diff line number Diff line
@@ -984,6 +984,8 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
		hdp->hd_phys_address = fixmem32->address;
		hdp->hd_address = ioremap(fixmem32->address,
						HPET_RANGE_SIZE);
		if (!hdp->hd_address)
			return AE_ERROR;

		if (hpet_is_known(hdp)) {
			iounmap(hdp->hd_address);
+0 −1
Original line number Diff line number Diff line
@@ -442,7 +442,6 @@ static int nitrox_probe(struct pci_dev *pdev,
	err = pci_request_mem_regions(pdev, nitrox_driver_name);
	if (err) {
		pci_disable_device(pdev);
		dev_err(&pdev->dev, "Failed to request mem regions!\n");
		return err;
	}
	pci_set_master(pdev);
+16 −1
Original line number Diff line number Diff line
@@ -418,8 +418,23 @@ static int __init hidma_mgmt_init(void)
		hidma_mgmt_of_populate_channels(child);
	}
#endif
	return platform_driver_register(&hidma_mgmt_driver);
	/*
	 * We do not check for return value here, as it is assumed that
	 * platform_driver_register must not fail. The reason for this is that
	 * the (potential) hidma_mgmt_of_populate_channels calls above are not
	 * cleaned up if it does fail, and to do this work is quite
	 * complicated. In particular, various calls of of_address_to_resource,
	 * of_irq_to_resource, platform_device_register_full, of_dma_configure,
	 * and of_msi_configure which then call other functions and so on, must
	 * be cleaned up - this is not a trivial exercise.
	 *
	 * Currently, this module is not intended to be unloaded, and there is
	 * no module_exit function defined which does the needed cleanup. For
	 * this reason, we have to assume success here.
	 */
	platform_driver_register(&hidma_mgmt_driver);

	return 0;
}
module_init(hidma_mgmt_init);
MODULE_LICENSE("GPL v2");
Loading