08 Sep, 2012

2 commits

  • ima_file_free(), called on __fput(), currently flags files that have
    changed, so that the file is re-measured. For appraising a files's
    integrity, the file's hash must be re-calculated and stored in the
    'security.ima' xattr to reflect any changes.

    This patch moves the ima_file_free() call to before releasing the file
    in preparation of ima-appraisal measuring the file and updating the
    'security.ima' xattr.

    Signed-off-by: Mimi Zohar
    Acked-by: Serge Hallyn
    Acked-by: Dmitry Kasatkin

    Mimi Zohar
     
  • This patch takes the i_mutex lock before security_inode_removexattr(),
    instead of after, in preparation of calling ima_inode_removexattr().

    Signed-off-by: Mimi Zohar
    Signed-off-by: Dmitry Kasatkin

    Mimi Zohar
     

07 Sep, 2012

1 commit

  • When running a 64-bit kernel and receiving prctls from a 32-bit
    userspace, the "-1" used as an unsigned long will end up being
    misdetected. The kernel is looking for 0xffffffffffffffff instead of
    0xffffffff. Since prctl lacks a distinct compat interface, Yama needs
    to handle this translation itself. As such, support either value as
    meaning PR_SET_PTRACER_ANY, to avoid breaking the ABI for 64-bit.

    Signed-off-by: Kees Cook
    Acked-by: John Johansen
    Cc: stable@vger.kernel.org
    Signed-off-by: James Morris

    Kees Cook
     

06 Sep, 2012

1 commit

  • Unconditionally call Yama when CONFIG_SECURITY_YAMA_STACKED is selected,
    no matter what LSM module is primary.

    Ubuntu and Chrome OS already carry patches to do this, and Fedora
    has voiced interest in doing this as well. Instead of having multiple
    distributions (or LSM authors) carrying these patches, just allow Yama
    to be called unconditionally when selected by the new CONFIG.

    Signed-off-by: Kees Cook
    Acked-by: Serge E. Hallyn
    Acked-by: Eric Paris
    Acked-by: John Johansen
    Signed-off-by: James Morris

    Kees Cook
     

05 Sep, 2012

1 commit


23 Aug, 2012

