Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'char-misc-3.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc driver fixes from Greg KH:
"Here are some small iio and w1 driver fixes for 3.12-rc6.

There is also a hyper-v fix in here, which turned out to be incorrect,
so it was reverted. That will probably have to wait unto 3.13-rc1 to
get accepted as it's still being discussed"

* tag 'char-misc-3.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
Revert "Drivers: hv: vmbus: Fix a bug in channel rescind code"
Drivers: hv: vmbus: Fix a bug in channel rescind code
iio:buffer: Free active scan mask in iio_disable_all_buffers()
iio: frequency: adf4350: add missing clk_disable_unprepare() on error in adf4350_probe()
w1 - call request_module with w1 master mutex unlocked
w1 - fix fops in w1_bus_notify

+13 -2
+4 -2
drivers/iio/frequency/adf4350.c
··· 525 525 } 526 526 527 527 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); 528 - if (indio_dev == NULL) 529 - return -ENOMEM; 528 + if (indio_dev == NULL) { 529 + ret = -ENOMEM; 530 + goto error_disable_clk; 531 + } 530 532 531 533 st = iio_priv(indio_dev); 532 534
+3
drivers/iio/industrialio-buffer.c
··· 477 477 indio_dev->currentmode = INDIO_DIRECT_MODE; 478 478 if (indio_dev->setup_ops->postdisable) 479 479 indio_dev->setup_ops->postdisable(indio_dev); 480 + 481 + if (indio_dev->available_scan_masks == NULL) 482 + kfree(indio_dev->active_scan_mask); 480 483 } 481 484 482 485 int iio_update_buffers(struct iio_dev *indio_dev,
+6
drivers/w1/w1.c
··· 613 613 sl = dev_to_w1_slave(dev); 614 614 fops = sl->family->fops; 615 615 616 + if (!fops) 617 + return 0; 618 + 616 619 switch (action) { 617 620 case BUS_NOTIFY_ADD_DEVICE: 618 621 /* if the family driver needs to initialize something... */ ··· 716 713 atomic_set(&sl->refcnt, 0); 717 714 init_completion(&sl->released); 718 715 716 + /* slave modules need to be loaded in a context with unlocked mutex */ 717 + mutex_unlock(&dev->mutex); 719 718 request_module("w1-family-0x%0x", rn->family); 719 + mutex_lock(&dev->mutex); 720 720 721 721 spin_lock(&w1_flock); 722 722 f = w1_family_registered(rn->family);