30 Dec, 2014

2 commits

  • Pull thermal management updates from Zhang Rui:
    "First of all, the most important change is the thermal cpu cooling
    fixes. The major fix here is to have proper sequencing between
    cpufreq layer and thermal cpu cooling registration. A take away of
    this fix is an improvement in the thermal drivers code. Thermal
    drivers that require cpu cooling do not need to check for cpufreq
    layer. The requirement now is to propagate the error code, if any,
    while registering cpu cooling device. Thanks to Viresh for
    implementing the required CPUfreq changes.

    Second, a new driver is introduced for int340x processor thermal
    device. Given that int340x thermal is disabled by default, and this
    processor thermal device is only available on limited platforms, plus
    the driver does nothing but exposes some thermal limitation
    information for user space to use, thus I think it is safe to include
    it in this pull request after missing 3.19-rc2.

    Specifics:

    - Thermal cpu cooling fixes and cleanups.

    - introduce INT340X processor thermal reporting device driver.

    - several small fixes and cleanups for int340x thermal drivers"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (43 commits)
    Thermal/int340x/int3403: Free acpi notification handler
    Thermal/int340x/processor_thermal: Fix memory leak
    Thermal/int340x/int3403: Fix memory leak
    thermal: int340x: Introduce processor reporting device
    thermal: int340x_thermal: drop owner assignment from platform_drivers
    thermal: drop owner assignment from platform_drivers
    thermal: cpu_cooling: document node in struct cpufreq_cooling_device
    thermal/powerclamp: add ids for future xeon cpus
    Thermal/int340x: Handle properly the case when _trt or _art acpi entry is missing
    thermal: cpu_cooling: return ERR_PTR() for !CPU_THERMAL or !THERMAL_OF
    thermal: cpu_cooling: small memory leak on error
    thermal: ti-soc-thermal: Do not print error message in the EPROBE_DEFER case
    thermal: db8500: Do not print error message in the EPROBE_DEFER case
    thermal: imx: Do not print error message in the EPROBE_DEFER case
    thermal: Fix cdev registration with THERMAL_NO_LIMIT on 64bit
    drivers: thermal: Remove ARCH_HAS_BANDGAP dependency for samsung
    thermal:core:fix: Check return code of the ->get_max_state() callback
    thermal: cpu_cooling: update copyright tags
    thermal: cpu_cooling: Use cpufreq_dev->freq_table for finding level/freq
    thermal: cpu_cooling: Store frequencies in descending order
    ...

    Linus Torvalds
     
  • Commit 2457aec63745 ("mm: non-atomically mark page accessed during page
    cache allocation where possible") has added a separate parameter for
    specifying gfp mask for radix tree allocations.

    Not only this is less than optimal from the API point of view because it
    is error prone, it is also buggy currently because
    grab_cache_page_write_begin is using GFP_KERNEL for radix tree and if
    fgp_flags doesn't contain FGP_NOFS (mostly controlled by fs by
    AOP_FLAG_NOFS flag) but the mapping_gfp_mask has __GFP_FS cleared then
    the radix tree allocation wouldn't obey the restriction and might
    recurse into filesystem and cause deadlocks. This is the case for most
    filesystems unfortunately because only ext4 and gfs2 are using
    AOP_FLAG_NOFS.

    Let's simply remove radix_gfp_mask parameter because the allocation
    context is same for both page cache and for the radix tree. Just make
    sure that the radix tree gets only the sane subset of the mask (e.g. do
    not pass __GFP_WRITE).

    Long term it is more preferable to convert remaining users of
    AOP_FLAG_NOFS to use mapping_gfp_mask instead and simplify this
    interface even further.

    Reported-by: Dave Chinner
    Signed-off-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

29 Dec, 2014

3 commits


28 Dec, 2014

