27 Dec, 2018

1 commit

  • Pull sparc updates from David Miller:

    - Automatic system call table generation, from Firoz Khan.

    - Clean up accesses to the OF device names by using full_name instead
    of path_component_name.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
    ALSA: sparc: Use of_node_name_eq for node name comparisons
    sbus: Use of_node_name_eq for node name comparisons
    sparc: generate uapi header and system call table files
    sparc: add system call table generation support
    sparc: add __NR_syscalls along with NR_syscalls
    sparc: move __IGNORE* entries to non uapi header
    sparc: Use DT node full_name instead of name for resources
    sparc: Remove unused leon_trans_init
    sparc: Use device_type helpers to access the node type
    sparc: Use of_node_name_eq for node name comparisons
    sparc: Convert to using %pOFn instead of device_node.name
    sparc: prom: use property "name" directly to construct node names
    of: Drop full path from full_name for PDT systems
    sparc: Convert to using %pOF instead of full_name
    fs/openpromfs: Use of_node_name_eq for node name comparisons
    fs/openpromfs: use full_name instead of path_component_name

    Linus Torvalds
     

06 Dec, 2018

1 commit


03 Dec, 2018

2 commits


08 Oct, 2018

2 commits


16 Jun, 2018

1 commit


16 May, 2018

1 commit

  • Nobody is using it anymore, and it's been abandoned. Since David
    is fine with removing it, kill it.

    Suggested-by: Christoph Hellwig
    Acked-by: David S. Miller
    Signed-off-by: Jens Axboe

    Jens Axboe
     

12 May, 2018

1 commit

  • Just kmap the bio single page payload before processing it.

    (and yes, now highmem on sparc32 anyway, but kmap_(un)map atomic are nops,
    so this gives the right example)

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

01 May, 2018

1 commit


02 Apr, 2018

1 commit

  • Each Oracle DAX CCB has a corresponding completion area, and the required
    number of areas must fit within a previously allocated array of completion
    areas beginning at the requested index. Since the completion area index
    is specified by a file offset, a user can pass arbitrary values, including
    negative numbers. So the index must be thoroughly range checked to prevent
    access to addresses outside the bounds of the allocated completion
    area array. The index cannot be negative, and it cannot exceed the
    total array size, less the number of CCBs requested. The old code did
    not check for negative values and was off by one on the upper bound.

    Signed-off-by: Rob Gardner
    Signed-off-by: Jonathan Helman
    Reported-by: Linus Torvalds
    Signed-off-by: David S. Miller

    Rob Gardner
     

18 Mar, 2018

1 commit

  • sparc:allmodconfig fails to build as follows.

    ERROR: "mdesc_release" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "sun4v_hvapi_register" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "mdesc_get_property" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "mdesc_node_by_name" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "mdesc_grab" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "sun4v_ccb_info" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "sun4v_ccb_submit" [drivers/sbus/char/oradax.ko] undefined!
    ERROR: "sun4v_ccb_kill" [drivers/sbus/char/oradax.ko] undefined!

    The symbols are only available with SPARC64 builds, thus the driver
    depends on it.

    Fixes: dd0273284c74 ("sparc64: Oracle DAX driver")
    Cc: Kees Cook
    Signed-off-by: Guenter Roeck
    Signed-off-by: David S. Miller

    Guenter Roeck
     

