1. 03 Dec, 2014 15 commits
  2. 02 Dec, 2014 3 commits
  3. 01 Dec, 2014 6 commits
    • David Howells's avatar
      KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED · 0b0a8415
      David Howells authored
      Since the keyring facility can be viewed as a cache (at least in some
      applications), the local expiration time on the key should probably be viewed
      as a 'needs updating after this time' property rather than an absolute 'anyone
      now wanting to use this object is out of luck' property.
      
      Since request_key() is the main interface for the usage of keys, this should
      update or replace an expired key rather than issuing EKEYEXPIRED if the local
      expiration has been reached (ie. it should refresh the cache).
      
      For absolute conditions where refreshing the cache probably doesn't help, the
      key can be negatively instantiated using KEYCTL_REJECT_KEY with EKEYEXPIRED
      given as the error to issue.  This will still cause request_key() to return
      EKEYEXPIRED as that was explicitly set.
      
      In the future, if the key type has an update op available, we might want to
      upcall with the expired key and allow the upcall to update it.  We would pass
      a different operation name (the first column in /etc/request-key.conf) to the
      request-key program.
      
      request_key() returning EKEYEXPIRED is causing an NFS problem which Chuck
      Lever describes thusly:
      
      	After about 10 minutes, my NFSv4 functional tests fail because the
      	ownership of the test files goes to "-2". Looking at /proc/keys
      	shows that the id_resolv keys that map to my test user ID have
      	expired. The ownership problem persists until the expired keys are
      	purged from the keyring, and fresh keys are obtained.
      
      	I bisected the problem to 3.13 commit b2a4df20 ("KEYS: Expand
      	the capacity of a keyring"). This commit inadvertantly changes the
      	API contract of the internal function keyring_search_aux().
      
      	The root cause appears to be that b2a4df20 made "no state check"
      	the default behavior. "No state check" means the keyring search
      	iterator function skips checking the key's expiry timeout, and
      	returns expired keys.  request_key_and_link() depends on getting
      	an -EAGAIN result code to know when to perform an upcall to refresh
      	an expired key.
      
      This patch can be tested directly by:
      
      	keyctl request2 user debug:fred a @s
      	keyctl timeout %user:debug:fred 3
      	sleep 4
      	keyctl request2 user debug:fred a @s
      
      Without the patch, the last command gives error EKEYEXPIRED, but with the
      command it gives a new key.
      Reported-by: default avatarCarl Hetherington <cth@carlh.net>
      Reported-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarChuck Lever <chuck.lever@oracle.com>
      0b0a8415
    • David Howells's avatar
      KEYS: Simplify KEYRING_SEARCH_{NO,DO}_STATE_CHECK flags · 054f6180
      David Howells authored
      Simplify KEYRING_SEARCH_{NO,DO}_STATE_CHECK flags to be two variations of the
      same flag.  They are effectively mutually exclusive and one or the other
      should be provided, but not both.
      
      Keyring cycle detection and key possession determination are the only things
      that set NO_STATE_CHECK, except that neither flag really does anything there
      because neither purpose makes use of the keyring_search_iterator() function,
      but rather provides their own.
      
      For cycle detection we definitely want to check inside of expired keyrings,
      just so that we don't create a cycle we can't get rid of.  Revoked keyrings
      are cleared at revocation time and can't then be reused, so shouldn't be a
      problem either way.
      
      For possession determination, we *might* want to validate each keyring before
      searching it: do you possess a key that's hidden behind an expired or just
      plain inaccessible keyring?  Currently, the answer is yes.  Note that you
      cannot, however, possess a key behind a revoked keyring because they are
      cleared on revocation.
      
      keyring_search() sets DO_STATE_CHECK, which is correct.
      
      request_key_and_link() currently doesn't specify whether to check the key
      state or not - but it should set DO_STATE_CHECK.
      
      key_get_instantiation_authkey() also currently doesn't specify whether to
      check the key state or not - but it probably should also set DO_STATE_CHECK.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarChuck Lever <chuck.lever@oracle.com>
      054f6180
    • David Howells's avatar
      KEYS: Fix the size of the key description passed to/from userspace · aa9d4437
      David Howells authored
      When a key description argument is imported into the kernel from userspace, as
      happens in add_key(), request_key(), KEYCTL_JOIN_SESSION_KEYRING,
      KEYCTL_SEARCH, the description is copied into a buffer up to PAGE_SIZE in size.
      PAGE_SIZE, however, is a variable quantity, depending on the arch.  Fix this at
      4096 instead (ie. 4095 plus a NUL termination) and define a constant
      (KEY_MAX_DESC_SIZE) to this end.
      
      When reading the description back with KEYCTL_DESCRIBE, a PAGE_SIZE internal
      buffer is allocated into which the information and description will be
      rendered.  This means that the description will get truncated if an extremely
      long description it has to be crammed into the buffer with the stringified
      information.  There is no particular need to copy the description into the
      buffer, so just copy it directly to userspace in a separate operation.
      Reported-by: default avatarChristian Kastner <debian@kvr.at>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarChristian Kastner <debian@kvr.at>
      aa9d4437
    • Sebastian Ott's avatar
      s390: fix machine check handling · 2cb4a182
      Sebastian Ott authored
      Commit eb7e7d76 "s390: Replace __get_cpu_var uses" broke machine check
      handling.
      
      We copy machine check information from per-cpu to a stack variable for
      local processing. Next we should zap the per-cpu variable, not the
      stack variable.
      Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Acked-by: default avatarChristoph Lameter <cl@linux.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      2cb4a182
    • Linus Torvalds's avatar
      Linux 3.18-rc7 · 009d0431
      Linus Torvalds authored
      009d0431
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · df20ce5a
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Two i915 regressions and one dual-gpu laptop radeon fix"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon: report disconnected for LVDS/eDP with PX if ddc fails
        drm/i915: Cancel vdd off work before suspend
        drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset
      df20ce5a
  4. 30 Nov, 2014 6 commits
  5. 29 Nov, 2014 4 commits
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7a5a4f97
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Three fixlets from the ARM SoC camp:
         - correct irqdomain initialization for atmel-aic
         - correct error handling for device tree parsing in bcm controllers"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: brcmstb-l2: Fix error handling of irq_of_parse_and_map
        irqchip: bcm7120-l2: Fix error handling of irq_of_parse_and_map
        irqchip: atmel-aic: Fix irqdomain initialization
      7a5a4f97
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ed02bfa4
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of ten fixes: 8 for UFS including four static checker
        warnings, a potential null deref in the voltage regulator code, a race
        on module unload, a ref counting fix on the well known LUNs which made
        it impossible to remove the ufs module and fix to correct the
        information in pwr_info.
      
        In addition to UFS, there's a blacklist for the Intel Multi-Flex array
        which chokes on report supported operation codes and a fix to an oops
        in bnx2fc caused by shared skbs"
      
      [ For us non-SCSI people: "UFS" here is "Universal Flash Storage" not
        the filesystem.  - Linus ]
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        ufs: fix NULL dereference when no regulators are defined
        ufs: ensure clk gating work is finished before module unloading
        scsi: ufs: fix static checker warning in ufshcd_parse_clock_info
        scsi: ufs: fix static checker warning in __ufshcd_setup_clocks
        scsi: ufs: fix static checker warning in ufshcd_populate_vreg
        scsi: ufs: fix static checker errors in ufshcd_system_suspend
        ufs: fix power info after link start-up
        ufs: fix reference counting of W-LUs
        scsi: add Intel Multi-Flex to scsi scan blacklist
        bnx2fc: do not add shared skbs to the fcoe_rx_list
      ed02bfa4
    • Linus Torvalds's avatar
      Merge tag 'staging-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 88910638
      Linus Torvalds authored
      Pull staging/IIO driver fixes from Greg KH:
       "Here are some staging and IIO driver fixes for 3.18-rc7 that resolve a
        number of reported issues, and a new device id for a staging wireless
        driver.
      
        All of these have been in linux-next"
      
      * tag 'staging-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: r8188eu: Add new device ID for DLink GO-USB-N150
        staging: r8188eu: Fix scheduling while atomic error introduced in commit fadbe0cd
        iio: accel: bmc150: set low default thresholds
        iio: accel: bmc150: Fix iio_event_spec direction
        iio: accel: bmc150: Send x, y and z motion separately
        iio: accel: bmc150: Error handling when mode set fails
        iio: gyro: bmg160: Fix iio_event_spec direction
        iio: gyro: bmg160: Send x, y and z motion separately
        iio: gyro: bmg160: Don't let interrupt mode to be open drain
        iio: gyro: bmg160: Error handling when mode set fails
        iio: adc: men_z188_adc: Add terminating entry for men_z188_ids
        iio: accel: kxcjk-1013: Fix kxcjk10013_set_range
        iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
      88910638
    • Linus Torvalds's avatar
      Merge tag 'tty-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 6f93840d
      Linus Torvalds authored
      Pull tty/serial fix from Greg KH:
       "Here is a single revert for the of-serial driver that resolves a
        reported issue.
      
        This revert has been in linux-next for a while"
      
      * tag 'tty-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        Revert "serial: of-serial: add PM suspend/resume support"
      6f93840d
  6. 28 Nov, 2014 6 commits
    • Linus Torvalds's avatar
      Merge tag 'usb-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 4742eb3d
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB driver fixes and new device ids for 3.18-rc7.
      
        Full details are in the shortlog, and all of these have been in the
        linux-next tree for a while"
      
      * tag 'usb-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000
        usb: xhci: rework root port wake bits if controller isn't allowed to wakeup
        USB: xhci: Reset a halted endpoint immediately when we encounter a stall.
        Revert "xhci: clear root port wake on bits if controller isn't wake-up capable"
        USB: xhci: don't start a halted endpoint before its new dequeue is set
        USB: uas: Add no-uas quirk for Hitachi usb-3 enclosures 4971:1012
        USB: ssu100: fix overrun-error reporting
        USB: keyspan: fix overrun-error reporting
        USB: keyspan: fix tty line-status reporting
        usb: serial: ftdi_sio: add PIDs for Matrix Orbital products
        usb: dwc3: ep0: fix for dead code
        USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick
      4742eb3d
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · cba3b00d
      Linus Torvalds authored
      Pull thermal fixes from Eduardo Valentin:
       "In this -rc still very minor changes:
      
         - Lee Jones fixes compilation warning in sti thermal driver
         - Marjus Elfring removes unnecessary checks in exynos thermal driver
           (as per coccinelle)
         - Now we always update cpufreq policies, and thus get (hopefully)
           always in sync with cpufreq, thanks to Yadwinder"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
        thermal: Exynos: Deletion of unnecessary checks before two function calls
        thermal: sti: Ignore suspend/resume functions when !PM_SLEEP
        thermal: cpu_cooling: Update always cpufreq policy with thermal constraints
      cba3b00d
    • Linus Torvalds's avatar
      Merge tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 16cf45c0
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "No excitement, here are only minor fixes: an endian fix for the new
        DSD format we added in 3.18, a fix for HP mute LED, and a fix for
        Native Instrument quirk"
      
      * tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: Add big-endian DSD sample formats and fix XMOS DSD sample format
        ALSA: hda - One more HP machine needs to change mute led quirk
        ALSA: usb-audio: Use snd_usb_ctl_msg() for Native Instruments quirk
      16cf45c0
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 615b994e
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Not much interesting going on fixes-wise for us this week, as it
        should be for an -rc7.  I'm not expecting Olof to work much over
        Thanksgiving weekend, so I decided to take over again and push these
        out to you.
      
        Just four simple fixes this week:
      
         - one missing of_node_put() on armv7 based mvebu
         - forcing the USB host into the right mode on Chromebook
           (exynos5-snow)
         - enabling two important drivers for exynos_defconfig
         - fixing a noncritical bug for tegra that would cause a regression
           with common code patches queued for 3.19"
      
      * tag 'armsoc-for-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: tegra: irq: fix buggy usage of irq_data irq field
        ARM: exynos_defconfig: Enable max77802 rtc and clock drivers
        ARM: dts: Explicitly set dr_mode on exynos5250-snow
        ARM: mvebu: add missing of_node_put() call in coherency.c
      615b994e
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · e818d5ed
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Another round of relatively small ARM fixes.
      
        Thomas spotted that the strex backoff delay bit was a disable bit, so
        it needed to be clear for this to work.  Vladimir spotted that using a
        restart block for the cache flush operation would return -EINTR, which
        userspace was not expecting.  Dmitry spotted that the auxiliary
        control register accesses for Xscale were not correct"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8226/1: cacheflush: get rid of restarting block
        ARM: 8222/1: mvebu: enable strex backoff delay
        ARM: 8216/1: xscale: correct auxiliary register in suspend/resume
      e818d5ed
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2014-11-27' of git://anongit.freedesktop.org/drm-intel into drm-fixes · 21124e5c
      Dave Airlie authored
      Two regression fixes from Ville.
      
      * tag 'drm-intel-fixes-2014-11-27' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Cancel vdd off work before suspend
        drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset
      21124e5c