5 commits

  • Modifying a non-existent slot is not allowed. Also check that the
    first loop doesn't move a deleted slot beyond the used part of
    the mslots array.

    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • Before commit 0e60b0799fed (kvm: change memslot sorting rule from size
    to GFN, 2014-12-01), the memslots' sorting key was npages, meaning
    that a valid memslot couldn't have its sorting key equal to zero.
    On the other hand, a valid memslot can have base_gfn == 0, and invalid
    memslots are identified by base_gfn == npages == 0.

    Because of this, commit 0e60b0799fed broke the invariant that invalid
    memslots are at the end of the mslots array. When a memslot with
    base_gfn == 0 was created, any invalid memslot before it were left
    in place.

    This can be fixed by changing the insertion to use a ">=" comparison
    instead of "
    Reported-by: Andy Lutomirski
    Tested-by: Jamie Heilman
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • Pull sound fixes from Takashi Iwai:
    "Just a couple of fixes for the new Intel Skylake HD-audio support"

    * tag 'sound-3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda_intel: apply the Seperate stream_tag for Skylake
    ALSA: hda_controller: Separate stream_tag for input and output streams.

    Linus Torvalds
     
  • Since most virtual machines raise this message once, it is a bit annoying.
    Make it KERN_DEBUG severity.

    Cc: stable@vger.kernel.org
    Fixes: 7a2e8aaf0f6873b47bc2347f216ea5b0e4c258ab
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • The commit 34a1cd60d17f, "x86: vmx: move some vmx setting from
    vmx_init() to hardware_setup()", tried to refactor some codes
    specific to vmx hardware setting into hardware_setup(), but some
    msr writing should depend on our previous setting condition like
    enable_apicv, enable_ept and so on.

    Reported-by: Jamie Heilman
    Tested-by: Jamie Heilman
    Signed-off-by: Tiejun Chen
    Signed-off-by: Paolo Bonzini

    Tiejun Chen
     

27 Dec, 2014

3 commits


26 Dec, 2014

4 commits

  • The total stream number of Skylake's input and output stream
    exceeds 15, which will cause some streams do not work because
    of the overflow on SDxCTL.STRM field if using the legacy
    stream tag allocation method.

    This patch uses the new stream tag allocation method by add
    the flag AZX_DCAPS_SEPARATE_STREAM_TAG for Skylake platform.

    Signed-off-by: Libin Yang
    Reviewed-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Libin Yang
     
  • Implemented separate stream_tag assignment for input and output streams.
    According to hda specification stream tag must be unique throughout the
    input streams group, however an output stream might use a stream tag
    which is already in use by an input stream. This change is necessary
    to support HW which provides a total of more than 15 stream DMA engines
    which with legacy implementation causes an overflow on SDxCTL.STRM
    field (and the whole SDxCTL register) and as a result usage of
    Reserved value 0 in the SDxCTL.STRM field which confuses HDA controller.

    Signed-off-by: Rafal Redzimski
    Signed-off-by: Jayachandran B
    Signed-off-by: Libin Yang
    Reviewed-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Rafal Redzimski
     
  • Pull drm fixes from Dave Airlie:
    "Xmas fixes pull:

    core:
    one atomic fix, revert the WARN_ON dumb buffers patch.

    agp:
    fixup Dave J.

    nouveau:
    fix 3.18 regression for old userspace

    tegra fixes:
    vblank and iommu fixes

    amdkfd:
    fix bugs shown by testing with userspace, init apertures once

    msm:
    hdmi fixes and cleanup

    i915:
    misc fixes

    There is also a link ordering fix that I've asked to be cc'ed to you,
    putting iommu before gpu, it fixes an issue with amdkfd when things
    are all in the kernel, but I didn't like sending it via my tree
    without discussion.

    I'll probably be a bit on/off for a few weeks with pulls now, due to
    holidays and LCA, so don't be surprised if stuff gets a bit backed up,
    and things end up a bit large due to lag"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (28 commits)
    Revert "drm/gem: Warn on illegal use of the dumb buffer interface v2"
    agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags
    nouveau: bring back legacy mmap handler
    drm/msm/hdmi: rework HDMI IRQ handler
    drm/msm/hdmi: enable regulators before clocks to avoid warnings
    drm/msm/mdp5: update irqs on crtcencoder link change
    drm/msm: block incoming update on pending updates
    drm/atomic: fix potential null ptr on plane enable
    drm/msm: Deletion of unnecessary checks before the function call "release_firmware"
    drm/msm: Deletion of unnecessary checks before two function calls
    drm/tegra: dc: Select root window for event dispatch
    drm/tegra: gem: Use the proper size for GEM objects
    drm/tegra: gem: Flush buffer objects upon allocation
    drm/tegra: dc: Fix a potential race on page-flip completion
    drm/tegra: dc: Consistently use the same pipe
    drm/irq: Add drm_crtc_vblank_count()
    drm/irq: Add drm_crtc_handle_vblank()
    drm/irq: Add drm_crtc_send_vblank_event()
    drm/i915: Disable PSMI sleep messages on all rings around context switches
    drm/i915: Force the CS stall for invalidate flushes
    ...

    Linus Torvalds
     
  • Pull ipmi driver bugfixes from Corey Minyard:
    "Fix two bugs:

    One that lockdep turned up, I didn't go far enough with cleanup of
    attributes for IPMI. This has been there a long time; my previous fix
    of this didn't fix all the attributes.

    One fix for some arches that need an explicit linux/ctype.h for
    isspace()"

    * tag 'for-linus-2' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: Fix compile issue with isspace()
    ipmi: Finish cleanup of BMC attributes

    Linus Torvalds
     