07 Feb, 2018

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - skip AER driver error recovery callbacks for correctable errors
    reported via ACPI APEI, as we already do for errors reported via the
    native path (Tyler Baicar)

    - fix DPC shared interrupt handling (Alex Williamson)

    - print full DPC interrupt number (Keith Busch)

    - enable DPC only if AER is available (Keith Busch)

    - simplify DPC code (Bjorn Helgaas)

    - calculate ASPM L1 substate parameter instead of hardcoding it (Bjorn
    Helgaas)

    - enable Latency Tolerance Reporting for ASPM L1 substates (Bjorn
    Helgaas)

    - move ASPM internal interfaces out of public header (Bjorn Helgaas)

    - allow hot-removal of VGA devices (Mika Westerberg)

    - speed up unplug and shutdown by assuming Thunderbolt controllers
    don't support Command Completed events (Lukas Wunner)

    - add AtomicOps support for GPU and Infiniband drivers (Felix Kuehling,
    Jay Cornwall)

    - expose "ari_enabled" in sysfs to help NIC naming (Stuart Hayes)

    - clean up PCI DMA interface usage (Christoph Hellwig)

    - remove PCI pool API (replaced with DMA pool) (Romain Perier)

    - deprecate pci_get_bus_and_slot(), which assumed PCI domain 0 (Sinan
    Kaya)

    - move DT PCI code from drivers/of/ to drivers/pci/ (Rob Herring)

    - add PCI-specific wrappers for dev_info(), etc (Frederick Lawler)

    - remove warnings on sysfs mmap failure (Bjorn Helgaas)

    - quiet ROM validation messages (Alex Deucher)

    - remove redundant memory alloc failure messages (Markus Elfring)

    - fill in types for compile-time VGA and other I/O port resources
    (Bjorn Helgaas)

    - make "pci=pcie_scan_all" work for Root Ports as well as Downstream
    Ports to help AmigaOne X1000 (Bjorn Helgaas)

    - add SPDX tags to all PCI files (Bjorn Helgaas)

    - quirk Marvell 9128 DMA aliases (Alex Williamson)

    - quirk broken INTx disable on Ceton InfiniTV4 (Bjorn Helgaas)

    - fix CONFIG_PCI=n build by adding dummy pci_irqd_intx_xlate() (Niklas
    Cassel)

    - use DMA API to get MSI address for DesignWare IP (Niklas Cassel)

    - fix endpoint-mode DMA mask configuration (Kishon Vijay Abraham I)

    - fix ARTPEC-6 incorrect IS_ERR() usage (Wei Yongjun)

    - add support for ARTPEC-7 SoC (Niklas Cassel)

    - add endpoint-mode support for ARTPEC (Niklas Cassel)

    - add Cadence PCIe host and endpoint controller driver (Cyrille
    Pitchen)

    - handle multiple INTx status bits being set in dra7xx (Vignesh R)

    - translate dra7xx hwirq range to fix INTD handling (Vignesh R)

    - remove deprecated Exynos PHY initialization code (Jaehoon Chung)

    - fix MSI erratum workaround for HiSilicon Hip06/Hip07 (Dongdong Liu)

    - fix NULL pointer dereference in iProc BCMA driver (Ray Jui)

    - fix Keystone interrupt-controller-node lookup (Johan Hovold)

    - constify qcom driver structures (Julia Lawall)

    - rework Tegra config space mapping to increase space available for
    endpoints (Vidya Sagar)

    - simplify Tegra driver by using bus->sysdata (Manikanta Maddireddy)

    - remove PCI_REASSIGN_ALL_BUS usage on Tegra (Manikanta Maddireddy)

    - add support for Global Fabric Manager Server (GFMS) event to
    Microsemi Switchtec switch driver (Logan Gunthorpe)

    - add IDs for Switchtec PSX 24xG3 and PSX 48xG3 (Kelvin Cao)

    * tag 'pci-v4.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
    PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe endpoint controller
    PCI: endpoint: Fix EPF device name to support multi-function devices
    PCI: endpoint: Add the function number as argument to EPC ops
    PCI: cadence: Add host driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe host controller
    PCI: Add vendor ID for Cadence
    PCI: Add generic function to probe PCI host controllers
    PCI: generic: fix missing call of pci_free_resource_list()
    PCI: OF: Add generic function to parse and allocate PCI resources
    PCI: Regroup all PCI related entries into drivers/pci/Makefile
    PCI/DPC: Reformat DPC register definitions
    PCI/DPC: Add and use DPC Status register field definitions
    PCI/DPC: Squash dpc_rp_pio_get_info() into dpc_process_rp_pio_error()
    PCI/DPC: Remove unnecessary RP PIO register structs
    PCI/DPC: Push dpc->rp_pio_status assignment into dpc_rp_pio_get_info()
    PCI/DPC: Squash dpc_rp_pio_print_error() into dpc_rp_pio_get_info()
    PCI/DPC: Make RP PIO log size check more generic
    PCI/DPC: Rename local "status" to "dpc_status"
    PCI/DPC: Squash dpc_rp_pio_print_tlp_header() into dpc_rp_pio_print_error()
    ...

    Linus Torvalds
     

30 Jan, 2018

1 commit

  • In case of error, the function class_create() returns ERR_PTR() and
    never returns NULL. The NULL test in the return value check should be
    replaced with IS_ERR().

    Fixes: dd0273284c74 ("sparc64: Oracle DAX driver")
    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     

23 Jan, 2018

1 commit

  • DAX is a coprocessor which resides on the SPARC M7 (DAX1) and M8
    (DAX2) processor chips, and has direct access to the CPU's L3 caches
    as well as physical memory. It can perform several operations on data
    streams with various input and output formats. This driver provides a
    transport mechanism and has limited knowledge of the various opcodes
    and data formats. A user space library provides high level services
    and translates these into low level commands which are then passed
    into the driver and subsequently the hypervisor and the coprocessor.
    The library is the recommended way for applications to use the
    coprocessor, and the driver interface is not intended for general use.

    Signed-off-by: Rob Gardner
    Signed-off-by: Jonathan Helman
    Signed-off-by: Sanath Kumar
    Signed-off-by: David S. Miller

    Rob Gardner
     

17 Jan, 2018

1 commit

  • pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
    where a PCI device is present. This restricts the device drivers to be
    reused for other domain numbers.

    Getting ready to remove pci_get_bus_and_slot() function in favor of
    pci_get_domain_bus_and_slot().

    Hard-coding the domain as 0 since domain information is not available.

    Signed-off-by: Sinan Kaya
    Signed-off-by: Bjorn Helgaas
    Acked-by: David S. Miller

    Sinan Kaya
     

18 Nov, 2017

1 commit

  • Pull sparc updates from David Miller:

    1) Add missing cmpxchg64() for 32-bit sparc.

    2) Timer conversions from Allen Pais and Kees Cook.

    3) vDSO support, from Nagarathnam Muthusamy.

    4) Fix sparc64 huge page table walks based upon bug report by Al Viro,
    from Nitin Gupta.

    5) Optimized fls() for T4 and above, from Vijay Kumar.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Fix page table walk for PUD hugepages
    sparc64: Convert timers to user timer_setup()
    sparc64: convert mdesc_handle.refcnt from atomic_t to refcount_t
    sparc/led: Convert timers to use timer_setup()
    sparc64: Use sparc optimized fls and __fls for T4 and above
    sparc64: SPARC optimized __fls function
    sparc64: SPARC optimized fls function
    sparc64: Define SPARC default __fls function
    sparc64: Define SPARC default fls function
    vDSO for sparc
    sparc32: Add cmpxchg64().
    sbus: char: Move D7S_MINOR to include/linux/miscdevice.h
    sparc: time: Remove unneeded linux/miscdevice.h include
    sparc64: mmu_context: Add missing include files

    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
     

28 Sep, 2017

1 commit


21 Jul, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    Cc: "David S. Miller"
    Cc: sparclinux@vger.kernel.org
    Acked-by: David S. Miller
    Signed-off-by: David S. Miller

    Rob Herring
     

28 Jun, 2017

1 commit


09 Jun, 2017

1 commit

  • Currently we use nornal Linux errno values in the block layer, and while
    we accept any error a few have overloaded magic meanings. This patch
    instead introduces a new blk_status_t value that holds block layer specific
    status codes and explicitly explains their meaning. Helpers to convert from
    and to the previous special meanings are provided for now, but I suspect
    we want to get rid of them in the long run - those drivers that have a
    errno input (e.g. networking) usually get errnos that don't know about
    the special block layer overloads, and similarly returning them to userspace
    will usually return somethings that strictly speaking isn't correct
    for file system operations, but that's left as an exercise for later.

    For now the set of errors is a very limited set that closely corresponds
    to the previous overloaded errno values, but there is some low hanging
    fruite to improve it.

    blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
    typechecking, so that we can easily catch places passing the wrong values.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

29 Mar, 2017

1 commit


25 Dec, 2016

1 commit


21 May, 2016

1 commit

  • Fix following warnings:
    openprom.c:510:2: warning: 'tmp' may be used uninitialized in this function [-Wmaybe-uninitialized]
    openprom.c:503:3: warning: 'str' may be used uninitialized in this function [-Wmaybe-uninitialized]
    openprom.c:459:8: warning: 'str' may be used uninitialized in this function [-Wmaybe-uninitialized]
    openprom.c:422:7: warning: 'str' may be used uninitialized in this function [-Wmaybe-uninitialized]

    Fixed by introducing PTR_ERR etc.
    This simplified the code as a nice side effect.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

04 Jan, 2016

1 commit


16 Apr, 2015

1 commit

  • orderly_poweroff() unconditionally returns 0, so remove the dead code that
    checks the return value.

    A future patch will change the return type to void.

    Signed-off-by: Joel Stanley
    Acked-by: David S. Miller
    Cc: Fabian Frederick
    Cc: Benjamin Herrenschmidt
    Cc: Michael Ellerman
    Cc: Rusty Russell
    Cc: Jeremy Kerr
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joel Stanley
     

20 Oct, 2014

1 commit


06 Aug, 2014

1 commit


05 Aug, 2014

1 commit

  • Fix regression in bbc i2c temperature and fan control on some Sun systems
    that causes the driver to refuse to load due to the bbc_i2c_bussel resource not
    being present on the (second) i2c bus where the temperature sensors and fan
    control are located. (The check for the number of resources was removed when
    the driver was ported to a pure OF driver in mid 2008.)

    Signed-off-by: Christopher Alexander Tobias Schulze
    Signed-off-by: David S. Miller

    Christopher Alexander Tobias Schulze
     

22 Jul, 2014

2 commits

  • Flipping a bit doesn't need four lines of code; and gcc seems to
    actually generate two branches.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: David S. Miller

    Rasmus Villemoes
     
  • This patch moves data allocated using kzalloc to managed data allocated
    using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
    functions. The header file is added to make the devm function explicitly
    available.

    The following Coccinelle semantic patch was used for making a part of
    the change:

    @platform@
    identifier p, probefn, removefn;
    @@
    struct platform_driver p = {
    .probe = probefn,
    .remove = removefn,
    };

    @prb@
    identifier platform.probefn, pdev;
    expression e, e1, e2;
    @@
    probefn(struct platform_device *pdev, ...) {
    dev, e1, e2)
    ...
    ?-kfree(e);
    ...+>
    }

    @rem depends on prb@
    identifier platform.removefn;
    expression e;
    @@
    removefn(...) {

    }

    Signed-off-by: Himangi Saraogi
    Acked-by: Julia Lawall
    Acked-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Himangi Saraogi
     

17 Apr, 2014

1 commit


21 Feb, 2014

1 commit


29 Jan, 2014

1 commit


01 Apr, 2013

1 commit

  • Fix following warning:

    WARNING: drivers/sbus/char/bbc.o(.text+0x674): Section mismatch in reference from the function bbc_i2c_probe() to the function .init.text:T.463()
    The function bbc_i2c_probe() references the function __init T.463().
    This is often because bbc_i2c_probe lacks a __init
    annotation or the annotation of T.463 is wrong.

    bbc_i2c_probe() referenced the inlined attach_one_i2c().
    As probe may be called after init drop __init annotations
    on all functions used by bbc_i2c_probe()

    The warning was seen with a sparc64 defconfig build

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

27 Feb, 2013

1 commit

  • Pull vfs pile (part one) from Al Viro:
    "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
    locking violations, etc.

    The most visible changes here are death of FS_REVAL_DOT (replaced with
    "has ->d_weak_revalidate()") and a new helper getting from struct file
    to inode. Some bits of preparation to xattr method interface changes.

    Misc patches by various people sent this cycle *and* ocfs2 fixes from
    several cycles ago that should've been upstream right then.

    PS: the next vfs pile will be xattr stuff."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)
    saner proc_get_inode() calling conventions
    proc: avoid extra pde_put() in proc_fill_super()
    fs: change return values from -EACCES to -EPERM
    fs/exec.c: make bprm_mm_init() static
    ocfs2/dlm: use GFP_ATOMIC inside a spin_lock
    ocfs2: fix possible use-after-free with AIO
    ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
    get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
    target: writev() on single-element vector is pointless
    export kernel_write(), convert open-coded instances
    fs: encode_fh: return FILEID_INVALID if invalid fid_type
    kill f_vfsmnt
    vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
    nfsd: handle vfs_getattr errors in acl protocol
    switch vfs_getattr() to struct path
    default SET_PERSONALITY() in linux/elf.h
    ceph: prepopulate inodes only when request is aborted
    d_hash_and_lookup(): export, switch open-coded instances
    9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
    9p: split dropping the acls from v9fs_set_create_acl()
    ...

    Linus Torvalds
     

23 Feb, 2013

1 commit


12 Jan, 2013

1 commit


04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the use of __devinit, __devexit_p, and __devexit
    from these drivers.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Cc: "David S. Miller"
    Cc: Peter Senna Tschudin
    Cc: David Howells
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman