Skip to content

Commit 9c7ef20

Browse files
committed
Merge tag 'char-misc-6.19-rc5' 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 char/misc driver fixes for some reported issues. Included in here is: - much reported rust_binder fix - counter driver fixes - new device ids for the mei driver All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-6.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: rust_binder: remove spin_lock() in rust_shrink_free_page() mei: me: add nova lake point S DID counter: 104-quad-8: Fix incorrect return value in IRQ handler counter: interrupt-cnt: Drop IRQF_NO_THREAD flag
2 parents 316a94c + 361e0ff commit 9c7ef20

5 files changed

Lines changed: 19 additions & 11 deletions

File tree

drivers/android/binder/page_range.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,8 +727,5 @@ unsafe extern "C" fn rust_shrink_free_page(
727727
drop(mm);
728728
drop(page);
729729

730-
// SAFETY: We just unlocked the lru lock, but it should be locked when we return.
731-
unsafe { bindings::spin_lock(&raw mut (*lru).lock) };
732-
733730
LRU_REMOVED_ENTRY
734731
}

drivers/counter/104-quad-8.c

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,6 +1192,7 @@ static irqreturn_t quad8_irq_handler(int irq, void *private)
11921192
{
11931193
struct counter_device *counter = private;
11941194
struct quad8 *const priv = counter_priv(counter);
1195+
struct device *dev = counter->parent;
11951196
unsigned int status;
11961197
unsigned long irq_status;
11971198
unsigned long channel;
@@ -1200,8 +1201,11 @@ static irqreturn_t quad8_irq_handler(int irq, void *private)
12001201
int ret;
12011202

12021203
ret = regmap_read(priv->map, QUAD8_INTERRUPT_STATUS, &status);
1203-
if (ret)
1204-
return ret;
1204+
if (ret) {
1205+
dev_WARN_ONCE(dev, true,
1206+
"Attempt to read Interrupt Status Register failed: %d\n", ret);
1207+
return IRQ_NONE;
1208+
}
12051209
if (!status)
12061210
return IRQ_NONE;
12071211

@@ -1223,17 +1227,21 @@ static irqreturn_t quad8_irq_handler(int irq, void *private)
12231227
break;
12241228
default:
12251229
/* should never reach this path */
1226-
WARN_ONCE(true, "invalid interrupt trigger function %u configured for channel %lu\n",
1227-
flg_pins, channel);
1230+
dev_WARN_ONCE(dev, true,
1231+
"invalid interrupt trigger function %u configured for channel %lu\n",
1232+
flg_pins, channel);
12281233
continue;
12291234
}
12301235

12311236
counter_push_event(counter, event, channel);
12321237
}
12331238

12341239
ret = regmap_write(priv->map, QUAD8_CHANNEL_OPERATION, CLEAR_PENDING_INTERRUPTS);
1235-
if (ret)
1236-
return ret;
1240+
if (ret) {
1241+
dev_WARN_ONCE(dev, true,
1242+
"Attempt to clear pending interrupts by writing to Channel Operation Register failed: %d\n", ret);
1243+
return IRQ_HANDLED;
1244+
}
12371245

12381246
return IRQ_HANDLED;
12391247
}

drivers/counter/interrupt-cnt.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,7 @@ static int interrupt_cnt_probe(struct platform_device *pdev)
229229

230230
irq_set_status_flags(priv->irq, IRQ_NOAUTOEN);
231231
ret = devm_request_irq(dev, priv->irq, interrupt_cnt_isr,
232-
IRQF_TRIGGER_RISING | IRQF_NO_THREAD,
233-
dev_name(dev), counter);
232+
IRQF_TRIGGER_RISING, dev_name(dev), counter);
234233
if (ret)
235234
return ret;
236235

drivers/misc/mei/hw-me-regs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@
122122

123123
#define MEI_DEV_ID_WCL_P 0x4D70 /* Wildcat Lake P */
124124

125+
#define MEI_DEV_ID_NVL_S 0x6E68 /* Nova Lake Point S */
126+
125127
/*
126128
* MEI HW Section
127129
*/

drivers/misc/mei/pci-me.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
129129

130130
{MEI_PCI_DEVICE(MEI_DEV_ID_WCL_P, MEI_ME_PCH15_CFG)},
131131

132+
{MEI_PCI_DEVICE(MEI_DEV_ID_NVL_S, MEI_ME_PCH15_CFG)},
133+
132134
/* required last entry */
133135
{0, }
134136
};

0 commit comments

Comments
 (0)