* [linux-next:master 11135/15099] drivers/char/sonypi.c:766 input_keyrelease() error: calling 'spin_unlock_irqrestore()' with bogus flags
@ 2026-06-25 5:03 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-06-25 5:03 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 4e5dfb7c84012007c3c7061126491bbc92d71bf1
commit: e07d10ed0f238d3f4a8276932a36fe1f74775621 [11135/15099] lib/Kconfig.debug: enable CONFIG_PREEMPT_RT for syzbot kernels.
:::::: branch date: 2 days ago
:::::: commit date: 2 weeks ago
config: i386-randconfig-r073-20260624 (https://download.01.org/0day-ci/archive/20260625/202606251222.MpiSOBwu-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
smatch: v0.5.0-9185-gbcc58b9c
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202606251222.MpiSOBwu-lkp@intel.com/
New smatch warnings:
drivers/char/sonypi.c:766 input_keyrelease() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/sonypi.c:915 sonypi_misc_read() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/misc/hpilo.c:605 ilo_open() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virt/vboxguest/vboxguest_core.c:798 vbg_acquire_session_capabilities() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virt/vboxguest/vboxguest_core.c:1246 vbg_ioctl_wait_for_events() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/hte/hte.c:221 hte_ts_put() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/hte/hte.c:301 hte_ts_dis_en_common() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:378 qcom_glink_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:519 qcom_glink_send_open_req() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:592 qcom_glink_rx_done_work() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:1508 __qcom_glink_send() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:1705 qcom_glink_rx_open() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/rc/serial_ir.c:667 serial_ir_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/rc/ite-cir.c:449 ite_tx_ir() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_rtc_driver.c:253 viortc_do_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/pci/ivtv/ivtv-queue.c:129 ivtv_queue_move() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c:749 amdgpu_ring_set_fence_errors_and_reemit() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/hid/hid-nintendo.c:844 joycon_enforce_subcmd_rate() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:285 amdgpu_display_crtc_page_flip_target() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/platform/x86/intel_ips.c:666 mch_exceeded() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/i2c/busses/i2c-elektor.c:116 pcf_isa_waitforpin() error: calling 'spin_unlock_irqrestore()' with bogus flags
mm/slub.c:3835 get_from_partial_node() error: calling 'spin_unlock_irqrestore()' with bogus flags
mm/slub.c:4392 alloc_from_new_slab() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pc236_common.c:53 pc236_intr_check() error: calling 'spin_unlock_irqrestore()' with bogus flags
lib/test_context-analysis.c:110 test_spinlock() error: calling 'spin_unlock_irqrestore()' with bogus flags
lib/test_context-analysis.c:127 test_spinlock_trylock_extra() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3603 gfx_v9_4_3_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:9562 gfx_v10_0_reset_kgq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:9632 gfx_v10_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c:7318 gfx_v9_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
Old smatch warnings:
drivers/rpmsg/qcom_glink_native.c:393 qcom_glink_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:504 qcom_glink_send_open_req() error: strcpy() 'channel->name' too large for 'req->data' (1010102 vs 32)
drivers/media/rc/ite-cir.c:469 ite_tx_ir() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_rtc_driver.c:259 viortc_do_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/pci/ivtv/ivtv-queue.c:169 ivtv_queue_move() error: calling 'spin_unlock_irqrestore()' with bogus flags
lib/test_context-analysis.c:103 test_raw_spinlock_trylock_extra() warn: mixing irq and irqsave
include/linux/spinlock.h:541 class_raw_spinlock_try_constructor() warn: passing zero to 'ERR_PTR'
lib/test_context-analysis.c:127 test_spinlock_trylock_extra() warn: mixing irq and irqsave
include/linux/spinlock.h:593 class_spinlock_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/mutex.h:254 class_mutex_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/rwsem.h:260 class_rwsem_read_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/rwsem.h:271 class_rwsem_write_try_constructor() warn: passing zero to 'ERR_PTR'
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:2201 gfx_v9_4_3_xcc_kcq_fini_register() error: buffer overflow 'adev->gfx.compute_ring' 64 <= u32max
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:2231 gfx_v9_4_3_xcc_kcq_resume() error: buffer overflow 'adev->gfx.compute_ring' 64 <= u32max
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3307 gfx_v9_4_3_eop_irq() error: buffer overflow 'adev->gfx.compute_ring' 64 <= u32max
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3343 gfx_v9_4_3_fault() error: buffer overflow 'adev->gfx.compute_ring' 64 <= u32max
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3609 gfx_v9_4_3_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:4800 gfx_v9_4_3_set_ring_funcs() error: buffer overflow 'adev->gfx.compute_ring' 64 <= u32max
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:4292 gfx_v10_0_init_microcode() warn: 'adev->gfx.rlc_fw' from request_firmware() not released on lines: 4292.
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c:7324 gfx_v9_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
vim +766 drivers/char/sonypi.c
^1da177e4c3f415 Linus Torvalds 2005-04-16 761
c4028958b6ecad0 David Howells 2006-11-22 762 static void input_keyrelease(struct work_struct *work)
^1da177e4c3f415 Linus Torvalds 2005-04-16 763 {
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 764 struct sonypi_keypress kp;
^1da177e4c3f415 Linus Torvalds 2005-04-16 765
7acd72eb85f1c7a Stefani Seibold 2009-12-21 @766 while (kfifo_out_locked(&sonypi_device.input_fifo, (unsigned char *)&kp,
c1e13f25674ed56 Stefani Seibold 2009-12-21 767 sizeof(kp), &sonypi_device.input_fifo_lock)
c1e13f25674ed56 Stefani Seibold 2009-12-21 768 == sizeof(kp)) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 769 msleep(10);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 770 input_report_key(kp.dev, kp.key, 0);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 771 input_sync(kp.dev);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 772 }
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 773 }
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 774
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 775 static void sonypi_report_input_event(u8 event)
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 776 {
b416f2e452b6c0f Dmitry Torokhov 2005-09-15 777 struct input_dev *jog_dev = sonypi_device.input_jog_dev;
b416f2e452b6c0f Dmitry Torokhov 2005-09-15 778 struct input_dev *key_dev = sonypi_device.input_key_dev;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 779 struct sonypi_keypress kp = { NULL };
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 780 int i;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 781
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 782 switch (event) {
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 783 case SONYPI_EVENT_JOGDIAL_UP:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 784 case SONYPI_EVENT_JOGDIAL_UP_PRESSED:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 785 input_report_rel(jog_dev, REL_WHEEL, 1);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 786 input_sync(jog_dev);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 787 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 788
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 789 case SONYPI_EVENT_JOGDIAL_DOWN:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 790 case SONYPI_EVENT_JOGDIAL_DOWN_PRESSED:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 791 input_report_rel(jog_dev, REL_WHEEL, -1);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 792 input_sync(jog_dev);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 793 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 794
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 795 case SONYPI_EVENT_JOGDIAL_PRESSED:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 796 kp.key = BTN_MIDDLE;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 797 kp.dev = jog_dev;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 798 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 799
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 800 case SONYPI_EVENT_FNKEY_RELEASED:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 801 /* Nothing, not all VAIOs generate this event */
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 802 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 803
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 804 default:
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 805 for (i = 0; sonypi_inputkeys[i].sonypiev; i++)
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 806 if (event == sonypi_inputkeys[i].sonypiev) {
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 807 kp.dev = key_dev;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 808 kp.key = sonypi_inputkeys[i].inputev;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 809 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 810 }
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 811 break;
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 812 }
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 813
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 814 if (kp.dev) {
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 815 input_report_key(kp.dev, kp.key, 1);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 816 input_sync(kp.dev);
7acd72eb85f1c7a Stefani Seibold 2009-12-21 817 kfifo_in_locked(&sonypi_device.input_fifo,
c1e13f25674ed56 Stefani Seibold 2009-12-21 818 (unsigned char *)&kp, sizeof(kp),
c1e13f25674ed56 Stefani Seibold 2009-12-21 819 &sonypi_device.input_fifo_lock);
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 820 schedule_work(&sonypi_device.input_work);
^1da177e4c3f415 Linus Torvalds 2005-04-16 821 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 822 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 823
^1da177e4c3f415 Linus Torvalds 2005-04-16 824 /* Interrupt handler: some event is available */
7d12e780e003f93 David Howells 2006-10-05 825 static irqreturn_t sonypi_irq(int irq, void *dev_id)
^1da177e4c3f415 Linus Torvalds 2005-04-16 826 {
^1da177e4c3f415 Linus Torvalds 2005-04-16 827 u8 v1, v2, event = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 828 int i, j;
^1da177e4c3f415 Linus Torvalds 2005-04-16 829
^1da177e4c3f415 Linus Torvalds 2005-04-16 830 v1 = inb_p(sonypi_device.ioport1);
^1da177e4c3f415 Linus Torvalds 2005-04-16 831 v2 = inb_p(sonypi_device.ioport1 + sonypi_device.evtype_offset);
^1da177e4c3f415 Linus Torvalds 2005-04-16 832
^1da177e4c3f415 Linus Torvalds 2005-04-16 833 for (i = 0; sonypi_eventtypes[i].model; i++) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 834 if (sonypi_device.model != sonypi_eventtypes[i].model)
^1da177e4c3f415 Linus Torvalds 2005-04-16 835 continue;
^1da177e4c3f415 Linus Torvalds 2005-04-16 836 if ((v2 & sonypi_eventtypes[i].data) !=
^1da177e4c3f415 Linus Torvalds 2005-04-16 837 sonypi_eventtypes[i].data)
^1da177e4c3f415 Linus Torvalds 2005-04-16 838 continue;
^1da177e4c3f415 Linus Torvalds 2005-04-16 839 if (!(mask & sonypi_eventtypes[i].mask))
^1da177e4c3f415 Linus Torvalds 2005-04-16 840 continue;
^1da177e4c3f415 Linus Torvalds 2005-04-16 841 for (j = 0; sonypi_eventtypes[i].events[j].event; j++) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 842 if (v1 == sonypi_eventtypes[i].events[j].data) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 843 event = sonypi_eventtypes[i].events[j].event;
^1da177e4c3f415 Linus Torvalds 2005-04-16 844 goto found;
^1da177e4c3f415 Linus Torvalds 2005-04-16 845 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 846 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 847 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 848
^1da177e4c3f415 Linus Torvalds 2005-04-16 849 if (verbose)
^1da177e4c3f415 Linus Torvalds 2005-04-16 850 printk(KERN_WARNING
^1da177e4c3f415 Linus Torvalds 2005-04-16 851 "sonypi: unknown event port1=0x%02x,port2=0x%02x\n",
^1da177e4c3f415 Linus Torvalds 2005-04-16 852 v1, v2);
^1da177e4c3f415 Linus Torvalds 2005-04-16 853 /* We need to return IRQ_HANDLED here because there *are*
^1da177e4c3f415 Linus Torvalds 2005-04-16 854 * events belonging to the sonypi device we don't know about,
^1da177e4c3f415 Linus Torvalds 2005-04-16 855 * but we still don't want those to pollute the logs... */
^1da177e4c3f415 Linus Torvalds 2005-04-16 856 return IRQ_HANDLED;
^1da177e4c3f415 Linus Torvalds 2005-04-16 857
^1da177e4c3f415 Linus Torvalds 2005-04-16 858 found:
^1da177e4c3f415 Linus Torvalds 2005-04-16 859 if (verbose > 1)
^1da177e4c3f415 Linus Torvalds 2005-04-16 860 printk(KERN_INFO
^1da177e4c3f415 Linus Torvalds 2005-04-16 861 "sonypi: event port1=0x%02x,port2=0x%02x\n", v1, v2);
^1da177e4c3f415 Linus Torvalds 2005-04-16 862
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 863 if (useinput)
fb2ce3c005ede30 Dmitry Torokhov 2005-06-30 864 sonypi_report_input_event(event);
^1da177e4c3f415 Linus Torvalds 2005-04-16 865
7acd72eb85f1c7a Stefani Seibold 2009-12-21 866 kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event,
c1e13f25674ed56 Stefani Seibold 2009-12-21 867 sizeof(event), &sonypi_device.fifo_lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 868 kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN);
^1da177e4c3f415 Linus Torvalds 2005-04-16 869 wake_up_interruptible(&sonypi_device.fifo_proc_list);
^1da177e4c3f415 Linus Torvalds 2005-04-16 870
^1da177e4c3f415 Linus Torvalds 2005-04-16 871 return IRQ_HANDLED;
^1da177e4c3f415 Linus Torvalds 2005-04-16 872 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 873
^1da177e4c3f415 Linus Torvalds 2005-04-16 874 static int sonypi_misc_fasync(int fd, struct file *filp, int on)
^1da177e4c3f415 Linus Torvalds 2005-04-16 875 {
60aa49243d09afc Jonathan Corbet 2009-02-01 876 return fasync_helper(fd, filp, on, &sonypi_device.fifo_async);
^1da177e4c3f415 Linus Torvalds 2005-04-16 877 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 878
^1da177e4c3f415 Linus Torvalds 2005-04-16 879 static int sonypi_misc_release(struct inode *inode, struct file *file)
^1da177e4c3f415 Linus Torvalds 2005-04-16 880 {
c6c60106b9584f1 Matthias Kaehlcke 2007-04-24 881 mutex_lock(&sonypi_device.lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 882 sonypi_device.open_count--;
c6c60106b9584f1 Matthias Kaehlcke 2007-04-24 883 mutex_unlock(&sonypi_device.lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 884 return 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 885 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 886
^1da177e4c3f415 Linus Torvalds 2005-04-16 887 static int sonypi_misc_open(struct inode *inode, struct file *file)
^1da177e4c3f415 Linus Torvalds 2005-04-16 888 {
c6c60106b9584f1 Matthias Kaehlcke 2007-04-24 889 mutex_lock(&sonypi_device.lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 890 /* Flush input queue on first open */
^1da177e4c3f415 Linus Torvalds 2005-04-16 891 if (!sonypi_device.open_count)
45465487897a1c6 Stefani Seibold 2009-12-21 892 kfifo_reset(&sonypi_device.fifo);
^1da177e4c3f415 Linus Torvalds 2005-04-16 893 sonypi_device.open_count++;
c6c60106b9584f1 Matthias Kaehlcke 2007-04-24 894 mutex_unlock(&sonypi_device.lock);
6432e734c99ed68 John Kacur 2009-10-18 895
^1da177e4c3f415 Linus Torvalds 2005-04-16 896 return 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 897 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 898
^1da177e4c3f415 Linus Torvalds 2005-04-16 899 static ssize_t sonypi_misc_read(struct file *file, char __user *buf,
^1da177e4c3f415 Linus Torvalds 2005-04-16 900 size_t count, loff_t *pos)
^1da177e4c3f415 Linus Torvalds 2005-04-16 901 {
^1da177e4c3f415 Linus Torvalds 2005-04-16 902 ssize_t ret;
^1da177e4c3f415 Linus Torvalds 2005-04-16 903 unsigned char c;
^1da177e4c3f415 Linus Torvalds 2005-04-16 904
45465487897a1c6 Stefani Seibold 2009-12-21 905 if ((kfifo_len(&sonypi_device.fifo) == 0) &&
^1da177e4c3f415 Linus Torvalds 2005-04-16 906 (file->f_flags & O_NONBLOCK))
^1da177e4c3f415 Linus Torvalds 2005-04-16 907 return -EAGAIN;
^1da177e4c3f415 Linus Torvalds 2005-04-16 908
^1da177e4c3f415 Linus Torvalds 2005-04-16 909 ret = wait_event_interruptible(sonypi_device.fifo_proc_list,
45465487897a1c6 Stefani Seibold 2009-12-21 910 kfifo_len(&sonypi_device.fifo) != 0);
^1da177e4c3f415 Linus Torvalds 2005-04-16 911 if (ret)
^1da177e4c3f415 Linus Torvalds 2005-04-16 912 return ret;
^1da177e4c3f415 Linus Torvalds 2005-04-16 913
^1da177e4c3f415 Linus Torvalds 2005-04-16 914 while (ret < count &&
7acd72eb85f1c7a Stefani Seibold 2009-12-21 @915 (kfifo_out_locked(&sonypi_device.fifo, &c, sizeof(c),
c1e13f25674ed56 Stefani Seibold 2009-12-21 916 &sonypi_device.fifo_lock) == sizeof(c))) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 917 if (put_user(c, buf++))
^1da177e4c3f415 Linus Torvalds 2005-04-16 918 return -EFAULT;
^1da177e4c3f415 Linus Torvalds 2005-04-16 919 ret++;
^1da177e4c3f415 Linus Torvalds 2005-04-16 920 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 921
^1da177e4c3f415 Linus Torvalds 2005-04-16 922 if (ret > 0) {
496ad9aa8ef4480 Al Viro 2013-01-23 923 struct inode *inode = file_inode(file);
19f926a688f99a4 Jeff Layton 2023-10-04 924 inode_set_atime_to_ts(inode, current_time(inode));
^1da177e4c3f415 Linus Torvalds 2005-04-16 925 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 926
^1da177e4c3f415 Linus Torvalds 2005-04-16 927 return ret;
^1da177e4c3f415 Linus Torvalds 2005-04-16 928 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 929
:::::: The code at line 766 was first introduced by commit
:::::: 7acd72eb85f1c7a15e8b5eb554994949241737f1 kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out...
:::::: TO: Stefani Seibold <stefani@seibold.net>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-25 5:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-25 5:03 [linux-next:master 11135/15099] drivers/char/sonypi.c:766 input_keyrelease() error: calling 'spin_unlock_irqrestore()' with bogus flags kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.