1. 29 Apr, 2012 3 commits
    • Linus Torvalds's avatar
      pipes: add a "packetized pipe" mode for writing · 9883035a
      Linus Torvalds authored
      The actual internal pipe implementation is already really about
      individual packets (called "pipe buffers"), and this simply exposes that
      as a special packetized mode.
      When we are in the packetized mode (marked by O_DIRECT as suggested by
      Alan Cox), a write() on a pipe will not merge the new data with previous
      writes, so each write will get a pipe buffer of its own.  The pipe
      buffer is then marked with the PIPE_BUF_FLAG_PACKET flag, which in turn
      will tell the reader side to break the read at that boundary (and throw
      away any partial packet contents that do not fit in the read buffer).
      End result: as long as you do writes less than PIPE_BUF in size (so that
      the pipe doesn't have to split them up), you can now treat the pipe as a
      packet interface, where each read() system call will read one packet at
      a time.  You can just use a sufficiently big read buffer (PIPE_BUF is
      sufficient, since bigger than that doesn't guarantee atomicity anyway),
      and the return value of the read() will naturally give you the size of
      the packet.
      NOTE! We do not support zero-sized packets, and zero-sized reads and
      writes to a pipe continue to be no-ops.  Also note that big packets will
      currently be split at write time, but that the size at which that
      happens is not really specified (except that it's bigger than PIPE_BUF).
      Currently that limit is the system page size, but we might want to
      explicitly support bigger packets some day.
      The main user for this is going to be the autofs packet interface,
      allowing us to stop having to care so deeply about exact packet sizes
      (which have had bugs with 32/64-bit compatibility modes).  But user
      space can create packetized pipes with "pipe2(fd, O_DIRECT)", which will
      fail with an EINVAL on kernels that do not support this interface.
      Tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Thomas Meyer <thomas@m3y3r.de>
      Cc: stable@kernel.org  # needed for systemd/autofs interaction fix
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Merge tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · de9e24ed
      Linus Torvalds authored
      Pull staging tree fixes from Greg Kroah-Hartman:
       "Here are some tiny drivers/staging/ bugfixes.  Some build fixes that
        were recently reported, as well as one kfree bug that is hitting a
        number of users."
      * tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: ozwpan: Fix bug where kfree is called twice.
        staging: octeon-ethernet: fix build errors by including interrupt.h
        staging: zcache: fix Kconfig crypto dependency
        staging: tidspbridge: remove usage of OMAP2_L4_IO_ADDRESS
    • Linus Torvalds's avatar
      Merge tag 'usb-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 8d7d1adc
      Linus Torvalds authored
      Pull USB fixes from Greg Kroah-Hartman:
       "Here are a number of small USB fixes for 3.4-rc5.
        Nothing major, as before, some USB gadget fixes.  There's a crash fix
        for a number of ASUS laptops on resume that had been reported by a
        number of different people.  We think the fix might also pertain to
        other machines, as this was a BIOS bug, and they seem to travel to
        different models and manufacturers quite easily.  Other than that,
        some other reported problems fixed as well."
      * tag 'usb-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: gadget: udc-core: fix incompatibility with dummy-hcd
        usb: gadget: udc-core: fix wrong call order
        USB: cdc-wdm: fix race leading leading to memory corruption
        USB: EHCI: fix crash during suspend on ASUS computers
        usb gadget: uvc: uvc_request_data::length field must be signed
        usb: gadget: dummy: do not call pullup() on udc_stop()
        usb: musb: davinci.c: add missing unregister
        usb: musb: drop __deprecated flag
        USB: gadget: storage gadgets send wrong error code for unknown commands
        usb: otg: gpio_vbus: Add otg transceiver events and notifiers
  2. 28 Apr, 2012 6 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · f7b00693
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "This has our collection of bug fixes.  I missed the last rc because I
        thought our patches were making NFS crash during my xfs test runs.
        Turns out it was an NFS client bug fixed by someone else while I tried
        to bisect it.
        All of these fixes are small, but some are fairly high impact.  The
        biggest are fixes for our mount -o remount handling, a deadlock due to
        GFP_KERNEL allocations in readdir, and a RAID10 error handling bug.
        This was tested against both 3.3 and Linus' master as of this morning."
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (26 commits)
        Btrfs: reduce lock contention during extent insertion
        Btrfs: avoid deadlocks from GFP_KERNEL allocations during btrfs_real_readdir
        Btrfs: Fix space checking during fs resize
        Btrfs: fix block_rsv and space_info lock ordering
        Btrfs: Prevent root_list corruption
        Btrfs: fix repair code for RAID10
        Btrfs: do not start delalloc inodes during sync
        Btrfs: fix that check_int_data mount option was ignored
        Btrfs: don't count CRC or header errors twice while scrubbing
        Btrfs: fix btrfs_ioctl_dev_info() crash on missing device
        btrfs: don't return EINTR
        Btrfs: double unlock bug in error handling
        Btrfs: always store the mirror we read the eb from
        fs/btrfs/volumes.c: add missing free_fs_devices
        btrfs: fix early abort in 'remount'
        Btrfs: fix max chunk size check in chunk allocator
        Btrfs: add missing read locks in backref.c
        Btrfs: don't call free_extent_buffer twice in iterate_irefs
        Btrfs: Make free_ipath() deal gracefully with NULL pointers
        Btrfs: avoid possible use-after-free in clear_extent_bit()
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b990f9b3
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Nothing controversial, just another batch of fixes:
         - Samsung/exynos fixes for more merge window fallout: build errors
           and warnings mostly, but also some clock/device setup issues on
         - PXA bug and warning fixes related to gpio and pinmux
         - IRQ domain conversion bugfixes for U300 and MSM
         - A regulator setup fix for U300"
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: PXA2xx: MFP: fix potential direction bug
        ARM: PXA2xx: MFP: fix bug with MFP_LPM_KEEP_OUTPUT
        arm/sa1100: fix sa1100-rtc memory resource
        ARM: pxa: fix gpio wakeup setting
        ARM: SAMSUNG: add missing MMC_CAP2_BROKEN_VOLTAGE capability
        ARM: EXYNOS: Fix compilation error when CONFIG_OF is not defined
        ARM: EXYNOS: Fix resource on dev-dwmci.c
        ARM: S3C24XX: Fix build warning for S3C2410_PM
        ARM: mini2440_defconfig: Fix build error
        ARM: msm: Fix gic irqdomain support
        ARM: EXYNOS: Fix incorrect initialization of GIC
        ARM: EXYNOS: use 'exynos4-sdhci' as device name for sdhci controllers
        ARM: u300: bump all IRQ numbers by one
        ARM: ux300: Fix unimplementable regulation constraints
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · cd88e3a6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "As soon as I sent the non-urgent stack, two important fixes come in:
         - i915: fixes SNB GPU hangs in a number of 3D apps
         - radeon: initial fix for VGA on LLano system, 3 or 4 of us have
           spent time debugging this, and Jerome finally figured out the magic
           bit the BIOS/fglrx set that we didn't.  This at least should get
           things working, there may be future reliability fixes."
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: Set the Stencil Cache eviction policy to non-LRA mode.
        drm/radeon/kms: need to set up ss on DP bridges as well
    • Linus Torvalds's avatar
      Revert "autofs: work around unhappy compat problem on x86-64" · fcbf94b9
      Linus Torvalds authored
      This reverts commit a32744d4
      While that commit was technically the right thing to do, and made the
      x86-64 compat mode work identically to native 32-bit mode (and thus
      fixing the problem with a 32-bit systemd install on a 64-bit kernel), it
      turns out that the automount binaries had workarounds for this compat
      Now, the workarounds are disgusting: doing an "uname()" to find out the
      architecture of the kernel, and then comparing it for the 64-bit cases
      and fixing up the size of the read() in automount for those.  And they
      were confused: it's not actually a generic 64-bit issue at all, it's
      very much tied to just x86-64, which has different alignment for an
      'u64' in 64-bit mode than in 32-bit mode.
      But the end result is that fixing the compat layer actually breaks the
      case of a 32-bit automount on a x86-64 kernel.
      There are various approaches to fix this (including just doing a
      "strcmp()" on current->comm and comparing it to "automount"), but I
      think that I will do the one that teaches pipes about a special "packet
      mode", which will allow user space to not have to care too deeply about
      the padding at the end of the autofs packet.
      That change will make the compat workaround unnecessary, so let's revert
      it first, and get automount working again in compat mode.  The
      packetized pipes will then fix autofs for systemd.
      Reported-and-requested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Ian Kent <raven@themaw.net>
      Cc: stable@kernel.org # for 3.3
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Kenneth Graunke's avatar
      drm/i915: Set the Stencil Cache eviction policy to non-LRA mode. · 3a69ddd6
      Kenneth Graunke authored
      Clearing bit 5 of CACHE_MODE_0 is necessary to prevent GPU hangs in
      OpenGL programs such as Google MapsGL, Google Earth, and gzdoom when
      using separate stencil buffers.  Without it, the GPU tries to use the
      LRA eviction policy, which isn't supported.  This was supposed to be off
      by default, but seems to be on for many machines.
      This cannot be done in gen6_init_clock_gating with most of the other
      workaround bits; the render ring needs to exist.  Otherwise, the
      register write gets dropped on the floor (one printk will show it
      changed, but a second printk immediately following shows the value
      reverts to the old one).
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47535
      Cc: stable@vger.kernel.org
      Cc: Rob Castle <futuredub@gmail.com>
      Cc: Eric Appleman <erappleman@gmail.com>
      Cc: aaron667@gmx.net
      Cc: Keith Packard <keithp@keithp.com>
      Signed-off-by: default avatarKenneth Graunke <kenneth@whitecape.org>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    • Alex Deucher's avatar
      drm/radeon/kms: need to set up ss on DP bridges as well · 700698e7
      Alex Deucher authored
      Makes Nutmeg DP to VGA bridges work for me.
      Noticed by Jerome Glisse (after weeks of debugging).
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
  3. 27 Apr, 2012 31 commits