02 Jun, 2021

1 commit


22 Mar, 2021

1 commit


11 Mar, 2021

1 commit


26 Jan, 2021

2 commits

  • The driver core ignores the return value of the remove callback, so
    don't give isa drivers the chance to provide a value.

    Adapt all isa_drivers with a remove callbacks accordingly; they all
    return 0 unconditionally anyhow.

    Acked-by: Marc Kleine-Budde # for drivers/net/can/sja1000/tscan1.c
    Acked-by: William Breathitt Gray
    Acked-by: Wolfram Sang # for drivers/i2c/
    Reviewed-by: Takashi Iway # for sound/
    Reviewed-by: Hans Verkuil # for drivers/media/
    Signed-off-by: Uwe Kleine-König
    Link: https://lore.kernel.org/r/20210122092449.426097-4-uwe@kleine-koenig.org
    Signed-off-by: Takashi Iwai

    Uwe Kleine-König
     
  • Instead of an unconditional return 0, return no value. One of the two
    callers ignored the return value already before.

    This simplifies the next patch.

    Signed-off-by: Uwe Kleine-König
    Reviewed-by: Hans Verkuil
    Link: https://lore.kernel.org/r/20210122092449.426097-3-uwe@kleine-koenig.org
    Signed-off-by: Takashi Iwai

    Uwe Kleine-König
     

03 Dec, 2020

1 commit


16 Nov, 2020

1 commit


07 Sep, 2020

1 commit

  • Linux 5.9-rc4

    * tag 'v5.9-rc4': (1001 commits)
    Linux 5.9-rc4
    io_uring: fix linked deferred ->files cancellation
    io_uring: fix cancel of deferred reqs with ->files
    include/linux/log2.h: add missing () around n in roundup_pow_of_two()
    mm/khugepaged.c: fix khugepaged's request size in collapse_file
    mm/hugetlb: fix a race between hugetlb sysctl handlers
    mm/hugetlb: try preferred node first when alloc gigantic page from cma
    mm/migrate: preserve soft dirty in remove_migration_pte()
    mm/migrate: remove unnecessary is_zone_device_page() check
    mm/rmap: fixup copying of soft dirty and uffd ptes
    mm/migrate: fixup setting UFFD_WP flag
    mm: madvise: fix vma user-after-free
    checkpatch: fix the usage of capture group ( ... )
    fork: adjust sysctl_max_threads definition to match prototype
    ipc: adjust proc_ipc_sem_dointvec definition to match prototype
    mm: track page table modifications in __apply_to_page_range()
    MAINTAINERS: IA64: mark Status as Odd Fixes only
    MAINTAINERS: add LLVM maintainers
    MAINTAINERS: update Cavium/Marvell entries
    mm: slub: fix conversion of freelist_corrupted()
    ...

    Mauro Carvalho Chehab
     

03 Sep, 2020

1 commit


01 Sep, 2020

1 commit


29 Aug, 2020

2 commits

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva
    Acked-by: Sakari Ailus
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Gustavo A. R. Silva
     
  • In preparation for unconditionally passing the
    struct tasklet_struct pointer to all tasklet
    callbacks, switch to using the new tasklet_setup()
    and from_tasklet() to pass the tasklet pointer explicitly.

    Signed-off-by: Romain Perier
    Signed-off-by: Allen Pais
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Allen Pais
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

06 Aug, 2020

1 commit


16 Apr, 2020

1 commit


14 Apr, 2020

3 commits

  • Those documents don't really describe the driver API.

    Instead, they contain development-specific information.

    Yet, as the main index file describes the content of it as:

    "how specific kernel subsystems work
    from the point of view of a kernel developer"

    It seems to be the better fit.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Most of the driver-specific documentation is meant to help
    users of the media subsystem.

    Move them to the admin-guide.

    It should be noticed, however, that several of those files
    are outdated and will require further work in order to make
    them useful again.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Since 2017, there is an space reserved for userspace API,
    created by changeset 1d596dee3862 ("docs: Create a user-space API guide").

    As the media subsystem was one of the first subsystems to use
    Sphinx, until this patch, we were keeping things on a separate
    place.

    Let's just use the new location, as having all uAPI altogether
    will likely make things easier for developers.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

