04 Oct, 2018

1 commit

  • [ Upstream commit 11b71782c1d10d9bccc31825cf84291cd7588a1e ]

    hwarc_probe() allocates memory for hwarc, but does not free it
    if uwb_rc_add() or hwarc_get_version() fail.

    Found by Linux Driver Verification project (linuxtesting.org).

    Signed-off-by: Anton Vasilyev
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Anton Vasilyev
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

18 Sep, 2017

2 commits

  • uwbd_start() calls kthread_run() and checks that the return value is
    not NULL. But the return value is not NULL in case kthread_run() fails,
    it takes the form of ERR_PTR(-EINTR).

    Use IS_ERR() instead.

    Also add a check to uwbd_stop().

    Signed-off-by: Andrey Konovalov
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Andrey Konovalov
     
  • hwarc_neep_init() assumes that endpoint 0 is interrupt, but there's no
    check for that, which results in a WARNING in USB core code, when a bad
    USB descriptor is provided from a device:

    usb 1-1: BOGUS urb xfer, pipe 1 != type 3
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 3 at drivers/usb/core/urb.c:449 usb_submit_urb+0xf8a/0x11d0
    Modules linked in:
    CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.13.0+ #111
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Workqueue: usb_hub_wq hub_event
    task: ffff88006bdc1a00 task.stack: ffff88006bde8000
    RIP: 0010:usb_submit_urb+0xf8a/0x11d0 drivers/usb/core/urb.c:448
    RSP: 0018:ffff88006bdee3c0 EFLAGS: 00010282
    RAX: 0000000000000029 RBX: ffff8800672a7200 RCX: 0000000000000000
    RDX: 0000000000000029 RSI: ffff88006c815c78 RDI: ffffed000d7bdc6a
    RBP: ffff88006bdee4c0 R08: fffffbfff0fe00ff R09: fffffbfff0fe00ff
    R10: 0000000000000018 R11: fffffbfff0fe00fe R12: 1ffff1000d7bdc7f
    R13: 0000000000000003 R14: 0000000000000001 R15: ffff88006b02cc90
    FS: 0000000000000000(0000) GS:ffff88006c800000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fe4daddf000 CR3: 000000006add6000 CR4: 00000000000006f0
    Call Trace:
    hwarc_neep_init+0x4ce/0x9c0 drivers/uwb/hwa-rc.c:710
    uwb_rc_add+0x2fb/0x730 drivers/uwb/lc-rc.c:361
    hwarc_probe+0x34e/0x9b0 drivers/uwb/hwa-rc.c:858
    usb_probe_interface+0x351/0x8d0 drivers/usb/core/driver.c:361
    really_probe drivers/base/dd.c:385
    driver_probe_device+0x610/0xa00 drivers/base/dd.c:529
    __device_attach_driver+0x230/0x290 drivers/base/dd.c:625
    bus_for_each_drv+0x15e/0x210 drivers/base/bus.c:463
    __device_attach+0x269/0x3c0 drivers/base/dd.c:682
    device_initial_probe+0x1f/0x30 drivers/base/dd.c:729
    bus_probe_device+0x1da/0x280 drivers/base/bus.c:523
    device_add+0xcf9/0x1640 drivers/base/core.c:1703
    usb_set_configuration+0x1064/0x1890 drivers/usb/core/message.c:1932
    generic_probe+0x73/0xe0 drivers/usb/core/generic.c:174
    usb_probe_device+0xaf/0xe0 drivers/usb/core/driver.c:266
    really_probe drivers/base/dd.c:385
    driver_probe_device+0x610/0xa00 drivers/base/dd.c:529
    __device_attach_driver+0x230/0x290 drivers/base/dd.c:625
    bus_for_each_drv+0x15e/0x210 drivers/base/bus.c:463
    __device_attach+0x269/0x3c0 drivers/base/dd.c:682
    device_initial_probe+0x1f/0x30 drivers/base/dd.c:729
    bus_probe_device+0x1da/0x280 drivers/base/bus.c:523
    device_add+0xcf9/0x1640 drivers/base/core.c:1703
    usb_new_device+0x7b8/0x1020 drivers/usb/core/hub.c:2457
    hub_port_connect drivers/usb/core/hub.c:4890
    hub_port_connect_change drivers/usb/core/hub.c:4996
    port_event drivers/usb/core/hub.c:5102
    hub_event+0x23c8/0x37c0 drivers/usb/core/hub.c:5182
    process_one_work+0x9fb/0x1570 kernel/workqueue.c:2097
    worker_thread+0x1e4/0x1350 kernel/workqueue.c:2231
    kthread+0x324/0x3f0 kernel/kthread.c:231
    ret_from_fork+0x25/0x30 arch/x86/entry/entry_64.S:425
    Code: 48 8b 85 30 ff ff ff 48 8d b8 98 00 00 00 e8 8e 93 07 ff 45 89
    e8 44 89 f1 4c 89 fa 48 89 c6 48 c7 c7 a0 e5 55 86 e8 20 08 8f fd
    ff e9 9b f7 ff ff e8 4a 04 d6 fd e9 80 f7 ff ff e8 60 11 a6
    ---[ end trace 55d741234124cfc3 ]---

    Check that endpoint is interrupt.

    Found by syzkaller.

    Signed-off-by: Andrey Konovalov
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Andrey Konovalov
     

