05 Jun, 2012

15 commits

  • Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Locking mutex in different orders just screams for
    deadlocks, and some testing showed that it is actually
    quite easy to trigger them.

    Signed-off-by: Christian König
    Reviewed-by: Jerome Glisse
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Christian König
     
  • - Properly set up the RBs
    - Properly set up the SPI
    - Properly set up gb_addr_config

    This should fix rendering issues on certain cards.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Many TVs and A/V receivers don't work with this bit set. Problem was
    confirmed using: Onkyo TX-SR605, Sony BRAVIA KDL-52X3500, Sony BRAVIA
    KDL-40S40xx. In theory this bit shouldn't affect audio engine when
    feeding it with data, however it seems it does. Driver fglrx doesn't set
    that bit in any of the above cases.
    This fixes a regression introduced by 3.5-rc1.

    Signed-off-by: Rafał Miłecki
    Reviewed-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Rafał Miłecki
     
  • This is based on info released by AMD, should allow using audio in much
    more cases.

    Signed-off-by: Rafał Miłecki
    Reviewed-by: Alex Deucher
    Cc:
    Signed-off-by: Dave Airlie

    Rafał Miłecki
     
  • Call it in the asic startup callback on all asics.
    Previously r600 and rv770 called it in the startup
    and resume callbacks while all the other asics called
    it in the startup callback.

    Signed-off-by: Alex Deucher
    Reviewed-by: Rafał Miłecki
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Pull signal and vfs compile breakage fixes from Al Viro.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    fixups for signal breakage

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    nommu: fix compilation of nommu.c

    Linus Torvalds
     
  • Pull cifs fixes from Steve French.

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    CIFS: Move get_next_mid to ops struct
    CIFS: Make accessing is_valid_oplock/dump_detail ops struct field safe
    CIFS: Improve identation in cifs_unlock_range
    CIFS: Fix possible wrong memory allocation

    Linus Torvalds
     
  • Obvious brainos spotted by Geert.

    Signed-off-by: Al Viro

    Al Viro
     
  • Compiling 3.5-rc1 for nommu targets gives:

    CC mm/nommu.o
    mm/nommu.c: In function ‘sys_mmap_pgoff’:
    mm/nommu.c:1489:2: error: ‘ret’ undeclared (first use in this function)
    mm/nommu.c:1489:2: note: each undeclared identifier is reported only once for each function it appears in

    It is trivially fixed by replacing 'ret' with the local variable that is
    already defined for the return value 'retval'.

    Signed-off-by: Greg Ungerer
    Signed-off-by: Al Viro

    Greg Ungerer
     
  • Pull frontswap feature from Konrad Rzeszutek Wilk:
    "Frontswap provides a "transcendent memory" interface for swap pages.
    In some environments, dramatic performance savings may be obtained
    because swapped pages are saved in RAM (or a RAM-like device) instead
    of a swap disk. This tag provides the basic infrastructure along with
    some changes to the existing backends."

    Fix up trivial conflict in mm/Makefile due to removal of swap token code
    changing a line next to the new frontswap entry.

    This pull request came in before the merge window even opened, it got
    delayed to after the merge window by me just wanting to make sure it had
    actual users. Apparently IBM is using this on their embedded side, and
    Jan Beulich says that it's already made available for SLES and OpenSUSE
    users.

    Also acked by Rik van Riel, and Konrad points to other people liking it
    too. So in it goes.

    By Dan Magenheimer (4) and Konrad Rzeszutek Wilk (2)
    via Konrad Rzeszutek Wilk
    * tag 'stable/frontswap.v16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
    frontswap: s/put_page/store/g s/get_page/load
    MAINTAINER: Add myself for the frontswap API
    mm: frontswap: config and doc files
    mm: frontswap: core frontswap functionality
    mm: frontswap: core swap subsystem hooks and headers
    mm: frontswap: add frontswap header file

    Linus Torvalds
     
  • …ernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull irq and smpboot updates from Thomas Gleixner:
    "Just cleanup patches with no functional change and a fix for suspend
    issues."

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    genirq: Introduce irq_do_set_affinity() to reduce duplicated code
    genirq: Add IRQS_PENDING for nested and simple irq

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smpboot, idle: Fix comment mismatch over idle_threads_init()
    smpboot, idle: Optimize calls to smp_processor_id() in idle_threads_init()

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "The clocksource driver is pure hardware enablement and the skew option
    is default off, well tested and non dangerous."

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tick: Move skew_tick option into the HIGH_RES_TIMER section
    clocksource: em_sti: Add DT support
    clocksource: em_sti: Emma Mobile STI driver
    clockevents: Make clockevents_config() a global symbol
    tick: Add tick skew boot option

    Linus Torvalds
     
  • Cyrill Gorcunov reports that I broke the fdinfo files with commit
    30a08bf2d31d ("proc: move fd symlink i_mode calculations into
    tid_fd_revalidate()"), and he's quite right.

    The tid_fd_revalidate() function is not just used for the /fd
    symlinks, it's also used for the /fdinfo/ files, and the
    permission model for those are different.

    So do the dynamic symlink permission handling just for symlinks, making
    the fdinfo files once more appear as the proper regular files they are.

    Of course, Al Viro argued (probably correctly) that we shouldn't do the
    symlink permission games at all, and make the symlinks always just be
    the normal 'lrwxrwxrwx'. That would have avoided this issue too, but
    since somebody noticed that the permissions had changed (which was the
    reason for that original commit 30a08bf2d31d in the first place), people
    do apparently use this feature.

    [ Basically, you can use the symlink permission data as a cheap "fdinfo"
    replacement, since you see whether the file is open for reading and/or
    writing by just looking at st_mode of the symlink. So the feature
    does make sense, even if the pain it has caused means we probably
    shouldn't have done it to begin with. ]

    Reported-and-tested-by: Cyrill Gorcunov
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

04 Jun, 2012

5 commits

  • Should be 'exynos5_xxx' instead of 'exonys5_xxx'.

    It happened at the commit 30b842889eea ("Merge tag 'soc2' of
    git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc")
    during v3.5 merge window.

    Signed-off-by: Kukjin Kim
    [ My bad - Linus ]
    Signed-off-by: Linus Torvalds

    Kukjin Kim
     
  • Pull some left-over PM patches from Rafael J. Wysocki.

    * 'pm-acpi' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification
    ACPI / PM: Make __acpi_bus_get_power() cover D3cold correctly
    ACPI / PM: Fix error messages in drivers/acpi/bus.c
    rtc-cmos / PM: report wakeup event on ACPI RTC alarm
    ACPI / PM: Generate wakeup events on fixed power button

    Linus Torvalds
     
  • This reverts commit 5ceb9ce6fe9462a298bb2cd5c9f1ca6cb80a0199.

    That commit seems to be the cause of the mm compation list corruption
    issues that Dave Jones reported. The locking (or rather, absense
    there-of) is dubious, as is the use of the 'page' variable once it has
    been found to be outside the pageblock range.

    So revert it for now, we can re-visit this for 3.6. If we even need to:
    as Minchan Kim says, "The patch wasn't a bug fix and even test workload
    was very theoretical".

    Reported-and-tested-by: Dave Jones
    Acked-by: Hugh Dickins
    Acked-by: KOSAKI Motohiro
    Acked-by: Minchan Kim
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Kyungmin Park
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • New tmpfs use of !PageUptodate pages for fallocate() is triggering the
    WARNING: at mm/page-writeback.c:1990 when __set_page_dirty_nobuffers()
    is called from migrate_page_copy() for compaction.

    It is anomalous that migration should use __set_page_dirty_nobuffers()
    on an address_space that does not participate in dirty and writeback
    accounting; and this has also been observed to insert surprising dirty
    tags into a tmpfs radix_tree, despite tmpfs not using tags at all.

    We should probably give migrate_page_copy() a better way to preserve the
    tag and migrate accounting info, when mapping_cap_account_dirty(). But
    that needs some more work: so in the interim, avoid the warning by using
    a simple SetPageDirty on PageSwapBacked pages.

    Reported-and-tested-by: Dave Jones
    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • The comment above it says "Stat data, not accessed from path walking",
    but in fact some of inode fields we use for the common stat data was way
    down at the end of the inode, causing unnecessary cache misses for the
    common stat operations.

    The inode structure is pretty big, and this can change padding depending
    on field width, but at least on the common 64-bit configurations this
    doesn't change the size. Some of our inode layout has historically been
    to tro to avoid unnecessary padding fields, but cache locality is at
    least as important for layout, if not more.

    Noticed by looking at kernel profiles, and noticing that the "i_blkbits"
    access stood out like a sore thumb.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Jun, 2012

13 commits

  • Linus Torvalds
     
  • Pull device-mapper updates from Alasdair G Kergon:
    "Improve multipath's retrying mechanism in some defined circumstances
    and provide a simple reserve/release mechanism for userspace tools to
    access thin provisioning metadata while the pool is in use."

    * tag 'dm-3.5-changes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
    dm thin: provide userspace access to pool metadata
    dm thin: use slab mempools
    dm mpath: allow ioctls to trigger pg init
    dm mpath: delay retry of bypassed pg
    dm mpath: reduce size of struct multipath

    Linus Torvalds
     
  • This patch implements two new messages that can be sent to the thin
    pool target allowing it to take a snapshot of the _metadata_. This,
    read-only snapshot can be accessed by userland, concurrently with the
    live target.

    Only one metadata snapshot can be held at a time. The pool's status
    line will give the block location for the current msnap.

    Since version 0.1.5 of the userland thin provisioning tools, the
    thin_dump program displays the msnap as follows:

    thin_dump -m

    Available here: https://github.com/jthornber/thin-provisioning-tools

    Now that userland can access the metadata we can do various things
    that have traditionally been kernel side tasks:

    i) Incremental backups.

    By using metadata snapshots we can work out what blocks have
    changed over time. Combined with data snapshots we can ensure
    the data doesn't change while we back it up.

    A short proof of concept script can be found here:

    https://github.com/jthornber/thinp-test-suite/blob/master/incremental_backup_example.rb

    ii) Migration of thin devices from one pool to another.

    iii) Merging snapshots back into an external origin.

    iv) Asyncronous replication.

    Signed-off-by: Joe Thornber
    Signed-off-by: Alasdair G Kergon

    Joe Thornber
     
  • Use dedicated caches prefixed with a "dm_" name rather than relying on
    kmalloc mempools backed by generic slab caches so the memory usage of
    thin provisioning (and any leaks) can be accounted for independently.

    Signed-off-by: Mike Snitzer
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • After the failure of a group of paths, any alternative paths that
    need initialising do not become available until further I/O is sent to
    the device. Until this has happened, ioctls return -EAGAIN.

    With this patch, new paths are made available in response to an ioctl
    too. The processing of the ioctl gets delayed until this has happened.

    Instead of returning an error, we submit a work item to kmultipathd
    (that will potentially activate the new path) and retry in ten
    milliseconds.

    Note that the patch doesn't retry an ioctl if the ioctl itself fails due
    to a path failure. Such retries should be handled intelligently by the
    code that generated the ioctl in the first place, noting that some SCSI
    commands should not be retried because they are not idempotent (XOR write
    commands). For commands that could be retried, there is a danger that
    if the device rejected the SCSI command, the path could be errorneously
    marked as failed, and the request would be retried on another path which
    might fail too. It can be determined if the failure happens on the
    device or on the SCSI controller, but there is no guarantee that all
    SCSI drivers set these flags correctly.

    Signed-off-by: Mikulas Patocka
    Signed-off-by: Alasdair G Kergon

    Mikulas Patocka
     
  • If I/O needs retrying and only bypassed priority groups are available,
    set the pg_init_delay_retry flag to wait before retrying.

    If, for example, the reason for the bypass is that the controller is
    getting reset or there is a firmware upgrade happening, retrying right
    away would cause a flood of log messages and retries for what could be a
    few seconds or even several minutes.

    Signed-off-by: Mike Christie
    Acked-by: Mike Snitzer
    Signed-off-by: Alasdair G Kergon

    Mike Christie
     
  • Move multipath structure's 'lock' and 'queue_size' members to eliminate
    two 4-byte holes. Also use a bit within a single unsigned int for each
    existing flag (saves 8-bytes). This allows future flags to be added
    without each consuming an unsigned int.

    Signed-off-by: Mike Snitzer
    Acked-by: Hannes Reinecke
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • Pull networking updates from David Miller:

    1) Make syn floods consume significantly less resources by

    a) Not pre-COW'ing routing metrics for SYN/ACKs
    b) Mirroring the device queue mapping of the SYN for the SYN/ACK
    reply.

    Both from Eric Dumazet.

    2) Fix calculation errors in Byte Queue Limiting, from Hiroaki SHIMODA.

    3) Validate the length requested when building a paged SKB for a
    socket, so we don't overrun the page vector accidently. From Jason
    Wang.

    4) When netlabel is disabled, we abort all IP option processing when we
    see a CIPSO option. This isn't the right thing to do, we should
    simply skip over it and continue processing the remaining options
    (if any). Fix from Paul Moore.

    5) SRIOV fixes for the mellanox driver from Jack orgenstein and Marcel
    Apfelbaum.

    6) 8139cp enables the receiver before the ring address is properly
    programmed, which potentially lets the device crap over random
    memory. Fix from Jason Wang.

    7) e1000/e1000e fixes for i217 RST handling, and an improper buffer
    address reference in jumbo RX frame processing from Bruce Allan and
    Sebastian Andrzej Siewior, respectively.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    fec_mpc52xx: fix timestamp filtering
    mcs7830: Implement link state detection
    e1000e: fix Rapid Start Technology support for i217
    e1000: look into the page instead of skb->data for e1000_tbi_adjust_stats()
    r8169: call netif_napi_del at errpaths and at driver unload
    tcp: reflect SYN queue_mapping into SYNACK packets
    tcp: do not create inetpeer on SYNACK message
    8139cp/8139too: terminate the eeprom access with the right opmode
    8139cp: set ring address before enabling receiver
    cipso: handle CIPSO options correctly when NetLabel is disabled
    net: sock: validate data_len before allocating skb in sock_alloc_send_pskb()
    bql: Avoid possible inconsistent calculation.
    bql: Avoid unneeded limit decrement.
    bql: Fix POSDIFF() to integer overflow aware.
    net/mlx4_core: Fix obscure mlx4_cmd_box parameter in QUERY_DEV_CAP
    net/mlx4_core: Check port out-of-range before using in mlx4_slave_cap
    net/mlx4_core: Fixes for VF / Guest startup flow
    net/mlx4_en: Fix improper use of "port" parameter in mlx4_en_event
    net/mlx4_core: Fix number of EQs used in ICM initialisation
    net/mlx4_core: Fix the slave_id out-of-range test in mlx4_eq_int

    Linus Torvalds
     
  • Pull straggler x86 fixes from Peter Anvin:
    "Three groups of patches:

    - EFI boot stub documentation and the ability to print error messages;
    - Removal for PTRACE_ARCH_PRCTL for x32 (obsolete interface which
    should never have been ported, and the port is broken and
    potentially dangerous.)
    - ftrace stack corruption fixes. I'm not super-happy about the
    technical implementation, but it is probably the least invasive in
    the short term. In the future I would like a single method for
    nesting the debug stack, however."

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, x32, ptrace: Remove PTRACE_ARCH_PRCTL for x32
    x86, efi: Add EFI boot stub documentation
    x86, efi; Add EFI boot stub console support
    x86, efi: Only close open files in error path
    ftrace/x86: Do not change stacks in DEBUG when calling lockdep
    x86: Allow nesting of the debug stack IDT setting
    x86: Reset the debug_stack update counter
    ftrace: Use breakpoint method to update ftrace caller
    ftrace: Synchronize variable setting with breakpoints

    Linus Torvalds
     
  • This reverts the tty layer change to use per-tty locking, because it's
    not correct yet, and fixing it will require some more deep surgery.

    The main revert is d29f3ef39be4 ("tty_lock: Localise the lock"), but
    there are several smaller commits that built upon it, they also get
    reverted here. The list of reverted commits is:

    fde86d310886 - tty: add lockdep annotations
    8f6576ad476b - tty: fix ldisc lock inversion trace
    d3ca8b64b97e - pty: Fix lock inversion
    b1d679afd766 - tty: drop the pty lock during hangup
    abcefe5fc357 - tty/amiserial: Add missing argument for tty_unlock()
    fd11b42e3598 - cris: fix missing tty arg in wait_event_interruptible_tty call
    d29f3ef39be4 - tty_lock: Localise the lock

    The revert had a trivial conflict in the 68360serial.c staging driver
    that got removed in the meantime.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • skb_defer_rx_timestamp was called with a freshly allocated skb but must
    be called with rskb instead.

    Signed-off-by: Stephan Gatzka
    Cc: stable
    Acked-by: Richard Cochran
    Signed-off-by: David S. Miller

    Stephan Gatzka
     
  • Add .status callback that detects link state changes.
    Tested with MCS7832CV-AA chip (9710:7830, identified as rev.C by the driver).
    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=28532

    Signed-off-by: Ondrej Zary
    Signed-off-by: David S. Miller

    Ondrej Zary
     
  • Pull vfs fix and a fix from the signal changes for frv from Al Viro.

    The __kernel_nlink_t for powerpc got scrogged because 64-bit powerpc
    actually depended on the default "unsigned long", while 32-bit powerpc
    had an explicit override to "unsigned short". Al didn't notice, and
    made both of them be the unsigned short.

    The frv signal fix is fallout from simplifying the do_notify_resume()
    code, and leaving an extra parenthesis.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    powerpc: Fix size of st_nlink on 64bit

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    frv: Remove bogus closing parenthesis

    Linus Torvalds
     

02 Jun, 2012

7 commits