24 Dec, 2014

13 commits

  • This reverts commit 355a70183848f21198e9f6296bd646df3478a26d.

    This had some bad side effects under normal operation, and should
    have been dropped earlier.

    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • - Display MEC fw version in topology. Without this, the HSA userspace
    stack is broken.

    - Init apertures information only once per process

    * tag 'amdkfd-fixes-2014-12-23' of git://people.freedesktop.org/~gabbayo/linux:
    amdkfd: init aperture once per process
    amdkfd: Display MEC fw version in topology node
    drm/radeon: Add implementation of get_fw_version
    drm/amd: Add get_fw_version to kfd-->kgd interface

    Dave Airlie
     
  • Zhang Rui
     
  • Remove acpi notification handler when zone is removed.

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Srinivas Pandruvada
     
  • Address memory leak for buffer allocated with ACPI_ALLOCATE_BUFFER.

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Srinivas Pandruvada
     
  • Address memory leak for buffer allocated with ACPI_ALLOCATE_BUFFER.

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Srinivas Pandruvada
     
  • The Int340x thermal provides a processor thermal device, which
    is used to control processor thermal states. These devices are
    either reported as a PCI device or an ACPI device. This
    device provides power limits, control states and optional
    temperature.
    This change implements minimal requirements to expose processor
    power limits which can be used during thermal power limiting.
    Power limits are exposed via an attribute group called
    "power_limits" under the device. The exported attributes
    are:
    power_limit_0_max_uw
    power_limit_1_max_uw
    power_limit_0_min_uw
    power_limit_1_min_uw
    power_limit_0_tmin_us
    power_limit_1_tmin_us
    power_limit_0_tmax_us
    power_limit_1_tmax_us
    power_limit_0_step_uw
    power_limit_1_step_uw

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Zhang Rui

    Srinivas Pandruvada
     
  • Pull audit fixes from Paul Moore:
    "Four patches to fix various problems with the audit subsystem, all are
    fairly small and straightforward.

    One patch fixes a problem where we weren't using the correct gfp
    allocation flags (GFP_KERNEL regardless of context, oops), one patch
    fixes a problem with old userspace tools (this was broken for a
    while), one patch fixes a problem where we weren't recording pathnames
    correctly, and one fixes a problem with PID based filters.

    In general I don't think there is anything controversial with this
    patchset, and it fixes some rather unfortunate bugs; the allocation
    flag one can be particularly scary looking for users"

    * 'upstream' of git://git.infradead.org/users/pcmoore/audit:
    audit: restore AUDIT_LOGINUID unset ABI
    audit: correctly record file names with different path name types
    audit: use supplied gfp_mask from audit_buffer in kauditd_send_multicast_skb
    audit: don't attempt to lookup PIDs when changing PID filtering audit rules

    Linus Torvalds
     
  • A regression was caused by commit 780a7654cee8:
    audit: Make testing for a valid loginuid explicit.
    (which in turn attempted to fix a regression caused by e1760bd)

    When audit_krule_to_data() fills in the rules to get a listing, there was a
    missing clause to convert back from AUDIT_LOGINUID_SET to AUDIT_LOGINUID.

    This broke userspace by not returning the same information that was sent and
    expected.

    The rule:
    auditctl -a exit,never -F auid=-1
    gives:
    auditctl -l
    LIST_RULES: exit,never f24=0 syscall=all
    when it should give:
    LIST_RULES: exit,never auid=-1 (0xffffffff) syscall=all

    Tag it so that it is reported the same way it was set. Create a new
    private flags audit_krule field (pflags) to store it that won't interact with
    the public one from the API.

    Cc: stable@vger.kernel.org # v3.10-rc1+
    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     
  • Pull arm64 fixes from Catalin Marinas:
    - __cpu_suspend mm switching fix after warm boot
    - arch_setup_dma_ops implementation
    - pgd_page compilation error fix
    - defconfig updates

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: mm: Add pgd_page to support RCU fast_gup
    arm64: defconfig: defconfig update for 3.19
    arm64: kernel: fix __cpu_suspend mm switch on warm-boot
    arm64: Replace set_arch_dma_coherent_ops with arch_setup_dma_ops

    Linus Torvalds
     
  • This patch adds pgd_page definition in order to keep supporting
    HAVE_GENERIC_RCU_GUP configuration. In addition, it changes pud_page
    expression to align with pmd_page for readability.

    An introduction of pgd_page resolves the following build breakage
    under 4KB + 4Level memory management combo.

    mm/gup.c: In function 'gup_huge_pgd':
    mm/gup.c:889:2: error: implicit declaration of function 'pgd_page' [-Werror=implicit-function-declaration]
    head = pgd_page(orig);
    ^
    mm/gup.c:889:7: warning: assignment makes pointer from integer without a cast
    head = pgd_page(orig);

    Cc: Will Deacon
    Cc: Steve Capper
    Signed-off-by: Jungseok Lee
    [catalin.marinas@arm.com: remove duplicate pmd_page definition]
    Signed-off-by: Catalin Marinas

    Jungseok Lee
     
  • The usual defconfig tweaks, this time:

    - FHANDLE and AUTOFS4_FS to keep systemd happy
    - PID_NS, QUOTA and KEYS to keep LTP happy
    - Disable DEBUG_PREEMPT, as this *really* hurts performance

    Signed-off-by: Will Deacon
    Signed-off-by: Catalin Marinas

    Will Deacon
     
  • On arm64 the TTBR0_EL1 register is set to either the reserved TTBR0
    page tables on boot or to the active_mm mappings belonging to user space
    processes, it must never be set to swapper_pg_dir page tables mappings.

    When a CPU is booted its active_mm is set to init_mm even though its
    TTBR0_EL1 points at the reserved TTBR0 page mappings. This implies
    that when __cpu_suspend is triggered the active_mm can point at
    init_mm even if the current TTBR0_EL1 register contains the reserved
    TTBR0_EL1 mappings.

    Therefore, the mm save and restore executed in __cpu_suspend might
    turn out to be erroneous in that, if the current->active_mm corresponds
    to init_mm, on resume from low power it ends up restoring in the
    TTBR0_EL1 the init_mm mappings that are global and can cause speculation
    of TLB entries which end up being propagated to user space.

    This patch fixes the issue by checking the active_mm pointer before
    restoring the TTBR0 mappings. If the current active_mm == &init_mm,
    the code sets the TTBR0_EL1 to the reserved TTBR0 mapping instead of
    switching back to the active_mm, which is the expected behaviour
    corresponding to the TTBR0_EL1 settings when __cpu_suspend was entered.

    Fixes: 95322526ef62 ("arm64: kernel: cpu_{suspend/resume} implementation")
    Cc: # 3.14+: 18ab7db
    Cc: # 3.14+: 714f599
    Cc: # 3.14+: c3684fb
    Cc: # 3.14+
    Cc: Will Deacon
    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Catalin Marinas

    Lorenzo Pieralisi
     

23 Dec, 2014

9 commits

  • - Remove soon-to-be-dead @redhat address.
    - Jeff Hartmann wrote the bulk of the original backend code, and should
    at least get a mention in the MODULE_AUTHOR for backend.o
    - Various people at Intel have done a lot more work than myself on the
    intel-* drivers, so again, mention that.

    Signed-off-by: Dave Jones
    Signed-off-by: Dave Airlie

    Dave Jones
     
  • Pull device mapper fixes from Mike Snitzer:
    "Thre stable fixes and one fix for a regression introduced during 3.19
    merge:

    - Fix inability to discard used space when the thin-pool target is in
    out-of-data-space mode and also transition the thin-pool back to
    write mode once free space is made available.

    - Fix DM core bio-based end_io bug that prevented proper
    post-processing of the error code returned from the block layer.

    - Fix crash in DM thin-pool due to thin device being added to the
    pool's active_thins list before properly initializing the thin
    device's refcount"

    * tag 'dm-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm: fix missed error code if .end_io isn't implemented by target_type
    dm thin: fix crash by initializing thin device's refcount and completion earlier
    dm thin: fix missing out-of-data-space to write mode transition if blocks are released
    dm thin: fix inability to discard blocks when in out-of-data-space mode

    Linus Torvalds
     
  • This reverts commit c8475d144abb1e62958cc5ec281d2a9e161c1946.

    There are several[1][2] of bug reports which points to this commit as potential
    cause[3].

    Let's revert it until we figure out what's going on.

    [1] https://lkml.org/lkml/2014/11/14/342
    [2] https://lkml.org/lkml/2014/12/22/213
    [3] https://lkml.org/lkml/2014/12/9/741

    Signed-off-by: Kirill A. Shutemov
    Reported-by: Sasha Levin
    Acked-by: Davidlohr Bueso
    Cc: Hugh Dickins
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra (Intel)
    Cc: Rik van Riel
    Cc: Srikar Dronamraju
    Cc: Mel Gorman
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • drm/tegra: Fixes for v3.19-rc1

    This is a set of fixes for two regressions and one bug in the IOMMU
    mapping code. It turns out that all of these issues turn up primarily
    on Tegra30 hardware. The IOMMU mapping bug only manifests on buffers
    that aren't multiples of the page size. I happened to be testing HDMI
    with 1080p while writing the code and framebuffers for that happen to
    fit exactly within 2025 pages of 4 KiB each.

    One of the regressions is caused by the IOMMU code allocating pages from
    shmem which can have associated cache lines. If the pages aren't flushed
    then these cache lines may be flushed later on and cause framebuffer
    corruption. I'm not sure why I didn't see this before. Perhaps the board
    that I was using had enough RAM so that the pages shmem would hand out
    had a better chance of being unused. Or maybe I didn't look too closely.
    The fix for this is to fake up an SG table so that it can be passed to
    the DMA API. Ideally this would use drm_clflush_*(), but implementing
    that for ARM causes DRM to fail to build as a module since some of the
    low-level cache maintenance functions aren't exported. Hopefully we can
    get a suitable API exported on ARM for the next release.

    The second regression is caused by a mismatch between the hardware pipe
    number and the CRTC's DRM index. These were used inconsistently, which
    could cause one code location to call drm_vblank_get() with a different
    pipe than the corresponding drm_vblank_put(), thereby causing the
    reference count to become unbalanced. Alexandre also reported a possible
    race condition related to this, which this series also fixes.

    * tag 'drm/tegra/for-3.19-rc1-fixes' of git://people.freedesktop.org/~tagr/linux:
    drm/tegra: dc: Select root window for event dispatch
    drm/tegra: gem: Use the proper size for GEM objects
    drm/tegra: gem: Flush buffer objects upon allocation
    drm/tegra: dc: Fix a potential race on page-flip completion
    drm/tegra: dc: Consistently use the same pipe
    drm/irq: Add drm_crtc_vblank_count()
    drm/irq: Add drm_crtc_handle_vblank()
    drm/irq: Add drm_crtc_send_vblank_event()

    Dave Airlie
     
  • …-intel into drm-fixes

    misc i915 fixes.

    * tag 'drm-intel-next-fixes-2014-12-17' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Disable PSMI sleep messages on all rings around context switches
    drm/i915: Force the CS stall for invalidate flushes
    drm/i915: Invalidate media caches on gen7
    drm/i915: sanitize RPS resetting during GPU reset
    drm/i915: move RPS PM_IER enabling to gen6_enable_rps_interrupts
    drm/i915: vlv: fix IRQ masking when uninstalling interrupts

    Dave Airlie
     
  • Yeah a pull for one patch is a bit overkill but I started to assemble the
    various patches for 3.20 in a branch for atomic props/ioctl and didn't
    realize that this bugfix here at the beginnning of the branch should be in
    3.19 (because msm is using the helpers arleady). So if you'd merge we'd
    have it twice or or I need to shuffle branches again. Can do if you want.

    * tag 'topic/atomic-fixes-2014-12-17' of git://anongit.freedesktop.org/drm-intel:
    drm/atomic: fix potential null ptr on plane enable

    Dave Airlie
     
  • A few msm fixes for 3.19:
    * hdmi regulators fix
    * hdmi fix for spurious HPD interrupts
    * fix for sync atomic update after async update (which could show
    up with a setcrtc following a pageflip)
    * couple little Coccinelle cleanups

    * 'msm-fixes-3.19' of git://people.freedesktop.org/~robclark/linux:
    drm/msm/hdmi: rework HDMI IRQ handler
    drm/msm/hdmi: enable regulators before clocks to avoid warnings
    drm/msm/mdp5: update irqs on crtcencoder link change
    drm/msm: block incoming update on pending updates
    drm/msm: Deletion of unnecessary checks before the function call "release_firmware"
    drm/msm: Deletion of unnecessary checks before two function calls

    Dave Airlie
     
  • nouveau userspace back at 1.0.1 used to call the X server
    DRIOpenDRMMaster interface even for DRI2 (doh!), this attempts
    to map the sarea and fails if it can't.

    Since 884c6dabb0eafe7227f099c9e78e514191efaf13 from Daniel,
    this fails, but only ancient drivers would see it.

    Revert the nouveau bits of that fix.

    Acked-by: Daniel Vetter
    Cc: # 3.18
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • There is a problem with the audit system when multiple audit records
    are created for the same path, each with a different path name type.
    The root cause of the problem is in __audit_inode() when an exact
    match (both the path name and path name type) is not found for a
    path name record; the existing code creates a new path name record,
    but it never sets the path name in this record, leaving it NULL.
    This patch corrects this problem by assigning the path name to these
    newly created records.

    There are many ways to reproduce this problem, but one of the
    easiest is the following (assuming auditd is running):

    # mkdir /root/tmp/test
    # touch /root/tmp/test/567
    # auditctl -a always,exit -F dir=/root/tmp/test
    # touch /root/tmp/test/567

    Afterwards, or while the commands above are running, check the audit
    log and pay special attention to the PATH records. A faulty kernel
    will display something like the following for the file creation:

    type=SYSCALL msg=audit(1416957442.025:93): arch=c000003e syscall=2
    success=yes exit=3 ... comm="touch" exe="/usr/bin/touch"
    type=CWD msg=audit(1416957442.025:93): cwd="/root/tmp"
    type=PATH msg=audit(1416957442.025:93): item=0 name="test/"
    inode=401409 ... nametype=PARENT
    type=PATH msg=audit(1416957442.025:93): item=1 name=(null)
    inode=393804 ... nametype=NORMAL
    type=PATH msg=audit(1416957442.025:93): item=2 name=(null)
    inode=393804 ... nametype=NORMAL

    While a patched kernel will show the following:

    type=SYSCALL msg=audit(1416955786.566:89): arch=c000003e syscall=2
    success=yes exit=3 ... comm="touch" exe="/usr/bin/touch"
    type=CWD msg=audit(1416955786.566:89): cwd="/root/tmp"
    type=PATH msg=audit(1416955786.566:89): item=0 name="test/"
    inode=401409 ... nametype=PARENT
    type=PATH msg=audit(1416955786.566:89): item=1 name="test/567"
    inode=393804 ... nametype=NORMAL

    This issue was brought up by a number of people, but special credit
    should go to hujianyang@huawei.com for reporting the problem along
    with an explanation of the problem and a patch. While the original
    patch did have some problems (see the archive link below), it did
    demonstrate the problem and helped kickstart the fix presented here.

    * https://lkml.org/lkml/2014/9/5/66

    Reported-by: hujianyang
    Signed-off-by: Paul Moore
    Acked-by: Richard Guy Briggs

    Paul Moore
     

22 Dec, 2014

1 commit

  • Commit a3a60f81ee6f (dma-mapping: replace set_arch_dma_coherent_ops with
    arch_setup_dma_ops) changes the of_dma_configure() arch dma_ops callback
    to arch_setup_dma_ops but only the arch/arm code is updated. Subsequent
    commit 97890ba9289c (dma-mapping: detect and configure IOMMU in
    of_dma_configure) changes the arch_setup_dma_ops() prototype further to
    handle iommu. The patch makes the corresponding arm64 changes.

    Signed-off-by: Catalin Marinas
    Reported-by: Arnd Bergmann
    Acked-by: Will Deacon

    Catalin Marinas