13 commits

  • The Physical Presence Interface enables the OS and the BIOS to cooperate and
    provides a simple and straightforward platform user experience for
    administering the TPM without sacrificing security.

    V2: separate the patch out in a separate source file,
    add #ifdef CONFIG_ACPI so it compiles out on ppc,
    use standard error instead of ACPI error as return code of show/store fns.
    V3: move #ifdef CONFIG_ACPI from .c file to .h file.
    V4: move tpm_ppi code from tpm module to tpm_bios module.
    V5: modify sys_add_ppi() so that ppi_attr_grp doesn't need to be exported

    Signed-off-by: Xiaoyan Zhang
    Signed-off-by: Kent Yoder

    Xiaoyan Zhang
     
  • Signed-off-by: Xiaoyan Zhang
    Signed-off-by: Kent Yoder

    Xiaoyan Zhang
     
  • In drivers/char/tpm/tpm_acpi.c::read_log() we call
    acpi_os_map_memory(). That call may fail for a number of reasons
    (invalid address, out of memory etc). If the call fails it returns
    NULL and we just pass that to memcpy() unconditionally, which will go
    bad when it tries to dereference the pointer.

    Unfortunately we just get NULL back, so we can't really tell the user
    exactely what went wrong, but we can at least avoid crashing and
    return an error (-EIO seemed more generic and more suitable here than
    -ENOMEM or something else, so I picked that).

    Signed-off-by: Jesper Juhl
    Signed-off-by: Kent Yoder

    Jesper Juhl
     
  • Enable tpm_ibmvtpm driver by default when IMA is enabled on PPC64

    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • This patch retrieves the event log data from the device tree
    during file open. The event log data will then displayed through
    securityfs.

    Signed-off-by: Ashley Lai
    Signed-off-by: Kent Yoder

    Ashley Lai
     
  • This patch instantiate Stored Measurement Log (SML) and put the
    log address and size in the device tree.

    Signed-off-by: Ashley Lai
    Signed-off-by: Kent Yoder

    Ashley Lai
     
  • This patch adds a new device driver to support IBM virtual TPM
    (vTPM) for PPC64. IBM vTPM is supported through the adjunct
    partition with firmware release 740 or higher. With vTPM
    support, each lpar is able to have its own vTPM without the
    physical TPM hardware.

    This driver provides TPM functionalities by communicating with
    the vTPM adjunct partition through Hypervisor calls (Hcalls)
    and Command/Response Queue (CRQ) commands.

    Signed-off-by: Ashley Lai
    Signed-off-by: Kent Yoder

    Ashley Lai
     
  • The tpm_tis driver doesn't use tpm_tis_resume except when PM is
    configured and doesn't make use of tpm_tis_reenable_interrupts except
    when PM or PNP is configured.

    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • Moved the atomic_set of the data_pending variable until after the
    tpm_read has completed processing. The existing code had a window of
    time where a second write to the driver could clobber the tpm command
    buffer.

    Also fixed an issue where if close was called on the tpm device before a
    read completed, the tpm command buffer would be returned to the OS,
    which could contain sensitive information.

    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • This driver will make use of any available TPM chip on the system as a
    hwrng source.

    Acked-by: David Safford
    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • Move the tpm_get_random api from the trusted keys code into the TPM
    device driver itself so that other callers can make use of it. Also,
    change the api slightly so that the number of bytes read is returned in
    the call, since the TPM command can potentially return fewer bytes than
    requested.

    Acked-by: David Safford
    Reviewed-by: H. Peter Anvin
    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • Break ACPI-specific pieces of the event log handling into their own file
    and create tpm_eventlog.[ch] to store common event log handling code.
    This will be required to integrate future event log sources on platforms
    without ACPI tables.

    Signed-off-by: Kent Yoder

    Kent Yoder
     
  • This patch adds a driver to support Infineon's SLB 9635 TT 1.2 Soft I2C TPMs
    which follow the TGC TIS 1.2 TPM specification[1] and Infineon's I2C Protocol
    Stack Specification 0.20.
    The I2C Protocol Stack Specification is a simple adaption of the LPC TIS
    Protocol to the I2C Bus.
    The I2C TPMs can be used when LPC Bus is not available (i.e. non x86
    architectures like ARM).

    The driver is based on the tpm_tis.c driver by Leendert van Dorn and Kyleen
    Hall and has quite similar functionality.

    Tested on Nvidia ARM Tegra2 Development Platform and Beagleboard (ARM OMAP)
    Tested with the Trousers[2] TSS API Testsuite v 0.3 [3]
    Compile-tested on x86 (32/64-bit)

    Updates since version 2.1.4:
    - included "Lock the I2C adapter for a sequence of requests", by Bryan Freed
    - use __i2c_transfer instead of own implementation of unlocked i2c_transfer
    - use struct dev_pm_ops for power management via SIMPLE_DEV_PM_OPS

    Updates since version 2.1.3:
    - use proper probing mechanism
    * either add the tpm using I2C_BOARD_INFO to your board file or probe it
    * during runtime e.g on BeagleBoard using :
    * "echo tpm_i2c_infineon 0x20 > /sys/bus/i2c/devices/i2c-2/new_device"
    - fix possible endless loop if hardware misbehaves
    - improved return codes
    - consistent spelling i2c/tpm -> I2C/TPM
    - remove hardcoded sleep values and msleep usage
    - removed debug statements
    - added check for I2C functionality
    - renaming to tpm_i2c_infineon

    Updates since version 2.1.2:
    - added sysfs entries for duration and timeouts
    - updated to new tpm_do_selftest

    Updates since version 2.1.0:
    - improved error handling
    - implemented workarounds needed by the tpm
    - fixed typos

    References:
    [1]
    http://www.trustedcomputinggroup.org/resources/pc_client_work_group_pc_client_
    specific_tpm_interface_specification_tis_version_12/
    [2] http://trousers.sourceforge.net/
    [3]
    http://sourceforge.net/projects/trousers/files/TSS%20API%20test%20suite/0.3/

    Reviewed-by: Andi Shyti
    Acked-by: Marcel Selhorst
    Signed-off-by: Peter Huewe
    Signed-off-by: Bryan Freed
    Signed-off-by: Kent Yoder

    Peter Huewe
     