11 Aug, 2017

1 commit


04 Jul, 2017

1 commit

  • Pull driver core updates from Greg KH:
    "Here is the big driver core update for 4.13-rc1.

    The large majority of this is a lot of cleanup of old fields in the
    driver core structures and their remaining usages in random drivers.
    All of those fixes have been reviewed by the various subsystem
    maintainers. There's also some small firmware updates in here, a new
    kobject uevent api interface that makes userspace interaction easier,
    and a few other minor things.

    All of these have been in linux-next for a long while with no reported
    issues"

    * tag 'driver-core-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (56 commits)
    arm: mach-rpc: ecard: fix build error
    zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()
    driver-core: remove struct bus_type.dev_attrs
    powerpc: vio_cmo: use dev_groups and not dev_attrs for bus_type
    powerpc: vio: use dev_groups and not dev_attrs for bus_type
    USB: usbip: convert to use DRIVER_ATTR_RW
    s390: drivers: convert to use DRIVER_ATTR_RO/WO
    platform: thinkpad_acpi: convert to use DRIVER_ATTR_RO/RW
    pcmcia: ds: convert to use DRIVER_ATTR_RO
    wireless: ipw2x00: convert to use DRIVER_ATTR_RW
    net: ehea: convert to use DRIVER_ATTR_RO
    net: caif: convert to use DRIVER_ATTR_RO
    TTY: hvc: convert to use DRIVER_ATTR_RW
    PCI: pci-driver: convert to use DRIVER_ATTR_WO
    IB: nes: convert to use DRIVER_ATTR_RW
    HID: hid-core: convert to use DRIVER_ATTR_RO and drv_groups
    arm: ecard: fix dev_groups patch typo
    tty: serdev: use dev_groups and not dev_attrs for bus_type
    sparc: vio: use dev_groups and not dev_attrs for bus_type
    hid: intel-ish-hid: use dev_groups and not dev_attrs for bus_type
    ...

    Linus Torvalds
     

09 Jun, 2017

1 commit


25 May, 2017

1 commit


17 May, 2017

1 commit

  • Add missing endianness conversion when using the USB device-descriptor
    idProduct field to apply a hardware quirk.

    Fixes: 1ba47da52712 ("uwb: add the i1480 DFU driver")
    Cc: stable # 2.6.28
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

14 Mar, 2017

2 commits

  • Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer should a malicious device lack endpoints.

    Note that the dereference happens in the cmd and wait_init_done
    callbacks which are called during probe.

    Fixes: 1ba47da52712 ("uwb: add the i1480 DFU driver")
    Cc: stable # 2.6.28
    Cc: Inaky Perez-Gonzalez
    Cc: David Vrabel
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer should a malicious device lack endpoints.

    Note that the dereference happens in the start callback which is called
    during probe.

    Fixes: de520b8bd552 ("uwb: add HWA radio controller driver")
    Cc: stable # 2.6.28
    Cc: Inaky Perez-Gonzalez
    Cc: David Vrabel
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

01 Nov, 2016

1 commit

  • This subsystem consistently fails to drop the device reference taken by
    class_find_device().

    Note that some of these lookup functions already take a reference to the
    returned data, while others claim no reference is needed (or does not
    seem need one).

    Fixes: 183b9b592a62 ("uwb: add the UWB stack (core files)")
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

15 Aug, 2016

1 commit


02 Dec, 2015

1 commit


05 Nov, 2015

1 commit

  • Pull driver core updates from Greg KH:
    "Here's the "big" driver core updates for 4.4-rc1. Primarily a bunch
    of debugfs updates, with a smattering of minor driver core fixes and
    updates as well.

    All have been in linux-next for a long time"

    * tag 'driver-core-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    debugfs: Add debugfs_create_ulong()
    of: to support binding numa node to specified device in devicetree
    debugfs: Add read-only/write-only bool file ops
    debugfs: Add read-only/write-only size_t file ops
    debugfs: Add read-only/write-only x64 file ops
    debugfs: Consolidate file mode checks in debugfs_create_*()
    Revert "mm: Check if section present during memory block (un)registering"
    driver-core: platform: Provide helpers for multi-driver modules
    mm: Check if section present during memory block (un)registering
    devres: fix a for loop bounds check
    CMA: fix CONFIG_CMA_SIZE_MBYTES overflow in 64bit
    base/platform: assert that dev_pm_domain callbacks are called unconditionally
    sysfs: correctly handle short reads on PREALLOC attrs.
    base: soc: siplify ida usage
    kobject: move EXPORT_SYMBOL() macros next to corresponding definitions
    kobject: explain what kobject's sd field is
    debugfs: document that debugfs_remove*() accepts NULL and error values
    debugfs: Pass bool pointer to debugfs_create_bool()
    ACPI / EC: Fix broken 64bit big-endian users of 'global_lock'

    Linus Torvalds
     

25 Oct, 2015

3 commits


04 Oct, 2015

1 commit

  • Its a bit odd that debugfs_create_bool() takes 'u32 *' as an argument,
    when all it needs is a boolean pointer.

    It would be better to update this API to make it accept 'bool *'
    instead, as that will make it more consistent and often more convenient.
    Over that bool takes just a byte.

    That required updates to all user sites as well, in the same commit
    updating the API. regmap core was also using
    debugfs_{read|write}_file_bool(), directly and variable types were
    updated for that to be bool as well.

    Signed-off-by: Viresh Kumar
    Acked-by: Mark Brown
    Acked-by: Charles Keepax
    Signed-off-by: Greg Kroah-Hartman

    Viresh Kumar
     

19 Mar, 2015

1 commit

  • There are currently no umc drivers implementing suspend/resume, so remove
    the legacy suspend/resume support from the framework. If a umc driver ever
    wants to implement suspend/resume they can use dev_pm_ops, which works out
    of the box without any additional support necessary from the bus itself.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen
     

18 Mar, 2015

1 commit


16 Feb, 2015

1 commit

  • Pull USB patches from Greg KH:
    "Here's the big pull request for the USB driver tree for 3.20-rc1.

    Nothing major happening here, just lots of gadget driver updates, new
    device ids, and a bunch of cleanups.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (299 commits)
    usb: musb: fix device hotplug behind hub
    usb: dwc2: Fix a bug in reading the endpoint directions from reg.
    staging: emxx_udc: fix the build error
    usb: Retry port status check on resume to work around RH bugs
    Revert "usb: Reset USB-3 devices on USB-3 link bounce"
    uhci-hub: use HUB_CHAR_*
    usb: kconfig: replace PPC_OF with PPC
    ehci-pci: disable for Intel MID platforms (update)
    usb: gadget: Kconfig: use bool instead of boolean
    usb: musb: blackfin: remove incorrect __exit_p()
    USB: fix use-after-free bug in usb_hcd_unlink_urb()
    ehci-pci: disable for Intel MID platforms
    usb: host: pci_quirks: joing string literals
    USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
    USB: usbfs: allow URBs to be reaped after disconnection
    cdc-acm: kill unnecessary messages
    cdc-acm: add sanity checks
    usb: phy: phy-generic: Fix USB PHY gpio reset
    usb: dwc2: fix USB core dependencies
    usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel()
    ...

    Linus Torvalds
     

14 Feb, 2015

1 commit

  • printk and friends can now format bitmaps using '%*pb[l]'. cpumask
    and nodemask also provide cpumask_pr_args() and nodemask_pr_args()
    respectively which can be used to generate the two printf arguments
    necessary to format the specified cpu/nodemask.

    * drivers/uwb/drp.c::uwb_drp_handle_alien_drp() was formatting mas.bm
    into a buffer but never used it. Removed.

    Signed-off-by: Tejun Heo
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     

25 Jan, 2015

1 commit


04 Nov, 2014

1 commit


24 Sep, 2014

5 commits


09 Sep, 2014

1 commit

  • Make sure the uwb_dev->bce entry is set before calling uwb_dev_add in
    uwbd_dev_onair so that usermode will only see the device after it is
    properly initialized. This fixes a kernel panic that can occur if
    usermode tries to access the IEs sysfs attribute of a UWB device before
    the driver has had a chance to set the beacon cache entry.

    Signed-off-by: Thomas Pugliese
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     

02 Aug, 2014

1 commit

  • Correct typo in the name of the type given to sizeof. Because it is the
    size of a pointer that is wanted, the typo has no impact on compilation or
    execution.

    This problem was found using Coccinelle (http://coccinelle.lip6.fr/). The
    semantic patch used can be found in message 0 of this patch series.

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

28 May, 2014

5 commits


25 Apr, 2014

1 commit


17 Apr, 2014

1 commit


21 Dec, 2013

1 commit

  • Only acquire rc->uwb_dev.mutex in the error case in
    uwbd_evt_handle_rc_bp_slot_change. This fixes a bug where establishing
    a reservation on a new channel will fail if we were unable to establish
    a reservation on the previous channel due to DRP conflict.

    If rc->uwb_dev.mutex is acquired in the non-error case when the uwb
    system is attempting to start beaconing, it will block because the start
    beaconing code is holding this mutex. This prevents any other
    notifications from the URC from being processed. In particular, the
    DRP_AVAILABILITY notification will not be processed during the start
    beaconing process which can result in a failure to establish a
    reservation. It is safe to not hold the mutex in the non-error
    case since the only other place rc->uwb_dev.beacon_slot is accessed is
    in the same worker thread that uwbd_evt_handle_rc_bp_slot_change
    executes in.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese