05 Oct, 2020

3 commits

  • To avoid mixup of packets from differnt ftrace packets simultaneously,
    use different channel for packets from different CPU.

    Reviewed-by: Steven Rostedt (VMware)
    Signed-off-by: Tingwei Zhang
    Signed-off-by: Alexander Shishkin
    Link: https://lore.kernel.org/r/20201005071319.78508-7-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Tingwei Zhang
     
  • Set flags for trace_export. Export function trace, event trace
    and trace marker to stm.

    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Alexander Shishkin
    Signed-off-by: Tingwei Zhang
    Signed-off-by: Alexander Shishkin
    Link: https://lore.kernel.org/r/20201005071319.78508-6-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Tingwei Zhang
     
  • We will support copying event trace to STM. Change
    STM_SOURCE_FTRACE to depend on TRACING since we will
    support multiple tracers.

    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Alexander Shishkin
    Signed-off-by: Tingwei Zhang
    Signed-off-by: Alexander Shishkin
    Link: https://lore.kernel.org/r/20201005071319.78508-2-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Tingwei Zhang
     

16 Jun, 2020

1 commit

  • There is a regular need in the kernel to provide a way to declare having a
    dynamically sized set of trailing elements in a structure. Kernel code should
    always use “flexible array members”[1] for these cases. The older style of
    one-element or zero-length arrays should no longer be used[2].

    [1] https://en.wikipedia.org/wiki/Flexible_array_member
    [2] https://github.com/KSPP/linux/issues/21

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

    Gustavo A. R. Silva
     

18 Mar, 2020

1 commit

  • The operands of time_after() are in a wrong order in both instances in
    the sys-t driver. Fix that.

    Signed-off-by: Alexander Shishkin
    Reviewed-by: Andy Shevchenko
    Fixes: 39f10239df75 ("stm class: p_sys-t: Add support for CLOCKSYNC packets")
    Fixes: d69d5e83110f ("stm class: Add MIPI SyS-T protocol support")
    Cc: stable@vger.kernel.org # v4.20+
    Link: https://lore.kernel.org/r/20200317062215.15598-3-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

02 Dec, 2019

1 commit

  • Pull removal of most of fs/compat_ioctl.c from Arnd Bergmann:
    "As part of the cleanup of some remaining y2038 issues, I came to
    fs/compat_ioctl.c, which still has a couple of commands that need
    support for time64_t.

    In completely unrelated work, I spent time on cleaning up parts of
    this file in the past, moving things out into drivers instead.

    After Al Viro reviewed an earlier version of this series and did a lot
    more of that cleanup, I decided to try to completely eliminate the
    rest of it and move it all into drivers.

    This series incorporates some of Al's work and many patches of my own,
    but in the end stops short of actually removing the last part, which
    is the scsi ioctl handlers. I have patches for those as well, but they
    need more testing or possibly a rewrite"

    * tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (42 commits)
    scsi: sd: enable compat ioctls for sed-opal
    pktcdvd: add compat_ioctl handler
    compat_ioctl: move SG_GET_REQUEST_TABLE handling
    compat_ioctl: ppp: move simple commands into ppp_generic.c
    compat_ioctl: handle PPPIOCGIDLE for 64-bit time_t
    compat_ioctl: move PPPIOCSCOMPRESS to ppp_generic
    compat_ioctl: unify copy-in of ppp filters
    tty: handle compat PPP ioctls
    compat_ioctl: move SIOCOUTQ out of compat_ioctl.c
    compat_ioctl: handle SIOCOUTQNSD
    af_unix: add compat_ioctl support
    compat_ioctl: reimplement SG_IO handling
    compat_ioctl: move WDIOC handling into wdt drivers
    fs: compat_ioctl: move FITRIM emulation into file systems
    gfs2: add compat_ioctl support
    compat_ioctl: remove unused convert_in_user macro
    compat_ioctl: remove last RAID handling code
    compat_ioctl: remove /dev/raw ioctl translation
    compat_ioctl: remove PCI ioctl translation
    compat_ioctl: remove joystick ioctl translation
    ...

    Linus Torvalds
     

14 Nov, 2019