17 Aug, 2012

11 commits

  • Linux 3.6-rc2

    Resync with Linus.

    James Morris
     
  • Linus Torvalds
     
  • Following a report of a crash during an automount expire I found that
    the locking in fs/autofs4/expire.c:get_next_positive_subdir() was wrong.
    Not only is the locking wrong but the function is more complex than it
    needs to be.

    The function is meant to calculate (and dget) the next entry in the list
    of directories contained in the root of an autofs mount point (an autofs
    indirect mount to be precise). The main problem was that the d_lock of
    the owner of the list was not being taken when walking the list, which
    lead to list corruption under load. The only other lock that needs to
    be taken is against the next dentry candidate so it can be checked for
    usability.

    Signed-off-by: Ian Kent
    Signed-off-by: Linus Torvalds

    Ian Kent
     
  • Pull VFIO fix from Alex Williamson:
    "Just a trivial patch to include vfio.h in the installed headers so we
    can complete userspace integration into QEMU."

    * tag 'vfio-for-v3.6-rc1' of git://github.com/awilliam/linux-vfio:
    vfio: Include vfio.h in installed headers

    Linus Torvalds
     
  • Pull fuse updates from Miklos Szeredi.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    fuse: verify all ioctl retry iov elements
    fuse: add missing INIT flag descriptions
    fuse: add missing INIT flags
    fuse: update attributes on aio_read
    fuse: invalidate inode mapping if mtime changes
    fuse: add FUSE_AUTO_INVAL_DATA init flag

    Linus Torvalds
     
  • Pull Xen fix from Konrad Rzeszutek Wilk:
    "Way back in v3.5 we added a mechanism to populate back pages that were
    released (they overlapped with MMIO regions), but neglected to reserve
    the proper amount of virtual space for extend_brk to work properly.

    Coincidentally some other commit aligned the _brk space to larger area
    so I didn't trigger this until it was run on a machine with more than
    2GB of MMIO space."

    * On machines with large MMIO/PCI E820 spaces we fail to boot b/c
    we failed to pre-allocate large enough virtual space for extend_brk.

    * tag 'stable/for-linus-3.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/p2m: Reserve 8MB of _brk space for P2M leafs when populating back.

    Linus Torvalds
     
  • Pull SuperH fixes from Paul Mundt.

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
    sh: intc: Handle domain association for sparseirq pre-allocated vectors.
    sh: sh7269: Fix LCD pinmux
    sh: dma: fix request_irq usage

    Linus Torvalds
     
  • Moved to djbw@fb.com

    Cc: Dave Jiang
    Cc: Vinod Koul
    Signed-off-by: Dan Williams
    Signed-off-by: Linus Torvalds

    Dan Williams
     
  • When dumping "Code: " sections from an oops, the trapping instruction
    %rip points to can be a string copy

    2b:* f3 a5 rep movsl %ds:(%rsi),%es:(%rdi)

    and the line contain a bunch of ":". Current "cut" selects only the and
    the second field output looks funnily overlaid this:

    2b:* f3 a5 rep movsl %ds
    Cc: Linus Torvalds
    Cc: linux-kbuild@vger.kernel.org
    Signed-off-by: Borislav Petkov
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     
  • Pull two slave-dmaengine fixes from Vinod Koul:
    "One fixes the correct use of clock API in imx driver and the other
    enables clock for tegra driver, which is used for other tegra driver
    conversion to dmanegine in -next."

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dma: tegra: enable/disable dma clock
    dma: imx-dma: Fix kernel crash due to missing clock conversion

    Linus Torvalds
     
  • Pull more drm fixes from Dave Airlie:
    "Just some intel and nouveau ones this time, intel has more edp panel
    fixes for macbooks and nouveau has a suspend/resume regression fix in
    there."

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/i915: Apply post-sync write for pipe control invalidates
    drm/i915: reorder edp disabling to fix ivb MacBook Air
    drm/nv86/fifo: suspend fix
    drm/nouveau: disable copy engine on NVAF
    nouveau: fixup scanout enable in nvc0_pm
    drm/nouveau/aux: mask off higher bits of auxch index in i2c table entry
    drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate
    drm/i915: ensure i2c adapter is all set before adding it
    drm/i915: ignore eDP bpc settings from vbt
    drm/i915: Fix blank panel at reopening lid
    drm/nve0/fifo: add support for the flip completion swmthd

    Linus Torvalds
     

16 Aug, 2012

1 commit


15 Aug, 2012

3 commits

  • * 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6:
    drm/nv86/fifo: suspend fix
    drm/nouveau: disable copy engine on NVAF
    nouveau: fixup scanout enable in nvc0_pm
    drm/nouveau/aux: mask off higher bits of auxch index in i2c table entry
    drm/nvd0/disp: mask off high 16 bit of negative cursor x-coordinate
    drm/nve0/fifo: add support for the flip completion swmthd

    Dave Airlie
     
  • Daniel Vetter writes:

    "A few important fixers:
    - fix various lvds backlight issues, regressed in 3.6 (Takashi Iwai)
    - make the retina mbp work (ignore bogus edp bpc value in vbt)
    - fix a gmbus regression introduced in (iirc) 3.4 (Jani Nikula)
    - fix an edp panel power sequence regression, fixes the new macbook air
    - apply the tlb invalidate w/a

    Otherwise we still have another gmbus regression (patches are awaiting
    tested-bys) and there's something odd going with some rare systems not
    entering rc6 often enough (and hence blowing through too much power). It
    seems to be a timing-related issue and can be mitigated by frobbing the
    magic tuning parameters. We're still working on that one. Also, we still
    have some fallout from the hw context support, but you can only hit that
    with mesa master."

    * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel:
    drm/i915: Apply post-sync write for pipe control invalidates
    drm/i915: reorder edp disabling to fix ivb MacBook Air
    drm/i915: ensure i2c adapter is all set before adding it
    drm/i915: ignore eDP bpc settings from vbt
    drm/i915: Fix blank panel at reopening lid

    Dave Airlie
     
  • On a 2-node machine with 256GB of ram we get 512 lines of
    console output, which is just too much.

    This mimicks Yinghai Lu's x86 commit c2b91e2eec9678dbda274e906cc32ea8f711da3b
    (x86_64/mm: check and print vmemmap allocation continuous) except that
    we aren't ever going to get contiguous block pointers in between calls
    so just print when the virtual address or node changes.

    This decreases the output by an order of 16.

    Also demote this to KERN_DEBUG.

    Signed-off-by: David S. Miller

    David S. Miller
     

14 Aug, 2012

