07 Jul, 2016

1 commit

  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    One more set of new features:
    * beacon report (for radio measurement) support in cfg80211/mac80211
    * hwsim: allow wmediumd in namespaces
    * mac80211: extend 160MHz workaround to CSA IEs
    * mesh: properly encrypt group-addressed privacy action frames
    * mesh: allow setting peer AID
    * first steps for MU-MIMO monitor mode
    * along with various other cleanups and improvements
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

06 Jul, 2016

1 commit

  • Beacon report radio measurement requires reporting observed BSSs
    on the channels specified in the beacon request. If the measurement
    mode is set to passive or active, it requires actually performing a
    scan (passive or active, accordingly), and reporting the time that
    the scan was started and the time each beacon/probe was received
    (both in terms of TSF of the BSS of the requesting AP). If the
    request mode is table, this information is optional.
    In addition, the radio measurement request specifies the channel
    dwell time for the measurement.

    In order to use scan for beacon report when the mode is active or
    passive, add a parameter to scan request that specifies the
    channel dwell time, and add scan start time and beacon received time
    to scan results information.

    Supporting beacon report is required for Multi Band Operation (MBO).

    Signed-off-by: Assaf Krauss
    Signed-off-by: David Spinadel
    Signed-off-by: Avraham Stern
    Signed-off-by: Luca Coelho
    Signed-off-by: Johannes Berg

    Avraham Stern
     

26 Jun, 2016

1 commit


23 Jun, 2016

1 commit


18 Jun, 2016

2 commits

  • This reverts commit b5e12ec38331 ("Staging: rtl8188eu: rtw_efuse: Use
    sizeof type *pointer instead of sizeof type.").

    This commit is wrong, the rtw_malloc2d helper function takes the size of
    the array elements as its 3th argument, whereas sizeof(*eFuseWord)
    gives the size of a pointer instead of the size of a u16.

    Since sizeof(void *) > sizeof(u16) this has no adverse effects, but it
    is still wrong.

    Cc: Sandhya Bankar
    Signed-off-by: Hans de Goede
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • This reverts commit 99aded71b52c ("Staging: drivers: rtl8188eu: use
    sizeof(*ptr) instead of sizeof(struct)").

    This commit is wrong, as adapt->HalData has a type of "void *", so
    now we are allocating a much to small struct, which causes the driver
    to overwrite random memory which leads to a non working driver and
    various system crashes.

    Cc: Jacky Boen
    Signed-off-by: Hans de Goede
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

12 Jun, 2016

2 commits

  • Correctly handle the settling time cycles value. The else branch is an
    impossible condition, > 1022 in the else branch of > 511. Flipping the order.

    Based on the Table 13 at the bottom of Page 25 of the Data Sheet:
    http://www.analog.com/media/en/technical-documentation/data-sheets/AD5933.pdf

    Signed-off-by: Luis de Bethencourt
    Reviewed-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron

    Luis de Bethencourt
     
  • As pointed out by Geert Uytterhoeven, the patch was incorrect
    and breaks the driver, which was fortunately pointed out by
    this gcc warning:

    drivers/staging/iio/adc/ad7606_spi.c: In function ‘ad7606_spi_read_block’:
    drivers/staging/iio/adc/ad7606_spi.c:34: warning: ‘data’ is used uninitialized in this function

    The effect of the patch is that the data is copied into
    a random memory location (from the uninitialized pointer)
    instead of being byteswapped in place.

    This adds the initialization for the 'data' variable back
    to restore the original behavior.

    Cc: Ksenija Stanojevic
    Fixes: 87787e5ef727 ("Staging: iio: Fix sparse endian warning")
    Signed-off-by: Arnd Bergmann
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Cameron

    Arnd Bergmann
     

10 Jun, 2016

1 commit

  • In kiblnd_passive_connect(), if we are failing the connection
    attempt because we cannot find a valid NI (we have a NULL NI),
    we were coring after the "goto fail" because the failure
    path was assuming non-NULL NI.

    This patch ensures we don't dereference a NULL NI on that
    failure path.

    Signed-off-by: Doug Oucharek
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8022
    Reviewed-on: http://review.whamcloud.com/19614
    Reviewed-by: Dmitry Eremin
    Reviewed-by: James Simmons
    Reviewed-by: Matt Ezell
    Reviewed-by: Oleg Drokin
    Signed-off-by: Greg Kroah-Hartman

    Doug Oucharek
     

29 May, 2016

1 commit

  • Pull more rdma updates from Doug Ledford:
    "This is the second group of code for the 4.7 merge window. It looks
    large, but only in one sense. I'll get to that in a minute. The list
    of changes here breaks down as follows:

    - Dynamic counter infrastructure in the IB drivers

    This is a sysfs based code to allow free form access to the
    hardware counters RDMA devices might support so drivers don't need
    to code this up repeatedly themselves

    - SendOnlyFullMember multicast support

    - IB router support

    - A couple misc fixes

    - The big item on the list: hfi1 driver updates, plus moving the hfi1
    driver out of staging

    There was a group of 15 patches in the hfi1 list that I thought I had
    in the first pull request but they weren't. So that added to the
    length of the hfi1 section here.

    As far as these go, everything but the hfi1 is pretty straight
    forward.

    The hfi1 is, if you recall, the driver that Al had complaints about
    how it used the write/writev interfaces in an overloaded fashion. The
    write portion of their interface behaved like the write handler in the
    IB stack proper and did bi-directional communications. The writev
    interface, on the other hand, only accepts SDMA request structures.
    The completions for those structures are sent back via an entirely
    different event mechanism.

    With the security patch, we put security checks on the write
    interface, however, we also knew they would be going away soon. Now,
    we've converted the write handler in the hfi1 driver to use ioctls
    from the IB reserved magic area for its bidirectional communications.
    With that change, Intel has addressed all of the items originally on
    their TODO when they went into staging (as well as many items added to
    the list later).

    As such, I moved them out, and since they were the last item in the
    staging/rdma directory, and I don't have immediate plans to use the
    staging area again, I removed the staging/rdma area.

    Because of the move out of staging, as well as a series of 5 patches
    in the hfi1 driver that removed code people thought should be done in
    a different way and was optional to begin with (a snoop debug
    interface, an eeprom driver for an eeprom connected directory to their
    hfi1 chip and not via an i2c bus, and a few other things like that),
    the line count, especially the removal count, is high"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (56 commits)
    staging/rdma: Remove the entire rdma subdirectory of staging
    IB/core: Make device counter infrastructure dynamic
    IB/hfi1: Fix pio map initialization
    IB/hfi1: Correct 8051 link parameter settings
    IB/hfi1: Update pkey table properly after link down or FM start
    IB/rdamvt: Fix rdmavt s_ack_queue sizing
    IB/rdmavt: Max atomic value should be a u8
    IB/hfi1: Fix hard lockup due to not using save/restore spin lock
    IB/hfi1: Add tracing support for send with invalidate opcode
    IB/hfi1, qib: Add ieth to the packet header definitions
    IB/hfi1: Move driver out of staging
    IB/hfi1: Do not free hfi1 cdev parent structure early
    IB/hfi1: Add trace message in user IOCTL handling
    IB/hfi1: Remove write(), use ioctl() for user cmds
    IB/hfi1: Add ioctl() interface for user commands
    IB/hfi1: Remove unused user command
    IB/hfi1: Remove snoop/diag interface
    IB/hfi1: Remove EPROM functionality from data device
    IB/hfi1: Remove UI char device
    IB/hfi1: Remove multiple device cdev
    ...

    Linus Torvalds
     

28 May, 2016

1 commit

  • smack ->d_instantiate() uses ->setxattr(), so to be able to call it before
    we'd hashed the new dentry and attached it to inode, we need ->setxattr()
    instances getting the inode as an explicit argument rather than obtaining
    it from dentry.

    Similar change for ->getxattr() had been done in commit ce23e64. Unlike
    ->getxattr() (which is used by both selinux and smack instances of
    ->d_instantiate()) ->setxattr() is used only by smack one and unfortunately
    it got missed back then.

    Reported-by: Seung-Woo Kim
    Tested-by: Casey Schaufler
    Signed-off-by: Al Viro

    Al Viro
     

27 May, 2016

1 commit


26 May, 2016

15 commits

  • The TODO list for the hfi1 driver was completed during 4.6. In addition
    other objections raised (which are far beyond what was in the TODO list)
    have been addressed as well. It is now time to remove the driver from
    staging and into the drivers/infiniband sub-tree.

    Reviewed-by: Jubin John
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • The deletion of a cdev is not a fence for holding off references to the
    structure. The driver attempts to delete the cdev and then proceeds to
    free the parent structure, the hfi1_devdata, or dd. This can potentially
    lead to a kernel panic in situations where a user has an FD for the cdev
    open, and the pci device gets removed. If the user then closes the FD
    there will be a NULL dereference when trying to do put on the cdev's
    kobject.

    Fix this by pointing the cdev's kobject.parent at a new kobject embedded
    in its parent structure. Also take a reference when the device is opened
    and put it back when it is closed.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Add a trace message to HFI1s user IOCTL handling. This allows debugging
    of which IOCTLs are being handled by the driver.

    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Remove the write() handler for user space commands now that ioctl
    handling is available. User apps will need to change to use ioctl from
    this point forward.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • IOCTL is more suited to what user space commands need to do than the
    write() interface. Add IOCTL definitions for all existing write commands
    and the handling for those. The write() interface will be removed in a
    follow on patch.

    Reviewed-by: Mitko Haralanov
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • The HFI1_CMD_SDMA_STATUS_UPD command was never implemented it has no
    reason to live in the driver. Remove it.

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Mitko Haralanov
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • The snoop/diag interface is better served by an implementation which is
    more general and usable by other drivers perhaps. Go ahead and remove
    the code now and get rid of the char dev. We can put the feature back
    when we have a more agreeable solution.

    Reviewed-by: Dean Luick
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Remove EPROM handling from the cdev which is used for user application
    data traffic.

    Reviewed-by: Dean Luick
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Remove UI char device which exposes direct access to registers for user
    space. This was put in to aid in debugging the hardware. We are looking
    into alternatives means of providing the same functionality. This
    removes another char device from HFI1's footprint.

    Reviewed-by: Dean Luick
    Reviewed-by: Mitko Haralanov
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • hfi1 current exports a cdev that can be used to target all of the hfi's
    in the system. However there is a problem with this approach in
    that the devices could be on different subnets. This is a problem that
    user space can figure out and explicitly tell the driver on which device
    to create a context.

    Remove the multi-purpose cdev leaving a dedicated cdev for each port.
    Also remove the striping capability that is dependent upon the user
    choosing the multi-purpose cdev. It is now up to user space to determine
    how to stripe contexts.

    Reviewed-by: Dean Luick
    Reviewed-by: Mitko Haralanov
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Remove the usage of an anti-pattern goto in hfi1_cdev_init to improve
    code readability.

    Suggested-by: Jason Gunthorpe
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • During the processing of a user SDMA request, if there was an
    error before the request counter was increased, the state of
    the packet queue could be updated incorrectly, causing the
    counter to underflow. As the result, the process could get
    stuck later since the counter could never get back to 0.

    This patch adds a condition to guard the packet queue update
    so that the counter is only decreased if it has been increased
    before the error happens.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Jianxin Xiong
    Signed-off-by: Doug Ledford

    Jianxin Xiong
     
  • This comment was old, the MTU enums have been defined.

    Reviewed-by: Mitko Haralanov
    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Ira Weiny
     
  • sdma_event_names[] is only used within CONFIG_SDMA_VERBOSITY ifdefs, so
    when CONFIG_SDMA_VERBOSITY is disabled, it results in the following
    0-day build warning:
    >> drivers/infiniband/hw/hfi1/sdma.c:137:27: warning: 'sdma_event_names'
    >> defined but not used [-Wunused-const-variable=]
    static const char * const sdma_event_names[] = {
    ^~~~~~~~~~~~~~~~
    This occurs on the following compiler:
    compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430

    For more information check:
    https://lists.01.org/pipermail/kbuild-all/2016-May/020060.html

    Fix this warning by defining sdma_event_name[] only within the
    CONFIG_SDMA_VERBOSITY ifdefs.

    Reported-by: kbuild test robot
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Jubin John
    Signed-off-by: Doug Ledford

    Jubin John
     
  • Commit e88c9271d9f8 ("IB/hfi1: Fix buffer cache corner case which
    may cause corruption") introduced a bug which may cause a reference
    count of a interval RB node to be leaked in the case where an SDMA
    transfer from that node completes at the same time as the node is
    being extended.

    If a node is being extended, it is first removed from the RB tree
    in order to be processed without the risk of an invalidation event
    removing the node at the same time.

    If a SDMA completion happens during that time, the completion handler
    will fail to find the node in the RB tree and, therefore, fail to
    correctly decrement its refcount. This leaves the node in the tree and
    its pages pinned for the duration of the user process.

    To prevent this from happening the io vector adds a reference to the
    RB node, which is used during the SDMA completion instead of looking
    up the node in the RB tree.

    This change adds a performance improvement as a side effect by avoiding
    the RB tree lookup.

    Fixes: e88c9271d9f8 ("IB/hfi1: Fix buffer cache corner case which may cause corruption")
    Reviewed-by: Dean Luick
    Reviewed-by: Harish Chegondi
    Signed-off-by: Mitko Haralanov
    Signed-off-by: Doug Ledford

    Mitko Haralanov
     

25 May, 2016

1 commit

  • Pull MTD updates from Brian Norris:
    "First cycle with Boris as NAND maintainer! Many (most) bullets stolen
    from him.

    Generic:
    - Migrated NAND LED trigger to be a generic MTD trigger

    NAND:
    - Introduction of the "ECC algorithm" concept, to avoid overloading
    the ECC mode field too much more
    - Replaced the nand_ecclayout infrastructure with something a little
    more flexible (finally!) and future proof
    - Rework of the OMAP GPMC and NAND drivers; the TI folks pulled some
    of this into their own tree as well
    - Prepare the sunxi NAND driver to receive DMA support
    - Handle bitflips in erased pages on GPMI revisions that do not
    support this in hardware.

    SPI NOR:
    - Start using the spi_flash_read() API for SPI drivers that support
    it (i.e., SPI drivers with special memory-mapped flash modes)

    And other small scattered improvments"

    * tag 'for-linus-20160523' of git://git.infradead.org/linux-mtd: (155 commits)
    mtd: spi-nor: support GigaDevice gd25lq64c
    mtd: nand_bch: fix spelling of "probably"
    mtd: brcmnand: respect ECC algorithm set by NAND subsystem
    gpmi-nand: Handle ECC Errors in erased pages
    Documentation: devicetree: deprecate "soft_bch" nand-ecc-mode value
    mtd: nand: add support for "nand-ecc-algo" DT property
    mtd: mtd: drop NAND_ECC_SOFT_BCH enum value
    mtd: drop support for NAND_ECC_SOFT_BCH as "soft_bch" mapping
    mtd: nand: read ECC algorithm from the new field
    mtd: nand: fsmc: validate ECC setup by checking algorithm directly
    mtd: nand: set ECC algorithm to Hamming on fallback
    staging: mt29f_spinand: set ECC algorithm explicitly
    CRIS v32: nand: set ECC algorithm explicitly
    mtd: nand: atmel: set ECC algorithm explicitly
    mtd: nand: davinci: set ECC algorithm explicitly
    mtd: nand: bf5xx: set ECC algorithm explicitly
    mtd: nand: omap2: Fix high memory dma prefetch transfer
    mtd: nand: omap2: Start dma request before enabling prefetch
    mtd: nandsim: add __init attribute
    mtd: nand: move of_get_nand_xxx() helpers into nand_base.c
    ...

    Linus Torvalds
     

21 May, 2016

3 commits

  • Pull staging and IIO driver updates from Greg KH:
    "Here's the big staging and iio driver update for 4.7-rc1.

    I think we almost broke even with this release, only adding a few more
    lines than we removed, which isn't bad overall given that there's a
    bunch of new iio drivers added.

    The Lustre developers seem to have woken up from their sleep and have
    been doing a great job in cleaning up the code and pruning unused or
    old cruft, the filesystem is almost readable :)

    Other than that, just a lot of basic coding style cleanups in the
    churn. All have been in linux-next for a while with no reported
    issues"

    * tag 'staging-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (938 commits)
    Staging: emxx_udc: emxx_udc: fixed coding style issue
    staging/gdm724x: fix "alignment should match open parenthesis" issues
    staging/gdm724x: Fix avoid CamelCase
    staging: unisys: rename misleading var ii with frag
    staging: unisys: visorhba: switch success handling to error handling
    staging: unisys: visorhba: main path needs to flow down the left margin
    staging: unisys: visorinput: handle_locking_key() simplifications
    staging: unisys: visorhba: fail gracefully for thread creation failures
    staging: unisys: visornic: comment restructuring and removing bad diction
    staging: unisys: fix format string %Lx to %llx for u64
    staging: unisys: remove unused struct members
    staging: unisys: visorchannel: correct variable misspelling
    staging: unisys: visorhba: replace functionlike macro with function
    staging: dgnc: Need to check for NULL of ch
    staging: dgnc: remove redundant condition check
    staging: dgnc: fix 'line over 80 characters'
    staging: dgnc: clean up the dgnc_get_modem_info()
    staging: lustre: lnet: enable configuration per NI interface
    staging: lustre: o2iblnd: properly set ibr_why
    staging: lustre: o2iblnd: remove last of kiblnd_tunables_fini
    ...

    Linus Torvalds
     
  • Pull tty and serial driver updates from Greg KH:
    "Here's the large TTY and Serial driver update for 4.7-rc1.

    A few new serial drivers are added here, and Peter has fixed a bunch
    of long-standing bugs in the tty layer and serial drivers as normal.
    Full details in the shortlog.

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

    * tag 'tty-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (88 commits)
    MAINTAINERS: 8250: remove website reference
    serial: core: Fix port mutex assert if lockdep disabled
    serial: 8250_dw: fix wrong logic in dw8250_check_lcr()
    tty: vt, finish looping on duplicate
    tty: vt, return error when con_startup fails
    QE-UART: add "fsl,t1040-ucc-uart" to of_device_id
    serial: mctrl_gpio: Drop support for out1-gpios and out2-gpios
    serial: 8250dw: Add device HID for future AMD UART controller
    Fix OpenSSH pty regression on close
    serial: mctrl_gpio: add IRQ locking
    serial: 8250: Integrate Fintek into 8250_base
    serial: mps2-uart: add support for early console
    serial: mps2-uart: add MPS2 UART driver
    dt-bindings: document the MPS2 UART bindings
    serial: sirf: Use generic uart-has-rtscts DT property
    serial: sirf: Introduce helper variable struct device_node *np
    serial: mxs-auart: Use generic uart-has-rtscts DT property
    serial: imx: Use generic uart-has-rtscts DT property
    doc: DT: Add Generic Serial Device Tree Bindings
    serial: 8250: of: Make tegra_serial_handle_break() static
    ...

    Linus Torvalds
     
  • Pull rdma updates from Doug Ledford:
    "Primary 4.7 merge window changes

    - Updates to the new Intel X722 iWARP driver
    - Updates to the hfi1 driver
    - Fixes for the iw_cxgb4 driver
    - Misc core fixes
    - Generic RDMA READ/WRITE API addition
    - SRP updates
    - Misc ipoib updates
    - Minor mlx5 updates"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (148 commits)
    IB/mlx5: Fire the CQ completion handler from tasklet
    net/mlx5_core: Use tasklet for user-space CQ completion events
    IB/core: Do not require CAP_NET_ADMIN for packet sniffing
    IB/mlx4: Fix unaligned access in send_reply_to_slave
    IB/mlx5: Report Scatter FCS device capability when supported
    IB/mlx5: Add Scatter FCS support for Raw Packet QP
    IB/core: Add Scatter FCS create flag
    IB/core: Add Raw Scatter FCS device capability
    IB/core: Add extended device capability flags
    i40iw: pass hw_stats by reference rather than by value
    i40iw: Remove unnecessary synchronize_irq() before free_irq()
    i40iw: constify i40iw_vf_cqp_ops structure
    IB/mlx5: Add UARs write-combining and non-cached mapping
    IB/mlx5: Allow mapping the free running counter on PROT_EXEC
    IB/mlx4: Use list_for_each_entry_safe
    IB/SA: Use correct free function
    IB/core: Fix a potential array overrun in CMA and SA agent
    IB/core: Remove unnecessary check in ibnl_rcv_msg
    IB/IWPM: Fix a potential skb leak
    RDMA/nes: replace custom print_hex_dump()
    ...

    Linus Torvalds
     

20 May, 2016

1 commit


19 May, 2016

1 commit

  • Pull media updates from Mauro Carvalho Chehab:
    - added support for Intersil/Techwell TW686x-based video capture cards
    - v4l PCI skeleton driver moved to samples directory
    - Documentation cleanups and improvements
    - RC: reduced the memory footprint for IR raw events
    - tpg: Export the tpg code from vivid as a module
    - adv7180: Add device tree binding documentation
    - lots of driver improvements and fixes

    * tag 'media/v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (173 commits)
    [media] exynos-gsc: avoid build warning without CONFIG_OF
    [media] samples: v4l: from Documentation to samples directory
    [media] dib0700: add USB ID for another STK8096-PVR ref design based card
    [media] tvp5150: propagate I2C write error in .s_register callback
    [media] tvp5150: return I2C write operation failure to callers
    [media] em28xx: add support for Hauppauge WinTV-dualHD DVB tuner
    [media] em28xx: add missing USB IDs
    [media] update cx23885 and em28xx cardlists
    [media] media: au0828 fix au0828_v4l2_device_register() to not unlock and free
    [media] c8sectpfe: Rework firmware loading mechanism
    [media] c8sectpfe: Demote print to dev_dbg
    [media] c8sectpfe: Fix broken circular buffer wp management
    [media] media-device: Simplify compat32 logic
    [media] media: i2c: ths7303: remove redundant assignment on bt
    [media] dvb-usb: hide unused functions
    [media] xilinx-vipp: remove unnecessary of_node_put
    [media] drivers/media/media-devnode: clear private_data before put_device()
    [media] drivers/media/media-device: move debug log before _devnode_unregister()
    [media] drivers/media/rc: postpone kfree(rc_dev)
    [media] media/dvb-core: forward media_create_pad_links() return value
    ...

    Linus Torvalds
     

18 May, 2016

4 commits

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for kernel cycle v4.7:

    Core infrastructural changes:

    - Support for natively single-ended GPIO driver stages.

    This means that if the hardware has registers to configure open
    drain or open source configuration, we use that rather than (as we
    did before) try to emulate it by switching the line to an input to
    get high impedance.

    This is also documented throughly in Documentation/gpio/driver.txt
    for those of you who did not understand one word of what I just
    wrote.

    - Start to do away with the unnecessarily complex and unitelligible
    ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB, another
    evolutional artifact from the time when the GPIO subsystem was
    unmaintained.

    Archs can now just select GPIOLIB and be done with it, cleanups to
    arches will trickle in for the next kernel. Some minor archs ACKed
    the changes immediately so these are included in this pull request.

    - Advancing the use of the data pointer inside the GPIO device for
    storing driver data by switching the PowerPC, Super-H Unicore and
    a few other subarches or subsystem drivers in ALSA SoC, Input,
    serial, SSB, staging etc to use it.

    - The initialization now reads the input/output state of the GPIO
    lines, so that each GPIO descriptor knows - if this callback is
    implemented - whether the line is input or output. This also
    reflects nicely in userspace "lsgpio".

    - It is now possible to name GPIO producer names, line names, from
    the device tree. (Platform data has been supported for a while).
    I bet we will get a similar mechanism for ACPI one of those days.
    This makes is possible to get sensible producer names for e.g.
    GPIO rails in "lsgpio" in userspace.

    New drivers:

    - New driver for the Loongson1.

    - The XLP driver now supports Broadcom Vulcan ARM64.

    - The IT87 driver now supports IT8620 and IT8628.

    - The PCA953X driver now supports Galileo Gen2.

    Driver improvements:

    - MCP23S08 was switched to use the gpiolib irqchip helpers and now
    also suppors level-triggered interrupts.

    - 74x164 and RCAR now supports the .set_multiple() callback

    - AMDPT was converted to use generic GPIO.

    - TC3589x, TPS65218, SX150X, F7188X, MENZ127, VX855, WM831X, WM8994
    support the new single ended callback for open drain and in some
    cases open source.

    - Implement the .get_direction() callback for a few more drivers like
    PL061, Xgene.

    Cleanups:

    - Paul Gortmaker combed through the drivers and de-modularized those
    who are not really modules.

    - Move the GPIO poweroff DT bindings to the power subdir where they
    belong.

    - Rename gpio-generic.c to gpio-mmio.c, which is much more to the
    point. That's what it is handling, nothing more, nothing less"

    * tag 'gpio-v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (126 commits)
    MIPS: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
    gpio: zevio: make it explicitly non-modular
    gpio: timberdale: make it explicitly non-modular
    gpio: stmpe: make it explicitly non-modular
    gpio: sodaville: make it explicitly non-modular
    pinctrl: sh-pfc: Let gpio_chip.to_irq() return zero on error
    gpio: dwapb: Add ACPI device ID for DWAPB GPIO controller on X-Gene platforms
    gpio: dt-bindings: add wd,mbl-gpio bindings
    gpio: of: make it possible to name GPIO lines
    gpio: make gpiod_to_irq() return negative for NO_IRQ
    gpio: xgene: implement .get_direction()
    gpio: xgene: Enable ACPI support for X-Gene GFC GPIO driver
    gpio: tegra: Implement gpio_get_direction callback
    gpio: set up initial state from .get_direction()
    gpio: rename gpio-generic.c into gpio-mmio.c
    gpio: generic: fix GPIO_GENERIC_PLATFORM is set to module case
    gpio: dwapb: add gpio-signaled acpi event support
    gpio: dwapb: convert device node to fwnode
    gpio: dwapb: remove name from dwapb_port_property
    gpio/qoriq: select IRQ_DOMAIN
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    1) Support SPI based w5100 devices, from Akinobu Mita.

    2) Partial Segmentation Offload, from Alexander Duyck.

    3) Add GMAC4 support to stmmac driver, from Alexandre TORGUE.

    4) Allow cls_flower stats offload, from Amir Vadai.

    5) Implement bpf blinding, from Daniel Borkmann.

    6) Optimize _ASYNC_ bit twiddling on sockets, unless the socket is
    actually using FASYNC these atomics are superfluous. From Eric
    Dumazet.

    7) Run TCP more preemptibly, also from Eric Dumazet.

    8) Support LED blinking, EEPROM dumps, and rxvlan offloading in mlx5e
    driver, from Gal Pressman.

    9) Allow creating ppp devices via rtnetlink, from Guillaume Nault.

    10) Improve BPF usage documentation, from Jesper Dangaard Brouer.

    11) Support tunneling offloads in qed, from Manish Chopra.

    12) aRFS offloading in mlx5e, from Maor Gottlieb.

    13) Add RFS and RPS support to SCTP protocol, from Marcelo Ricardo
    Leitner.

    14) Add MSG_EOR support to TCP, this allows controlling packet
    coalescing on application record boundaries for more accurate
    socket timestamp sampling. From Martin KaFai Lau.

    15) Fix alignment of 64-bit netlink attributes across the board, from
    Nicolas Dichtel.

    16) Per-vlan stats in bridging, from Nikolay Aleksandrov.

    17) Several conversions of drivers to ethtool ksettings, from Philippe
    Reynes.

    18) Checksum neutral ILA in ipv6, from Tom Herbert.

    19) Factorize all of the various marvell dsa drivers into one, from
    Vivien Didelot

    20) Add VF support to qed driver, from Yuval Mintz"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1649 commits)
    Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m"
    Revert "phy dp83867: Make rgmii parameters optional"
    r8169: default to 64-bit DMA on recent PCIe chips
    phy dp83867: Make rgmii parameters optional
    phy dp83867: Fix compilation with CONFIG_OF_MDIO=m
    bpf: arm64: remove callee-save registers use for tmp registers
    asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions
    switchdev: pass pointer to fib_info instead of copy
    net_sched: close another race condition in tcf_mirred_release()
    tipc: fix nametable publication field in nl compat
    drivers: net: Don't print unpopulated net_device name
    qed: add support for dcbx.
    ravb: Add missing free_irq() calls to ravb_close()
    qed: Remove a stray tab
    net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fec-mpc52xx: use phydev from struct net_device
    bpf, doc: fix typo on bpf_asm descriptions
    stmmac: hardware TX COE doesn't work when force_thresh_dma_mode is set
    net: ethernet: fs-enet: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fs-enet: use phydev from struct net_device
    ...

    Linus Torvalds
     
  • Pull vfs cleanups from Al Viro:
    "More cleanups from Christoph"

    * 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    nfsd: use RWF_SYNC
    fs: add RWF_DSYNC aand RWF_SYNC
    ceph: use generic_write_sync
    fs: simplify the generic_write_sync prototype
    fs: add IOCB_SYNC and IOCB_DSYNC
    direct-io: remove the offset argument to dio_complete
    direct-io: eliminate the offset argument to ->direct_IO
    xfs: eliminate the pos variable in xfs_file_dio_aio_write
    filemap: remove the pos argument to generic_file_direct_write
    filemap: remove pos variables in generic_file_read_iter

    Linus Torvalds
     
  • Pull parallel filesystem directory handling update from Al Viro.

    This is the main parallel directory work by Al that makes the vfs layer
    able to do lookup and readdir in parallel within a single directory.
    That's a big change, since this used to be all protected by the
    directory inode mutex.

    The inode mutex is replaced by an rwsem, and serialization of lookups of
    a single name is done by a "in-progress" dentry marker.

    The series begins with xattr cleanups, and then ends with switching
    filesystems over to actually doing the readdir in parallel (switching to
    the "iterate_shared()" that only takes the read lock).

    A more detailed explanation of the process from Al Viro:
    "The xattr work starts with some acl fixes, then switches ->getxattr to
    passing inode and dentry separately. This is the point where the
    things start to get tricky - that got merged into the very beginning
    of the -rc3-based #work.lookups, to allow untangling the
    security_d_instantiate() mess. The xattr work itself proceeds to
    switch a lot of filesystems to generic_...xattr(); no complications
    there.

    After that initial xattr work, the series then does the following:

    - untangle security_d_instantiate()

    - convert a bunch of open-coded lookup_one_len_unlocked() to calls of
    that thing; one such place (in overlayfs) actually yields a trivial
    conflict with overlayfs fixes later in the cycle - overlayfs ended
    up switching to a variant of lookup_one_len_unlocked() sans the
    permission checks. I would've dropped that commit (it gets
    overridden on merge from #ovl-fixes in #for-next; proper resolution
    is to use the variant in mainline fs/overlayfs/super.c), but I
    didn't want to rebase the damn thing - it was fairly late in the
    cycle...

    - some filesystems had managed to depend on lookup/lookup exclusion
    for *fs-internal* data structures in a way that would break if we
    relaxed the VFS exclusion. Fixing hadn't been hard, fortunately.

    - core of that series - parallel lookup machinery, replacing
    ->i_mutex with rwsem, making lookup_slow() take it only shared. At
    that point lookups happen in parallel; lookups on the same name
    wait for the in-progress one to be done with that dentry.

    Surprisingly little code, at that - almost all of it is in
    fs/dcache.c, with fs/namei.c changes limited to lookup_slow() -
    making it use the new primitive and actually switching to locking
    shared.

    - parallel readdir stuff - first of all, we provide the exclusion on
    per-struct file basis, same as we do for read() vs lseek() for
    regular files. That takes care of most of the needed exclusion in
    readdir/readdir; however, these guys are trickier than lookups, so
    I went for switching them one-by-one. To do that, a new method
    '->iterate_shared()' is added and filesystems are switched to it
    as they are either confirmed to be OK with shared lock on directory
    or fixed to be OK with that. I hope to kill the original method
    come next cycle (almost all in-tree filesystems are switched
    already), but it's still not quite finished.

    - several filesystems get switched to parallel readdir. The
    interesting part here is dealing with dcache preseeding by readdir;
    that needs minor adjustment to be safe with directory locked only
    shared.

    Most of the filesystems doing that got switched to in those
    commits. Important exception: NFS. Turns out that NFS folks, with
    their, er, insistence on VFS getting the fuck out of the way of the
    Smart Filesystem Code That Knows How And What To Lock(tm) have
    grown the locking of their own. They had their own homegrown
    rwsem, with lookup/readdir/atomic_open being *writers* (sillyunlink
    is the reader there). Of course, with VFS getting the fuck out of
    the way, as requested, the actual smarts of the smart filesystem
    code etc. had become exposed...

    - do_last/lookup_open/atomic_open cleanups. As the result, open()
    without O_CREAT locks the directory only shared. Including the
    ->atomic_open() case. Backmerge from #for-linus in the middle of
    that - atomic_open() fix got brought in.

    - then comes NFS switch to saner (VFS-based ;-) locking, killing the
    homegrown "lookup and readdir are writers" kinda-sorta rwsem. All
    exclusion for sillyunlink/lookup is done by the parallel lookups
    mechanism. Exclusion between sillyunlink and rmdir is a real rwsem
    now - rmdir being the writer.

    Result: NFS lookups/readdirs/O_CREAT-less opens happen in parallel
    now.

    - the rest of the series consists of switching a lot of filesystems
    to parallel readdir; in a lot of cases ->llseek() gets simplified
    as well. One backmerge in there (again, #for-linus - rockridge
    fix)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (74 commits)
    ext4: switch to ->iterate_shared()
    hfs: switch to ->iterate_shared()
    hfsplus: switch to ->iterate_shared()
    hostfs: switch to ->iterate_shared()
    hpfs: switch to ->iterate_shared()
    hpfs: handle allocation failures in hpfs_add_pos()
    gfs2: switch to ->iterate_shared()
    f2fs: switch to ->iterate_shared()
    afs: switch to ->iterate_shared()
    befs: switch to ->iterate_shared()
    befs: constify stuff a bit
    isofs: switch to ->iterate_shared()
    get_acorn_filename(): deobfuscate a bit
    btrfs: switch to ->iterate_shared()
    logfs: no need to lock directory in lseek
    switch ecryptfs to ->iterate_shared
    9p: switch to ->iterate_shared()
    fat: switch to ->iterate_shared()
    romfs, squashfs: switch to ->iterate_shared()
    more trivial ->iterate_shared conversions
    ...

    Linus Torvalds
     

17 May, 2016

1 commit


14 May, 2016

2 commits