1 commit

  • Commit c7fd62bc69d02 ("stm class: Introduce framing protocol drivers")
    forgot to tear down the link between an stm device and its protocol
    driver when policy is removed. This leads to an invalid pointer reference
    if one tries to write to an stm device after the policy has been removed
    and the protocol driver module unloaded, leading to the below splat:

    > BUG: unable to handle page fault for address: ffffffffc0737068
    > #PF: supervisor read access in kernel mode
    > #PF: error_code(0x0000) - not-present page
    > PGD 3d780f067 P4D 3d780f067 PUD 3d7811067 PMD 492781067 PTE 0
    > Oops: 0000 [#1] SMP NOPTI
    > CPU: 1 PID: 26122 Comm: cat Not tainted 5.4.0-rc5+ #1
    > RIP: 0010:stm_output_free+0x40/0xc0 [stm_core]
    > Call Trace:
    > stm_char_release+0x3e/0x70 [stm_core]
    > __fput+0xc6/0x260
    > ____fput+0xe/0x10
    > task_work_run+0x9d/0xc0
    > exit_to_usermode_loop+0x103/0x110
    > do_syscall_64+0x19d/0x1e0
    > entry_SYSCALL_64_after_hwframe+0x44/0xa9

    Fix this by tearing down the link from an stm device to its protocol
    driver when the policy involving that driver is removed.

    Signed-off-by: Alexander Shishkin
    Fixes: c7fd62bc69d02 ("stm class: Introduce framing protocol drivers")
    Reported-by: Ammy Yi
    Tested-by: Ammy Yi
    CC: stable@vger.kernel.org # v4.20+
    Link: https://lore.kernel.org/r/20191114064201.43089-2-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

23 Oct, 2019

1 commit

  • Each of these drivers has a copy of the same trivial helper function to
    convert the pointer argument and then call the native ioctl handler.

    We now have a generic implementation of that, so use it.

    Acked-by: Greg Kroah-Hartman
    Acked-by: Michael S. Tsirkin
    Acked-by: David S. Miller
    Acked-by: Jarkko Sakkinen
    Reviewed-by: Jarkko Sakkinen
    Reviewed-by: Jason Gunthorpe
    Reviewed-by: Jiri Kosina
    Reviewed-by: Stefan Hajnoczi
    Reviewed-by: Cornelia Huck
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

18 Sep, 2019

1 commit

  • …anaszewski/linux-leds

    Pull LED updates from Jacek Anaszewski:
    "In this cycle we've finally managed to contribute the patch set
    sorting out LED naming issues. Besides that there are many changes
    scattered among various LED class drivers and triggers.

    LED naming related improvements:

    - add new 'function' and 'color' fwnode properties and deprecate
    'label' property which has been frequently abused for conveying
    vendor specific names that have been available in sysfs anyway

    - introduce a set of standard LED_FUNCTION* definitions

    - introduce a set of standard LED_COLOR_ID* definitions

    - add a new {devm_}led_classdev_register_ext() API with the
    capability of automatic LED name composition basing on the
    properties available in the passed fwnode; the function is
    backwards compatible in a sense that it uses 'label' data, if
    present in the fwnode, for creating LED name

    - add tools/leds/get_led_device_info.sh script for retrieving LED
    vendor, product and bus names, if applicable; it also performs
    basic validation of an LED name

    - update following drivers and their DT bindings to use the new LED
    registration API:

    - leds-an30259a, leds-gpio, leds-as3645a, leds-aat1290, leds-cr0014114,
    leds-lm3601x, leds-lm3692x, leds-lp8860, leds-lt3593, leds-sc27xx-blt

    Other LED class improvements:

    - replace {devm_}led_classdev_register() macros with inlines

    - allow to call led_classdev_unregister() unconditionally

    - switch to use fwnode instead of be stuck with OF one

    LED triggers improvements:

    - led-triggers:
    - fix dereferencing of null pointer
    - fix a memory leak bug

    - ledtrig-gpio:
    - GPIO 0 is valid

    Drop superseeded apu2/3 support from leds-apu since for apu2+ a newer,
    more complete driver exists, based on a generic driver for the AMD
    SOCs gpio-controller, supporting LEDs as well other devices:

    - drop profile field from priv data

    - drop iosize field from priv data

    - drop enum_apu_led_platform_types

    - drop superseeded apu2/3 led support

    - add pr_fmt prefix for better log output

    - fix error message on probing failure

    Other misc fixes and improvements to existing LED class drivers:

    - leds-ns2, leds-max77650:
    - add of_node_put() before return

    - leds-pwm, leds-is31fl32xx:
    - use struct_size() helper

    - leds-lm3697, leds-lm36274, leds-lm3532:
    - switch to use fwnode_property_count_uXX()

    - leds-lm3532:
    - fix brightness control for i2c mode
    - change the define for the fs current register
    - fixes for the driver for stability
    - add full scale current configuration
    - dt: Add property for full scale current.
    - avoid potentially unpaired regulator calls
    - move static keyword to the front of declarations
    - fix optional led-max-microamp prop error handling

    - leds-max77650:
    - add of_node_put() before return
    - add MODULE_ALIAS()
    - Switch to fwnode property API

    - leds-as3645a:
    - fix misuse of strlcpy

    - leds-netxbig:
    - add of_node_put() in netxbig_leds_get_of_pdata()
    - remove legacy board-file support

    - leds-is31fl319x:
    - simplify getting the adapter of a client

    - leds-ti-lmu-common:
    - fix coccinelle issue
    - move static keyword to the front of declaration

    - leds-syscon:
    - use resource managed variant of device register

    - leds-ktd2692:
    - fix a typo in the name of a constant

    - leds-lp5562:
    - allow firmware files up to the maximum length

    - leds-an30259a:
    - fix typo

    - leds-pca953x:
    - include the right header"

    * tag 'leds-for-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: (72 commits)
    leds: lm3532: Fix optional led-max-microamp prop error handling
    led: triggers: Fix dereferencing of null pointer
    leds: ti-lmu-common: Move static keyword to the front of declaration
    leds: lm3532: Move static keyword to the front of declarations
    leds: trigger: gpio: GPIO 0 is valid
    leds: pwm: Use struct_size() helper
    leds: is31fl32xx: Use struct_size() helper
    leds: ti-lmu-common: Fix coccinelle issue in TI LMU
    leds: lm3532: Avoid potentially unpaired regulator calls
    leds: syscon: Use resource managed variant of device register
    leds: Replace {devm_}led_classdev_register() macros with inlines
    leds: Allow to call led_classdev_unregister() unconditionally
    leds: lm3532: Add full scale current configuration
    dt: lm3532: Add property for full scale current.
    leds: lm3532: Fixes for the driver for stability
    leds: lm3532: Change the define for the fs current register
    leds: lm3532: Fix brightness control for i2c mode
    leds: Switch to use fwnode instead of be stuck with OF one
    leds: max77650: Switch to fwnode property API
    led: triggers: Fix a memory leak bug
    ...

    Linus Torvalds
     

29 Aug, 2019

1 commit

  • In the error path of stm_source_register_device(), the kfree is
    unnecessary, as the put_device() before it ends up calling
    stm_source_device_release() to free stm_source_device, leading to
    a double free at the outer kfree() call. Remove it.

    Signed-off-by: Ding Xiang
    Signed-off-by: Alexander Shishkin
    Fixes: 7bd1d4093c2fa ("stm class: Introduce an abstraction for System Trace Module devices")
    Link: https://lore.kernel.org/linux-arm-kernel/1563354988-23826-1-git-send-email-dingxiang@cmss.chinamobile.com/
    Cc: stable@vger.kernel.org # v4.4+
    Link: https://lore.kernel.org/r/20190821074955.3925-2-alexander.shishkin@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Ding Xiang
     

30 Jul, 2019

1 commit

  • Add a helper to match the device name for device lookup. Also
    reuse this generic exported helper for the existing bus_find_device_by_name().
    and add similar variants for driver/class.

    Cc: Alessandro Zummo
    Cc: Alexander Aring
    Cc: Alexander Shishkin
    Cc: Arnd Bergmann
    Cc: Dan Murphy
    Cc: Harald Freudenberger
    Cc: Heiko Carstens
    Cc: Jacek Anaszewski
    Cc: Lee Jones
    Cc: linux-leds@vger.kernel.org
    Cc: linux-rtc@vger.kernel.org
    Cc: linux-usb@vger.kernel.org
    Cc: linux-wpan@vger.kernel.org
    Cc: Maxime Coquelin
    Cc: Pavel Machek
    Cc: Peter Oberparleiter
    Cc: "Rafael J. Wysocki"
    Cc: Stefan Schmidt
    Cc: Greg Kroah-Hartman
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Suzuki K Poulose
    Reviewed-by: Heikki Krogerus
    Acked-by: Alexandre Belloni
    Link: https://lore.kernel.org/r/20190723221838.12024-2-suzuki.poulose@arm.com
    Signed-off-by: Greg Kroah-Hartman

    Suzuki K Poulose
     

21 May, 2019

1 commit


25 Apr, 2019

2 commits

  • Commit 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace
    Module devices") naively calculates the channel bitmap size in 64-bit
    chunks regardless of the size of underlying unsigned long, making the
    bitmap half as big on a 32-bit system. This leads to an out of bounds
    access with the upper half of the bitmap.

    Fix this by using BITS_TO_LONGS. While at it, convert to using
    struct_size() for the total size calculation of the master struct.

    Signed-off-by: Alexander Shishkin
    Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
    Reported-by: Mulu He
    Cc: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Number of free masters is not set correctly in stm
    free path. Fix this by properly adding the number
    of output channels before setting them to 0 in
    stm_output_disclaim().

    Currently it is equivalent to doing nothing since
    master->nr_free is incremented by 0.

    Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
    Signed-off-by: Tingwei Zhang
    Signed-off-by: Sai Prakash Ranjan
    Cc: stable@vger.kernel.org # v4.4
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Tingwei Zhang
     

21 Feb, 2019

2 commits

  • Using STP_POLICY_ID_SET ioctl command with dummy_stm device, or any STM
    device that supplies zero mmio channel size, will trigger a division by
    zero bug in the kernel.

    Prevent this by disallowing channel widths other than 1 for such devices.

    Signed-off-by: Alexander Shishkin
    Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
    CC: stable@vger.kernel.org # v4.4+

    Alexander Shishkin
     
  • There is a bug in the channel allocation logic that leads to an endless
    loop when looking for a contiguous range of channels in a range with a
    mixture of free and occupied channels. For example, opening three
    consequtive channels, closing the first two and requesting 4 channels in
    a row will trigger this soft lockup. The bug is that the search loop
    forgets to skip over the range once it detects that one channel in that
    range is occupied.

    Restore the original intent to the logic by fixing the omission.

    Signed-off-by: Zhi Jin
    Signed-off-by: Alexander Shishkin
    Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices")
    CC: stable@vger.kernel.org # v4.4+

    Zhi Jin
     

20 Dec, 2018

1 commit

  • Commit c7fd62bc69d0 ("stm class: Introduce framing protocol drivers")
    adds a bug into the error path of policy creation, that would do a
    module_put() on a wrong module, if one tried to create a policy for
    an stm device which already has a policy, using a different protocol.
    IOW,

    | mkdir /config/stp-policy/dummy_stm.0:p_basic.test
    | mkdir /config/stp-policy/dummy_stm.0:p_sys-t.test # puts "p_basic"
    | mkdir /config/stp-policy/dummy_stm.0:p_sys-t.test # "p_basic" -> -1

    throws:

    | general protection fault: 0000 [#1] SMP PTI
    | CPU: 3 PID: 2887 Comm: mkdir
    | RIP: 0010:module_put.part.31+0xe/0x90
    | Call Trace:
    | module_put+0x13/0x20
    | stm_put_protocol+0x11/0x20 [stm_core]
    | stp_policy_make+0xf1/0x210 [stm_core]
    | ? __kmalloc+0x183/0x220
    | ? configfs_mkdir+0x10d/0x4c0
    | configfs_mkdir+0x169/0x4c0
    | vfs_mkdir+0x108/0x1c0
    | do_mkdirat+0xe8/0x110
    | __x64_sys_mkdir+0x1b/0x20
    | do_syscall_64+0x5a/0x140
    | entry_SYSCALL_64_after_hwframe+0x44/0xa9

    Correct this sad mistake by calling calling 'put' on the correct
    reference, which happens to match another error path in the same
    function, so we consolidate the two at the same time.

    Signed-off-by: Alexander Shishkin
    Fixes: c7fd62bc69d0 ("stm class: Introduce framing protocol drivers")
    Reported-by: Ammy Yi
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

11 Oct, 2018

11 commits

  • Instead of a local copy, use the memcat_p() helper to merge policy
    node attributes.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Fix whitespace in the code for better readability, no functional changes.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • This adds support for CLOCKSYNC SyS-T packets, that establish correlation
    between the transport clock (STP timestamps) and SyS-T timestamps. These
    packets are sent periodically to allow the decoder to keep both time
    sources in sync.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • This adds support for MIPI SyS-T protocol as specified in an open
    standard [1]. In addition to marking message boundaries, it also
    supports tagging messages with the source UUID, to provide better
    distinction between trace sources, including payload length and
    timestamp in the message's metadata.

    This driver adds attributes to STP policy nodes to control/configure
    these metadata features.

    [1] https://www.mipi.org/specifications/sys-t

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Now that the default framing protocol is factored out into its own driver,
    switch over to using the driver for writing data. To that end, make the
    policy code require a valid protocol name (or absence thereof, which is
    equivalent to "p_basic").

    Also, to make transition easier, make stm class request "p_basic" module
    at initialization time.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • The STP framing pattern that the stm class implicitly applies to the
    data payload is, in fact, a protocol. This patch moves the relevant code
    out of the stm core into its own driver module.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Add a helper to write a sequence of bytes as STP data packets. This
    is used by protocol drivers to output their metadata, as well as the
    actual data payload.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • At the moment, the stm class applies a certain STP framing pattern to
    the data as it is written to the underlying STM device. In order to
    allow different framing patterns (aka protocols), this patch introduces
    the concept of STP protocol drivers, defines data structures and APIs
    for the protocol drivers to use.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Minor code shortening, no functional changes.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • The current naming of stp-policy root type and group ops is confusing,
    rename them for better readability.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Currently, if no matching policy node can be found for a trace source,
    we'll try to use "default" policy node, then, if that doesn't exist,
    we'll pick the first node, in order of creation. If that also fails,
    we'll allocate M/C range from the beginning of the device's M/C range.

    This makes it difficult to know which node (if any) was used in any
    particular case.

    In order to make things more deterministic, the new order is as follows:
    * if they supply ID string, use that and nothing else,
    * if they are a task, use their task name (comm),
    * use "default", if it exists,
    * return failure, to let them know there is no suitable rule.

    This should provide enough convenience with the "default" catch-all node,
    while not leaving *everything* to chance. As a side effect, this relaxes
    the requirement of using ioctl() for identification with the possibility of
    using task names as policy nodes.

    Signed-off-by: Alexander Shishkin
    Tested-by: Mathieu Poirier
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

06 Jun, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the "big" char and misc driver patches for 4.18-rc1.

    It's not a lot of stuff here, but there are some highlights:

    - coreboot driver updates

    - soundwire driver updates

    - android binder updates

    - fpga big sync, mostly documentation

    - lots of minor driver updates

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

    * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
    vmw_balloon: fixing double free when batching mode is off
    MAINTAINERS: Add driver-api/fpga path
    fpga: clarify that unregister functions also free
    documentation: fpga: move fpga-region.txt to driver-api
    documentation: fpga: add bridge document to driver-api
    documentation: fpga: move fpga-mgr.txt to driver-api
    Documentation: fpga: move fpga overview to driver-api
    fpga: region: kernel-doc fixes
    fpga: bridge: kernel-doc fixes
    fpga: mgr: kernel-doc fixes
    fpga: use SPDX
    fpga: region: change api, add fpga_region_create/free
    fpga: bridge: change api, don't use drvdata
    fpga: manager: change api, don't use drvdata
    fpga: region: don't use drvdata in common fpga code
    Drivers: hv: vmbus: Removed an unnecessary cast from void *
    ver_linux: Drop redundant calls to system() to test if file is readable
    ver_linux: Move stderr redirection from function parameter to function body
    misc: IBM Virtual Management Channel Driver (VMC)
    rpmsg: Correct support for MODULE_DEVICE_TABLE()
    ...

    Linus Torvalds
     

26 May, 2018

2 commits

  • Commit b5e2ced9bf81 ("stm class: Use vmalloc for the master map") caused
    a build error on some arches as vmalloc.h was not explicitly included.

    Fix that by adding it to the list of includes.

    Fixes: b5e2ced9bf81 ("stm class: Use vmalloc for the master map")
    Reported-by: kbuild test robot
    Cc: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Fengguang is running into a warning from the buddy allocator:

    > swapper/0: page allocation failure: order:9, mode:0x14040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)
    > CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.17.0-rc1 #262
    > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
    > Call Trace:
    ...
    > __kmalloc+0x14b/0x180: ____cache_alloc at mm/slab.c:3127
    > stm_register_device+0xf3/0x5c0: stm_register_device at drivers/hwtracing/stm/core.c:695
    ...

    Which is basically a result of the stm class trying to allocate ~512kB
    for the dummy_stm with its default parameters. There's no reason, however,
    for it not to be vmalloc()ed instead, which is what this patch does.

    Reported-by: Fengguang Wu
    Signed-off-by: Alexander Shishkin
    CC: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

14 May, 2018

1 commit


28 Mar, 2018

2 commits


04 Dec, 2017

1 commit

  • By passing an export descriptor to the write function, users don't need to
    keep a global static pointer and can rely on container_of() to fetch their
    own structure.

    Link: http://lkml.kernel.org/r/20170602102025.5140-1-felipe.balbi@linux.intel.com

    Acked-by: Steven Rostedt (VMware)
    Reviewed-by: Chunyan Zhang
    Signed-off-by: Felipe Balbi
    Signed-off-by: Steven Rostedt (VMware)

    Felipe Balbi
     

15 Nov, 2017

1 commit

  • Pull configfs updates from Christoph Hellwig:
    "A couple of configfs cleanups:

    - proper use of the bool type (Thomas Meyer)

    - constification of struct config_item_type (Bhumika Goyal)"

    * tag 'configfs-for-4.15' of git://git.infradead.org/users/hch/configfs:
    RDMA/cma: make config_item_type const
    stm class: make config_item_type const
    ACPI: configfs: make config_item_type const
    nvmet: make config_item_type const
    usb: gadget: configfs: make config_item_type const
    PCI: endpoint: make config_item_type const
    iio: make function argument and some structures const
    usb: gadget: make config_item_type structures const
    dlm: make config_item_type const
    netconsole: make config_item_type const
    nullb: make config_item_type const
    ocfs2/cluster: make config_item_type const
    target: make config_item_type const
    configfs: make ci_type field, some pointers and function arguments const
    configfs: make config_item_type const
    configfs: Fix bool initialization/comparison

    Linus Torvalds
     

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
     

19 Oct, 2017

1 commit

  • Make config_item_type structures const as they are either passed to a
    function having the argument as const or used inside a if statement or
    stored in the const "ci_type" field of a config_item structure.

    Done using Coccinelle.

    Signed-off-by: Bhumika Goyal
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Christoph Hellwig

    Bhumika Goyal
     

22 Sep, 2017

1 commit

  • For reasons unknown, the stm_source removal path uses device_destroy()
    to kill the underlying device object. Because device_destroy() uses
    devt to look for the device to destroy and the fact that stm_source
    devices don't have one (or all have the same one), it just picks the
    first device in the class, which may well be the wrong one.

    That is, loading stm_console and stm_heartbeat and then removing both
    will die in dereferencing a freed object.

    Since this should have been device_unregister() in the first place,
    use it instead of device_destroy().

    Signed-off-by: Alexander Shishkin
    Fixes: 7bd1d4093c2 ("stm class: Introduce an abstraction for System Trace Module devices")
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

25 Aug, 2017

1 commit