7 commits

  • When invalidating the TLBs it is documentated as requiring a post-sync
    write. Failure to do so seems to result in a GPU hang.

    Exposure to this hang on IVB seems to be a result of removing the extra
    stalls required for SNB pipecontrol workarounds:

    commit 6c6cf5aa9c583478b19e23149feaa92d01fb8c2d
    Author: Chris Wilson
    Date: Fri Jul 20 18:02:28 2012 +0100

    drm/i915: Only apply the SNB pipe control w/a to gen6

    Note: Manually switch the pipe_control cmd to 4 dwords to avoid a
    (silent) functional conflict with -next. This way will get a loud (but
    conflict with next (since the scratch_addr has been deleted there).

    Reported-and-tested-by: yex.tian@intel.com
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53322
    Acked-by: Ben Widawsky
    Signed-off-by: Chris Wilson
    [danvet: added note about merge conflict with -next.]
    Signed-off-by: Daniel Vetter

    Chris Wilson
     
  • eDP is tons of fun. It turns out that at least the new MacBook Air 5,1
    model absolutely doesn't like the new force vdd dance we've introduced
    in

    commit 6cb49835da0426f69a2931bc2a0a8156344b0e41
    Author: Daniel Vetter
    Date: Sun May 20 17:14:50 2012 +0200

    drm/i915: enable vdd when switching off the eDP panel

    But that patch also tried to fix some neat edp sequence issue with the
    force_vdd timings. Closer inspection reveals that we've raised
    force_vdd only to do the aux channel communication dp_sink_dpms. If we
    move the edp_panel_off below that, we don't need any force_vdd for the
    disable sequence, which makes the Air happy.

    Unfortunately the reporter of the original bug that the above commit
    fixed is travelling, so we can't test whether this regresses things.
    But my theory is that since we don't check for any power-off ->
    force_vdd-on delays in edp_panel_vdd_on, this was the actual
    root-cause of this failure. With that force_vdd dance completely
    eliminated, I'm hopeful the original bug stays fixed, too.

    For reference the old bug, which hopefully doesn't get broken by this:

    https://bugzilla.kernel.org/show_bug.cgi?id=43163

    In any case, regression fixers win over plain bugfixes, so this needs
    to go in asap.

    v2: The crucial pieces seems to be to clear the force_vdd flag
    uncoditionally, too, in edp_panel_off. Looks like this is left behind
    by the firmware somehow.

    v3: The Apple firmware seems to switch off the panel on it's own, hence
    we still need to keep force_vdd on, but properly clear it when switching
    the panel off.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45671
    Tested-by: Roberto Romer
    Tested-by: Daniel Wagner
    Tested-by: Keith Packard
    Cc: stable@vger.kernel.org
    Cc: Keith Packard
    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • Pull s390 patches from Martin Schwidefsky:
    "Included are bug fixes and a patch to enable system call filtering
    with BPF."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/compat: fix mmap compat system calls
    s390/compat: fix compat wrappers for process_vm system calls
    s390: do not clobber personality flags in sys_32_personality()
    s390/seccomp: add support for system call filtering using BPF
    s390/sclp_sdias: Add missing break and "fall through"
    s390/mm: remove MAX_PHYSADDR_BITS define

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Radeon and intel fixes mostly, one fix to the mgag200 driver to not
    hang on certain server variants."

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (32 commits)
    drm/radeon: fix typo in function header comment
    drm/radeon/kms: implement timestamp userspace query (v2)
    drm/radeon/kms: add MSAA texture support for r600-evergreen
    drm/radeon/kms: reorder code in r600_check_texture_resource
    drm/radeon: fence virtual address and free it once idle v4
    drm/radeon: fix some missing parens in asic macros
    drm/radeon: add some new SI pci ids
    drm/radeon: fix ordering in pll picking on dce4+
    drm/radeon: do not reenable crtc after moving vram start address
    drm/radeon: fix bank tiling parameters on cayman
    drm/radeon: fix bank tiling parameters on evergreen
    drm/radeon: fix bank tiling parameters on SI
    drm/radeon: properly handle crtc powergating
    drm/radeon: properly handle SS overrides on TN (v2)
    drm/radeon/dce4+: set a more reasonable cursor watermark
    drm/radeon: fix handling for ddc type 5 on combios
    drm/mgag200: fix G200ER pll picking algorithm
    drm/edid: Fix potential memory leak in edid_load()
    drm/udl: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(.. [1]
    drm/radeon/kms: allow "invalid" DB formats as a means to disable DB
    ...

    Linus Torvalds
     
  • Commit 7212157267 ("GPIO: gpio-pxa: fix devicetree functions") added an
    "xlate" function pointer to the irq_domain_ops, but this function is nor
    declared or defined anywhere when CONFIG_OF is disabled, causing the
    build error:

    drivers/gpio/gpio-pxa.c:532:11: error: 'irq_domain_xlate_twocell' undeclared here (not in a function)

    Extending the DT-only code section to cover the irq_domain_ops and the
    pxa_gpio_dt_ids solves this problem and makes it clearer which code is
    actually used without DT.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • This fix is a backport from the reworked nouveau driver. It masks off the
    engines we're not expecting to use before attempting a channel kickoff.

    Signed-off-by: Maxim Levitsky
    Signed-off-by: Ben Skeggs

    Maxim Levitsky
     
  • The copy engine exhibits random memory corruption in at least one case, the
    GeForce 320M (nv50, 0xaf) in the MacBookAir3,1.

    This patch omits creating the engine for the specific chipset, falling back
    to M2MF, which kills the symptoms.

    Signed-off-by: Henrik Rydberg
    Signed-off-by: Ben Skeggs

    Henrik Rydberg