Skip to content

Commit 2cc699b

Browse files
committed
Merge tag 'char-misc-6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc/IIO driver fixes from Greg KH: "Here are a number of misc and char and iio driver fixes that have been sitting in my tree for way too long. They contain: - iio driver fixes for reported issues - regression fix for rtsx_usb card reader - mei and mhi driver fixes - small virt driver fixes - ntsync permissions fix - other tiny driver fixes for reported problems. All of these have been in linux-next for quite a while with no reported issues" * tag 'char-misc-6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (30 commits) Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection" ntsync: Check wait count based on byte size. bus: simple-pm-bus: fix forced runtime PM use char: misc: deallocate static minor in error path eeprom: digsy_mtc: Make GPIO lookup table match the device drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl binderfs: fix use-after-free in binder_devices slimbus: messaging: Free transaction ID in delayed interrupt scenario vbox: add HAS_IOPORT dependency cdx: Fix possible UAF error in driver_override_show() intel_th: pci: Add Panther Lake-P/U support intel_th: pci: Add Panther Lake-H support intel_th: pci: Add Arrow Lake support intel_th: msu: Fix less trivial kernel-doc warnings intel_th: msu: Fix kernel-doc warnings MAINTAINERS: change maintainer for FSI ntsync: Set the permissions to be 0666 bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock mei: vsc: Use "wakeuphostint" when getting the host wakeup GPIO mei: me: add panther lake P DID ...
2 parents a382b06 + 2397d61 commit 2cc699b

File tree

27 files changed

+139
-85
lines changed

27 files changed

+139
-85
lines changed

Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ properties:
146146
maxItems: 2
147147

148148
pwm-names:
149+
minItems: 1
149150
items:
150151
- const: convst1
151152
- const: convst2

MAINTAINERS

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9443,14 +9443,11 @@ F: include/linux/fscrypt.h
94439443
F: include/uapi/linux/fscrypt.h
94449444

94459445
FSI SUBSYSTEM
9446-
M: Jeremy Kerr <jk@ozlabs.org>
9447-
M: Joel Stanley <joel@jms.id.au>
9448-
R: Alistar Popple <alistair@popple.id.au>
9449-
R: Eddie James <eajames@linux.ibm.com>
9446+
M: Eddie James <eajames@linux.ibm.com>
9447+
R: Ninad Palsule <ninad@linux.ibm.com>
94509448
L: linux-fsi@lists.ozlabs.org
94519449
S: Supported
94529450
Q: http://patchwork.ozlabs.org/project/linux-fsi/list/
9453-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joel/fsi.git
94549451
F: drivers/fsi/
94559452
F: include/linux/fsi*.h
94569453
F: include/trace/events/fsi*.h

drivers/android/binderfs.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ static void binderfs_evict_inode(struct inode *inode)
274274
mutex_unlock(&binderfs_minors_mutex);
275275

276276
if (refcount_dec_and_test(&device->ref)) {
277+
hlist_del_init(&device->hlist);
277278
kfree(device->context.name);
278279
kfree(device);
279280
}

drivers/bus/mhi/host/pci_generic.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,8 +1095,9 @@ static void mhi_pci_recovery_work(struct work_struct *work)
10951095
err_unprepare:
10961096
mhi_unprepare_after_power_down(mhi_cntrl);
10971097
err_try_reset:
1098-
if (pci_reset_function(pdev))
1099-
dev_err(&pdev->dev, "Recovery failed\n");
1098+
err = pci_try_reset_function(pdev);
1099+
if (err)
1100+
dev_err(&pdev->dev, "Recovery failed: %d\n", err);
11001101
}
11011102

11021103
static void health_check(struct timer_list *t)

drivers/bus/simple-pm-bus.c

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,29 @@ static int simple_pm_bus_runtime_resume(struct device *dev)
109109
return 0;
110110
}
111111

112+
static int simple_pm_bus_suspend(struct device *dev)
113+
{
114+
struct simple_pm_bus *bus = dev_get_drvdata(dev);
115+
116+
if (!bus)
117+
return 0;
118+
119+
return pm_runtime_force_suspend(dev);
120+
}
121+
122+
static int simple_pm_bus_resume(struct device *dev)
123+
{
124+
struct simple_pm_bus *bus = dev_get_drvdata(dev);
125+
126+
if (!bus)
127+
return 0;
128+
129+
return pm_runtime_force_resume(dev);
130+
}
131+
112132
static const struct dev_pm_ops simple_pm_bus_pm_ops = {
113133
RUNTIME_PM_OPS(simple_pm_bus_runtime_suspend, simple_pm_bus_runtime_resume, NULL)
114-
NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
134+
NOIRQ_SYSTEM_SLEEP_PM_OPS(simple_pm_bus_suspend, simple_pm_bus_resume)
115135
};
116136

117137
#define ONLY_BUS ((void *) 1) /* Match if the device is only a bus. */

drivers/cdx/cdx.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,12 @@ static ssize_t driver_override_show(struct device *dev,
473473
struct device_attribute *attr, char *buf)
474474
{
475475
struct cdx_device *cdx_dev = to_cdx_device(dev);
476+
ssize_t len;
476477

477-
return sysfs_emit(buf, "%s\n", cdx_dev->driver_override);
478+
device_lock(dev);
479+
len = sysfs_emit(buf, "%s\n", cdx_dev->driver_override);
480+
device_unlock(dev);
481+
return len;
478482
}
479483
static DEVICE_ATTR_RW(driver_override);
480484

drivers/char/misc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ int misc_register(struct miscdevice *misc)
264264
device_create_with_groups(&misc_class, misc->parent, dev,
265265
misc, misc->groups, "%s", misc->name);
266266
if (IS_ERR(misc->this_device)) {
267+
misc_minor_free(misc->minor);
267268
if (is_dynamic) {
268-
misc_minor_free(misc->minor);
269269
misc->minor = MISC_DYNAMIC_MINOR;
270270
}
271271
err = PTR_ERR(misc->this_device);

drivers/hwtracing/intel_th/msu.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,23 +105,32 @@ struct msc_iter {
105105

106106
/**
107107
* struct msc - MSC device representation
108-
* @reg_base: register window base address
108+
* @reg_base: register window base address for the entire MSU
109+
* @msu_base: register window base address for this MSC
109110
* @thdev: intel_th_device pointer
110111
* @mbuf: MSU buffer, if assigned
111-
* @mbuf_priv MSU buffer's private data, if @mbuf
112+
* @mbuf_priv: MSU buffer's private data, if @mbuf
113+
* @work: a work to stop the trace when the buffer is full
112114
* @win_list: list of windows in multiblock mode
113115
* @single_sgt: single mode buffer
114116
* @cur_win: current window
117+
* @switch_on_unlock: window to switch to when it becomes available
115118
* @nr_pages: total number of pages allocated for this buffer
116119
* @single_sz: amount of data in single mode
117120
* @single_wrap: single mode wrap occurred
118121
* @base: buffer's base pointer
119122
* @base_addr: buffer's base address
123+
* @orig_addr: MSC0 buffer's base address
124+
* @orig_sz: MSC0 buffer's size
120125
* @user_count: number of users of the buffer
121126
* @mmap_count: number of mappings
122127
* @buf_mutex: mutex to serialize access to buffer-related bits
128+
* @iter_list: list of open file descriptor iterators
129+
* @stop_on_full: stop the trace if the current window is full
123130
* @enabled: MSC is enabled
124131
* @wrap: wrapping is enabled
132+
* @do_irq: IRQ resource is available, handle interrupts
133+
* @multi_is_broken: multiblock mode enabled (not disabled by PCI drvdata)
125134
* @mode: MSC operating mode
126135
* @burst_len: write burst length
127136
* @index: number of this MSC in the MSU

drivers/hwtracing/intel_th/pci.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,21 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
334334
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa824),
335335
.driver_data = (kernel_ulong_t)&intel_th_2x,
336336
},
337+
{
338+
/* Arrow Lake */
339+
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7724),
340+
.driver_data = (kernel_ulong_t)&intel_th_2x,
341+
},
342+
{
343+
/* Panther Lake-H */
344+
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe324),
345+
.driver_data = (kernel_ulong_t)&intel_th_2x,
346+
},
347+
{
348+
/* Panther Lake-P/U */
349+
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe424),
350+
.driver_data = (kernel_ulong_t)&intel_th_2x,
351+
},
337352
{
338353
/* Alder Lake CPU */
339354
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),

drivers/iio/adc/ad7192.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1084,7 +1084,7 @@ static int ad7192_update_scan_mode(struct iio_dev *indio_dev, const unsigned lon
10841084

10851085
conf &= ~AD7192_CONF_CHAN_MASK;
10861086
for_each_set_bit(i, scan_mask, 8)
1087-
conf |= FIELD_PREP(AD7192_CONF_CHAN_MASK, i);
1087+
conf |= FIELD_PREP(AD7192_CONF_CHAN_MASK, BIT(i));
10881088

10891089
ret = ad_sd_write_reg(&st->sd, AD7192_REG_CONF, 3, conf);
10901090
if (ret < 0)

0 commit comments

Comments
 (0)