Skip to content
  1. Mar 15, 2012
  2. Mar 14, 2012
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 762ad8a5
      Linus Torvalds authored
      Pull sparc updates from David Miller:
       "Please pull to get this fix for the sparc32 build when using a more
        recent binutils."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc32: Add -Av8 to assembler command line.
      762ad8a5
    • David S. Miller's avatar
      sparc32: Add -Av8 to assembler command line. · e0adb990
      David S. Miller authored
      
      
      Newer version of binutils are more strict about specifying the
      correct options to enable certain classes of instructions.
      
      The sparc32 build is done for v7 in order to support sun4c systems
      which lack hardware integer multiply and divide instructions.
      
      So we have to pass -Av8 when building the assembler routines that
      use these instructions and get patched into the kernel when we find
      out that we have a v8 capable cpu.
      
      Reported-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0adb990
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b8fa7d41
      Linus Torvalds authored
      Pull networking changes from David Miller:
       "The most important bit here is the TCP syncookies issue, which seems
        to have been busted for some time.  That fix has been verified in
        production by the reporter.
      
        1) Persistent TUN devices erroneously hold on to the network namespace
           in such a way that it cannot be shutdown.  Fix from Stanislav
           Kinsbursky with help from Eric Dumazet.
      
        2) TCP SYN cookies have been broken for a while due to how the route
           lookup flow key is managed, connections can be delayed by as much
           as 20 seconds due to this bug.  Fix from Eric Dumazet.
      
        3) Missing jiffies.h include in lib/dynamic_queue_limits.c can break
           the build, from Tom Herbert.
      
        4) Add USB device ID for Sitecom LN-031, from Joerg Neikes.
      
        5) Fix OOPS in delayed workqueue in iwlegacy, from Stanislaw Gruszka.
      
        6) rt2x00 TX queue can be disabled forever due to races, fix by
           synchronizing pause/unpause with a lock.  Also from Stanislaw
           Gruszka.
      
        7) Statistics and endian fix in bnx2x driver from Yuval Mintz, Eilon
           Greenstein, and Ariel Elior."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        tun: don't hold network namespace by tun sockets
        bnx2x: FCoE statistics id fixed
        bnx2x: dcb bit indices flags used as bits
        bnx2x: added cpu_to_le16 when preparing ramrod's data
        bnx2x: pfc statistics counts pfc events twice
        rt2x00: fix random stalls
        iwl3945: fix possible il->txq NULL pointer dereference in delayed works
        dql: Fix undefined jiffies
        tcp: fix syncookie regression
        usb: asix: Patch for Sitecom LN-031
      b8fa7d41
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · 69539ab1
      Linus Torvalds authored
      Pull arch/tile update from Chris Metcalf
       "These include a couple of queued-up minor bug fixes from the
        community, a fix to unbreak the sysfs hooks in tile, and syncing up
        the defconfigs."
      
      Ugh.  defconfigs updates without "make minconfig".  Tons of ugly
      pointless lines there, I suspect.
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tile: Use set_current_blocked() and block_sigmask()
        arch/tile: misplaced parens near likely
        arch/tile: sync up the defconfig files to the tip
        arch/tile: Fix up from commit 8a25a2fd
      69539ab1
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a49aeca
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar.
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf record: Fix buffer overrun bug in tracepoint_id_to_path()
        perf/x86: Fix local vs remote memory events for NHM/WSM
      0a49aeca
    • Linus Torvalds's avatar
      Merge git://git.samba.org/sfrench/cifs-2.6 · 8e8bb96d
      Linus Torvalds authored
      Pull CIFS fixes from Steve French.
      
      * git://git.samba.org/sfrench/cifs-2.6:
        CIFS: Do not kmalloc under the flocks spinlock
        cifs: possible memory leak in xattr.
      8e8bb96d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · cd794539
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "A bunch of assorted fixes; Jan's freezing stuff still _not_ in there
        and neither is mm fun ;-/"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        restore smp_mb() in unlock_new_inode()
        vfs: fix return value from do_last()
        vfs: fix double put after complete_walk()
        udf: Fix deadlock in udf_release_file()
        vfs: Correctly set the dir i_mutex lockdep class
      cd794539
    • Matt Fleming's avatar
      tile: Use set_current_blocked() and block_sigmask() · ad092338
      Matt Fleming authored
      As described in e6fa16ab ("signal: sigprocmask() should do
      retarget_shared_pending()") the modification of current->blocked is
      incorrect as we need to check whether the signal we're about to block
      is pending in the shared queue.
      
      Also, use the new helper function introduced in commit 5e6292c0
      
      
      ("signal: add block_sigmask() for adding sigmask to current->blocked")
      which centralises the code for updating current->blocked after
      successfully delivering a signal and reduces the amount of duplicate
      code across architectures. In the past some architectures got this
      code wrong, so using this helper function should stop that from
      happening again.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      ad092338
    • John W. Linville's avatar
      Merge branch 'master' of... · 750084b5
      John W. Linville authored
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
      750084b5
    • Stephane Eranian's avatar
      perf record: Fix buffer overrun bug in tracepoint_id_to_path() · 8aa8a7c8
      Stephane Eranian authored
      
      
      This patch fixes a buffer overrun bug in
      tracepoint_id_to_path(). The bug manisfested itself as a memory
      error reported by perf record. I ran into it with perf sched:
      
       $ perf sched rec noploop 2 noploop for 2 seconds
       [ perf record: Woken up 14 times to write data ]
       [ perf record: Captured and wrote 42.701 MB perf.data (~1865622 samples) ]
       Fatal: No memory to alloc tracepoints list
      
      It turned out that tracepoint_id_to_path() was reading the
      tracepoint id using read() but the buffer was not large enough
      to include the \n terminator for id with 4 digits or more.
      
      The patch fixes the problem by extending the buffer to a more
      reasonable size covering all possible id length include \n
      terminator. Note that atoll() stops at the first non digit
      character, thus it is not necessary to clear the buffer between
      each read.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Acked-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: fweisbec@gmail.com
      Cc: dsahern@gmail.com
      Link: http://lkml.kernel.org/r/20120313155102.GA6465@quad
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8aa8a7c8
  3. Mar 13, 2012
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · 2f1c2b81
      Linus Torvalds authored
      Pull x86 platfrm driver fixes from Matthew Garrett:
       "Some trivial patches that fix wifi on some Lenovos and avoid a
        potential memory corruption issue on some Panasonics, plus two
        straightforward new drivers that touch no existing code."
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
        panasonic-laptop: avoid overflow in acpi_pcc_hotkey_add()
        acer-wmi: No wifi rfkill on Lenovo machines
        Fujitsu tablet extras driver
        x86: Add amilo-rfkill driver for some Fujitsu-Siemens Amilo laptops
      2f1c2b81
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci · 0ae5eaf1
      Linus Torvalds authored
      Pull PCI changes from Jesse Barnes:
       "A single fix for a regression that affects some people who try to
        disable ASPM for whatever reason."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
        PCI: ignore pre-1.1 ASPM quirking when ASPM is disabled
      0ae5eaf1
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · 212ad2f5
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
        sh-sci / PM: Avoid deadlocking runtime PM
        sh: fix up the ubc clock definition for sh7785.
        sh: add parameter for RSPI in clock-sh7757
        sh: Fix sh2a vbr table for more than 255 irqs
      212ad2f5
    • Linus Torvalds's avatar
      Merge tag 'rmobile-for-linus' of git://github.com/pmundt/linux-sh · a10a8543
      Linus Torvalds authored
      Pull SH/R-Mobile fixes from Paul Mundt.
      
      * tag 'rmobile-for-linus' of git://github.com/pmundt/linux-sh:
        ARM: mach-shmobile: ap4evb: fixup fsi2_ak4643_info typo
        ARM: mach-shmobile: mackerel: Reserve DMA memory for the frame buffer
        ARM: mach-shmobile: Fix ag5evm compilation by including linux/videodev2.h
        ARM: mach-shmobile: Fix bonito compile breakage
      a10a8543
    • Stanislav Kinsbursky's avatar
      tun: don't hold network namespace by tun sockets · 1ab5ecb9
      Stanislav Kinsbursky authored
      
      
      v3: added previously removed sock_put() to the tun_release() callback, because
      sk_release_kernel() doesn't drop the socket reference.
      
      v2: sk_release_kernel() used for socket release. Dummy tun_release() is
      required for sk_release_kernel() ---> sock_release() ---> sock->ops->release()
      call.
      
      TUN was designed to destroy it's socket on network namesapce shutdown. But this
      will never happen for persistent device, because it's socket holds network
      namespace.
      This patch removes of holding network namespace by TUN socket and replaces it
      by creating socket in init_net and then changing it's net it to desired one. On
      shutdown socket is moved back to init_net prior to final put.
      
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ab5ecb9
    • Yuval Mintz's avatar
      bnx2x: FCoE statistics id fixed · de5c3741
      Yuval Mintz authored
      
      
      FCoE statistics ids were distinguished from the L2's statistics ids.
      However, not all of the change was committed. This causes a possible
      collision of indices when FCoE is present.
      
      This patch fixes the issue.
      
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      de5c3741
    • Yuval Mintz's avatar
      bnx2x: dcb bit indices flags used as bits · e695a2dd
      Yuval Mintz authored
      
      
      DCB flags were updated using the flags' bit offsets instead of
      the actual bits. This is now fixed.
      
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e695a2dd
    • Ariel Elior's avatar
      bnx2x: added cpu_to_le16 when preparing ramrod's data · ab4a7139
      Ariel Elior authored
      
      
      Fixed endianess issue when passing arguments to FW.
      
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ab4a7139
    • Yuval Mintz's avatar
      bnx2x: pfc statistics counts pfc events twice · db0ea848
      Yuval Mintz authored
      
      
      When pfc statistics were counted, the delta change from last count
      was summed twice. This fixes the issue.
      
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db0ea848
    • Peter Zijlstra's avatar
      perf/x86: Fix local vs remote memory events for NHM/WSM · 87e24f4b
      Peter Zijlstra authored
      
      
      Verified using the below proglet.. before:
      
      [root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0
      remote write
      
       Performance counter stats for './numa 0':
      
               2,101,554 node-stores
               2,096,931 node-store-misses
      
             5.021546079 seconds time elapsed
      
      [root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1
      local write
      
       Performance counter stats for './numa 1':
      
                 501,137 node-stores
                     199 node-store-misses
      
             5.124451068 seconds time elapsed
      
      After:
      
      [root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0
      remote write
      
       Performance counter stats for './numa 0':
      
               2,107,516 node-stores
               2,097,187 node-store-misses
      
             5.012755149 seconds time elapsed
      
      [root@westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1
      local write
      
       Performance counter stats for './numa 1':
      
               2,063,355 node-stores
                     165 node-store-misses
      
             5.082091494 seconds time elapsed
      
      #define _GNU_SOURCE
      
      #include <sched.h>
      #include <stdio.h>
      #include <errno.h>
      #include <sys/mman.h>
      #include <sys/types.h>
      #include <dirent.h>
      #include <signal.h>
      #include <unistd.h>
      #include <numaif.h>
      #include <stdlib.h>
      
      #define SIZE (32*1024*1024)
      
      volatile int done;
      
      void sig_done(int sig)
      {
      	done = 1;
      }
      
      int main(int argc, char **argv)
      {
      	cpu_set_t *mask, *mask2;
      	size_t size;
      	int i, err, t;
      	int nrcpus = 1024;
      	char *mem;
      	unsigned long nodemask = 0x01; /* node 0 */
      	DIR *node;
      	struct dirent *de;
      	int read = 0;
      	int local = 0;
      
      	if (argc < 2) {
      		printf("usage: %s [0-3]\n", argv[0]);
      		printf("  bit0 - local/remote\n");
      		printf("  bit1 - read/write\n");
      		exit(0);
      	}
      
      	switch (atoi(argv[1])) {
      	case 0:
      		printf("remote write\n");
      		break;
      	case 1:
      		printf("local write\n");
      		local = 1;
      		break;
      	case 2:
      		printf("remote read\n");
      		read = 1;
      		break;
      	case 3:
      		printf("local read\n");
      		local = 1;
      		read = 1;
      		break;
      	}
      
      	mask = CPU_ALLOC(nrcpus);
      	size = CPU_ALLOC_SIZE(nrcpus);
      	CPU_ZERO_S(size, mask);
      
      	node = opendir("/sys/devices/system/node/node0/");
      	if (!node)
      		perror("opendir");
      	while ((de = readdir(node))) {
      		int cpu;
      
      		if (sscanf(de->d_name, "cpu%d", &cpu) == 1)
      			CPU_SET_S(cpu, size, mask);
      	}
      	closedir(node);
      
      	mask2 = CPU_ALLOC(nrcpus);
      	CPU_ZERO_S(size, mask2);
      	for (i = 0; i < size; i++)
      		CPU_SET_S(i, size, mask2);
      	CPU_XOR_S(size, mask2, mask2, mask); // invert
      
      	if (!local)
      		mask = mask2;
      
      	err = sched_setaffinity(0, size, mask);
      	if (err)
      		perror("sched_setaffinity");
      
      	mem = mmap(0, SIZE, PROT_READ|PROT_WRITE,
      			MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
      	err = mbind(mem, SIZE, MPOL_BIND, &nodemask, 8*sizeof(nodemask), MPOL_MF_MOVE);
      	if (err)
      		perror("mbind");
      
      	signal(SIGALRM, sig_done);
      	alarm(5);
      
      	if (!read) {
      		while (!done) {
      			for (i = 0; i < SIZE; i++)
      				mem[i] = 0x01;
      		}
      	} else {
      		while (!done) {
      			for (i = 0; i < SIZE; i++)
      				t += *(volatile char *)(mem + i);
      		}
      	}
      
      	return 0;
      }
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: <stable@kernel.org>
      Link: http://lkml.kernel.org/n/tip-tq73sxus35xmqpojf7ootxgs@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      87e24f4b
    • roel's avatar
      arch/tile: misplaced parens near likely · cf8c1daf
      roel authored
      
      
      Parentheses were missing.
      
      Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      cf8c1daf
    • Chris Metcalf's avatar
      arch/tile: sync up the defconfig files to the tip · 7ed725cf
      Chris Metcalf authored
      
      
      This was inspired by mchehab@redhat.com's observation that we
      didn't have EDAC configured on by default in both files.  In addition,
      we were setting INITRAMFS_SOURCE to a non-empty string, which isn't
      a very common default and required editing to do test builds.
      
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      7ed725cf
    • Chris Metcalf's avatar
      arch/tile: Fix up from commit 8a25a2fd · 688b4db0
      Chris Metcalf authored
      
      
      This was Kay Siever's bombing to convert 'cpu' to a regular subsystem.
      The change left a bogus second argument to sysfs_create_file().
      
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      688b4db0
    • Stanislaw Gruszka's avatar
      rt2x00: fix random stalls · 3780d038
      Stanislaw Gruszka authored
      
      
      Is possible that we stop queue and then do not wake up it again,
      especially when packets are transmitted fast. That can be easily
      reproduced with modified tx queue entry_num to some small value e.g. 16.
      
      If mac80211 already hold local->queue_stop_reason_lock, then we can wait
      on that lock in both rt2x00queue_pause_queue() and
      rt2x00queue_unpause_queue(). After drooping ->queue_stop_reason_lock
      is possible that __ieee80211_wake_queue() will be performed before
      __ieee80211_stop_queue(), hence we stop queue and newer wake up it
      again.
      
      Another race condition is possible when between rt2x00queue_threshold()
      check and rt2x00queue_pause_queue() we will process all pending tx
      buffers on different cpu. This might happen if for example interrupt
      will be triggered on cpu performing rt2x00mac_tx().
      
      To prevent race conditions serialize pause/unpause by queue->tx_lock.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3780d038
    • Stanislaw Gruszka's avatar
      iwl3945: fix possible il->txq NULL pointer dereference in delayed works · 210787e8
      Stanislaw Gruszka authored
      
      
      On il3945_down procedure we free tx queue data and nullify il->txq
      pointer. After that we drop mutex and then cancel delayed works. There
      is possibility, that after drooping mutex and before the cancel, some
      delayed work will start and crash while trying to send commands to
      the device. For example, here is reported crash in
      il3945_bg_reg_txpower_periodic():
      https://bugzilla.kernel.org/show_bug.cgi?id=42766#c10
      
      Patch fix problem by adding il->txq check on works that send commands,
      hence utilize tx queue.
      
      Reported-by: default avatarClemens Eisserer <linuxhippy@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      210787e8
  4. Mar 12, 2012
  5. Mar 11, 2012