24 Feb, 2020

1 commit

  • Adjust indentation from spaces to tab (+optional two spaces) as in
    coding style with command like:
    $ sed -e 's/^ /\t/' -i */Kconfig

    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Krzysztof Kozlowski
     

10 Nov, 2019

1 commit


05 Nov, 2019

1 commit

  • If a process is interrupted while accessing the radio device and the
    core lock is contended, release() could return early and fail to update
    the interrupt mask.

    Note that the return value of the v4l2 release file operation is
    ignored.

    Fixes: 87d1a50ce451 ("[media] V4L2: WL1273 FM Radio: TI WL1273 FM radio driver")
    Cc: stable # 2.6.38
    Cc: Matti Aaltonen
    Signed-off-by: Johan Hovold
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Johan Hovold
     

27 Aug, 2019

3 commits

  • On 32-bits archs, a signed integer has 31 bits plus on extra
    bit for signal. Due to that, touching the 32th bit with something
    like:

    int bar = 1 << 31;

    has an undefined behavior in C on 32 bit architectures, as it
    touches the signal bit. This is warned by cppcheck.

    Instead, force the numbers to be unsigned, in order to solve this
    issue.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • As warned by cppcheck:

    [drivers/media/dvb-frontends/cx24123.c:434]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
    [drivers/media/pci/bt8xx/bttv-input.c:87]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
    [drivers/media/pci/bt8xx/bttv-input.c:98]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
    ...
    [drivers/media/v4l2-core/v4l2-ioctl.c:1391]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour

    There are lots of places where we're doing 1 << 31. That's bad,
    as, depending on the architecture, this has an undefined behavior.

    The BIT() macro is already prepared to handle this, so, let's
    just switch all "1 << number" macros by BIT(number) at the header files
    with has 1 << 31.

    Reviewed-by: Sylwester Nawrocki # exynos4-is and s3c-camif
    Reviewed-by: Laurent Pinchart # omap3isp, vsp1, xilinx, wl128x and ipu3
    Reviewed-by: Benoit Parrot # am437x and ti-vpe
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • It doesn't make any sense to have gcc's stdarg.h included
    inside the Linux Kernel.

    Get rid of those includes.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

19 Aug, 2019

1 commit

  • In the probe() function radio->int_in_urb was not killed if an
    error occurred in the probe sequence. It was also missing in
    the disconnect.

    This caused this syzbot issue:

    https://syzkaller.appspot.com/bug?extid=2d4fc2a0c45ad8da7e99

    Reported-and-tested-by: syzbot+2d4fc2a0c45ad8da7e99@syzkaller.appspotmail.com

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

13 Aug, 2019

2 commits

  • The I2C core framework provides a simplified probe framework from commit
    b8a1a4cd5a98 ("i2c: Provide a temporary .probe_new() call-back type").

    This driver does not utilise the i2c_device_id table in the probe, so we can
    easily convert it to utilise the simplified i2c driver registration.

    Signed-off-by: Kieran Bingham
    Reviewed-by: Wolfram Sang
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Kieran Bingham
     
  • The I2C core framework provides a simplified probe framework from commit
    b8a1a4cd5a98 ("i2c: Provide a temporary .probe_new() call-back type").

    This driver does not utilise the i2c_device_id table in the probe, so we can
    easily convert it to utilise the simplified i2c driver registration.

    Signed-off-by: Kieran Bingham
    Reviewed-by: Wolfram Sang
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Kieran Bingham
     

27 Jun, 2019

1 commit

  • Change devm_k*alloc to k*alloc to manually allocate memory

    The manual allocation and freeing of memory is necessary because when
    the USB radio is disconnected, the memory associated with devm_k*alloc
    is freed. Meaning if we still have unresolved references to the radio
    device, then we get use-after-free errors.

    This patch fixes this by manually allocating memory, and freeing it in
    the v4l2.release callback that gets called when the last radio device
    exits.

    Reported-and-tested-by: syzbot+a4387f5b6b799f6becbf@syzkaller.appspotmail.com

    Signed-off-by: Luke Nowakowski-Krijger
    Signed-off-by: Hans Verkuil
    [hverkuil-cisco@xs4all.nl: cleaned up two small checkpatch.pl warnings]
    [hverkuil-cisco@xs4all.nl: prefix subject with driver name]
    Signed-off-by: Mauro Carvalho Chehab

    Luke Nowakowski-Krijger
     

12 Jun, 2019

1 commit

  • There are some conflicts due to SPDX changes. We also have more
    patches being merged via media tree touching them.

    So, let's merge back from upstream and address those.

    Linux 5.2-rc4

    * tag 'v5.2-rc4': (767 commits)
    Linux 5.2-rc4
    MAINTAINERS: Karthikeyan Ramasubramanian is MIA
    i2c: xiic: Add max_read_len quirk
    lockref: Limit number of cmpxchg loop retries
    uaccess: add noop untagged_addr definition
    x86/insn-eval: Fix use-after-free access to LDT entry
    kbuild: use more portable 'command -v' for cc-cross-prefix
    s390/unwind: correct stack switching during unwind
    block, bfq: add weight symlink to the bfq.weight cgroup parameter
    cgroup: let a symlink too be created with a cftype file
    drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards
    drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW
    drm/nouveau/secboot: split out FW version-specific LS function pointers
    drm/nouveau/secboot: pass max supported FW version to LS load funcs
    drm/nouveau/core: support versioned firmware loading
    drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device
    block: free sched's request pool in blk_cleanup_queue
    pktgen: do not sleep with the thread lock held.
    net: mvpp2: Use strscpy to handle stat strings
    net: rds: fix memory leak in rds_ib_flush_mr_pool
    ...

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

05 Jun, 2019

2 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation version 2 of the license this program
    is distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 100 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141900.918357685@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Instead of filling in the struct v4l2_capability device_caps
    field, fill in the struct video_device device_caps field.

    That way the V4L2 core knows what the capabilities of the
    video device are.

    But this only really works if all drivers use this, so convert
    all radio drivers in this patch.

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     

03 Jun, 2019

1 commit

  • X-Originating-IP: [10.175.113.25]
    X-CFilter-Loop: Reflected
    The fm_v4l2_init_video_device() forget to unregister v4l2/video device
    in the error path, it could lead to UAF issue, eg,

    BUG: KASAN: use-after-free in atomic64_read include/asm-generic/atomic-instrumented.h:836 [inline]
    BUG: KASAN: use-after-free in atomic_long_read include/asm-generic/atomic-long.h:28 [inline]
    BUG: KASAN: use-after-free in __mutex_unlock_slowpath+0x92/0x690 kernel/locking/mutex.c:1206
    Read of size 8 at addr ffff8881e84a7c70 by task v4l_id/3659

    CPU: 1 PID: 3659 Comm: v4l_id Not tainted 5.1.0 #8
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Call Trace:
    __dump_stack lib/dump_stack.c:77 [inline]
    dump_stack+0xa9/0x10e lib/dump_stack.c:113
    print_address_description+0x65/0x270 mm/kasan/report.c:187
    kasan_report+0x149/0x18d mm/kasan/report.c:317
    atomic64_read include/asm-generic/atomic-instrumented.h:836 [inline]
    atomic_long_read include/asm-generic/atomic-long.h:28 [inline]
    __mutex_unlock_slowpath+0x92/0x690 kernel/locking/mutex.c:1206
    fm_v4l2_fops_open+0xac/0x120 [fm_drv]
    v4l2_open+0x191/0x390 [videodev]
    chrdev_open+0x20d/0x570 fs/char_dev.c:417
    do_dentry_open+0x700/0xf30 fs/open.c:777
    do_last fs/namei.c:3416 [inline]
    path_openat+0x7c4/0x2a90 fs/namei.c:3532
    do_filp_open+0x1a5/0x2b0 fs/namei.c:3563
    do_sys_open+0x302/0x490 fs/open.c:1069
    do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7f8180c17c8e
    ...
    Allocated by task 3642:
    set_track mm/kasan/common.c:87 [inline]
    __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:497
    fm_drv_init+0x13/0x1000 [fm_drv]
    do_one_initcall+0xbc/0x47d init/main.c:901
    do_init_module+0x1b5/0x547 kernel/module.c:3456
    load_module+0x6405/0x8c10 kernel/module.c:3804
    __do_sys_finit_module+0x162/0x190 kernel/module.c:3898
    do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Freed by task 3642:
    set_track mm/kasan/common.c:87 [inline]
    __kasan_slab_free+0x130/0x180 mm/kasan/common.c:459
    slab_free_hook mm/slub.c:1429 [inline]
    slab_free_freelist_hook mm/slub.c:1456 [inline]
    slab_free mm/slub.c:3003 [inline]
    kfree+0xe1/0x270 mm/slub.c:3958
    fm_drv_init+0x1e6/0x1000 [fm_drv]
    do_one_initcall+0xbc/0x47d init/main.c:901
    do_init_module+0x1b5/0x547 kernel/module.c:3456
    load_module+0x6405/0x8c10 kernel/module.c:3804
    __do_sys_finit_module+0x162/0x190 kernel/module.c:3898
    do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Add relevant unregister functions to fix it.

    Cc: Hans Verkuil
    Reported-by: Hulk Robot
    Signed-off-by: Kefeng Wang
    Signed-off-by: Mauro Carvalho Chehab

    Kefeng Wang
     

31 May, 2019

2 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 655 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

28 May, 2019

1 commit

  • Merge back from upstream into media tree, as there are some
    patches merged upstream that has pontential of causing
    conflicts (one actually rised a conflict already).

    Linux 5.2-rc2

    * tag 'v5.2-rc2': (377 commits)
    Linux 5.2-rc2
    random: fix soft lockup when trying to read from an uninitialized blocking pool
    tracing: Silence GCC 9 array bounds warning
    ext4: fix dcache lookup of !casefolded directories
    locking/lock_events: Use this_cpu_add() when necessary
    KVM: x86: fix return value for reserved EFER
    tools/kvm_stat: fix fields filter for child events
    KVM: selftests: Wrap vcpu_nested_state_get/set functions with x86 guard
    kvm: selftests: aarch64: compile with warnings on
    kvm: selftests: aarch64: fix default vm mode
    kvm: selftests: aarch64: dirty_log_test: fix unaligned memslot size
    KVM: s390: fix memory slot handling for KVM_SET_USER_MEMORY_REGION
    KVM: x86/pmu: do not mask the value that is written to fixed PMUs
    KVM: x86/pmu: mask the result of rdpmc according to the width of the counters
    x86/kvm/pmu: Set AMD's virt PMU version to 1
    KVM: x86: do not spam dmesg with VMCS/VMCB dumps
    kvm: Check irqchip mode before assign irqfd
    kvm: svm/avic: fix off-by-one in checking host APIC ID
    KVM: selftests: do not blindly clobber registers in guest asm
    KVM: selftests: Remove duplicated TEST_ASSERT in hyperv_cpuid.c
    ...

    Mauro Carvalho Chehab
     

24 May, 2019

1 commit

  • 'default n' is the default value for any bool or tristate Kconfig
    setting so there is no need to write it explicitly.

    Also since commit f467c5640c29 ("kconfig: only write '# CONFIG_FOO
    is not set' for visible symbols") the Kconfig behavior is the same
    regardless of 'default n' being present or not:

    ...
    One side effect of (and the main motivation for) this change is making
    the following two definitions behave exactly the same:

    config FOO
    bool

    config FOO
    bool
    default n

    With this change, neither of these will generate a
    '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied).
    That might make it clearer to people that a bare 'default n' is
    redundant.
    ...

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Mauro Carvalho Chehab

    Bartlomiej Zolnierkiewicz
     

21 May, 2019

2 commits


18 May, 2019

1 commit


29 Mar, 2019

1 commit