1. 16 Mar, 2012 4 commits
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 538e7e96
      Linus Torvalds authored
      Pull hwmon fixes from Guenter Roeck.
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (zl6100) Enable interval between chip accesses for all chips
        hwmon: (w83627ehf) Describe undocumented pwm attributes
        hwmon: (w83627ehf) Fix temp2 source for W83627UHG
        hwmon: (w83627ehf) Fix memory leak in probe function
        hwmon: (w83627ehf) Fix writing into fan_stop_time for NCT6775F/NCT6776F
      538e7e96
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 0c48ca85
      Linus Torvalds authored
      Pull drm exynos/intel updates from Dave Airlie:
       "Two minor updates from Jesse for Intel SNB fixes, and a few fixes from
        Samsung for exynos.  The pull req has Alan's commit in it since Intel
        based their tree on my tree at that time, but it all seems fine wrt
        merging."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm exynos: use drm_fb_helper_set_par directly
        drm/exynos: Fix fb_videomode <-> drm_mode_modeinfo conversion
        drm/exynos: fix runtime_pm fimd device state on probe
        drm/exynos: use correct 'exynos-drm' name for platform device
        drm/i915: support 32 bit BGR formats in sprite planes
        drm/i915: fix color order for BGR formats on SNB
        drm/gma500: Fix Cedarview boot failures in 3.3-rc
      0c48ca85
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 72c79bdb
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "For 4 fixes for 3.3 (all trivial):
             - uvc video driver: fixes a division by zero;
             - davinci: add module.h to fix compilation;
             - smsusb: fix the delivery system setting;
             - smsdvb: the get_frontend implementation there is broken.
      
        The smsdvb patch has 127 lines, but it is trivial: instead of
        returning a cache of the set_frontend (with is wrong, as it doesn't
        have the updated values for the data, and the implementation there is
        buggy), it copies the information of the detected DVB parameters from
        the smsdvb private structures into the corresponding DVBv5 struct
        fields."
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] smsdvb: fix get_frontend
        [media] smsusb: fix the default delivery system setting
        [media] media: davinci: added module.h to resolve unresolved macros
        [media] [FOR,v3.3] uvcvideo: Avoid division by 0 in timestamp calculation
      72c79bdb
    • Linus Torvalds's avatar
      Merge branch '3.3-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · fe83558a
      Linus Torvalds authored
      Pull target fixes from Nicholas Bellinger:
       "This series addresses two recently reported regression bugs related to
        legacy SCSI reservation usage in target core, and iscsi-target
        reservation conflict handling.
      
        The second patch in particular addresses possible data-corruption with
        SCSI reservations that is specific to iscsi-target fabric LUNs with
        multiple client writers.  Both patches need to go into v3.2 stable
        ASAP, and the branch based on the last target-pending/3.3-rc-fixes
        HEAD.
      
        Again, thanks to Martin Svec for his help to identify and address this
        regression bug with iscsi-target."
      
      * '3.3-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        iscsi-target: Fix reservation conflict -EBUSY response handling bug
        target: Fix compatible reservation handling (CRH=1) with legacy RESERVE/RELEASE
      fe83558a
  2. 15 Mar, 2012 8 commits
  3. 14 Mar, 2012 13 commits
  4. 13 Mar, 2012 14 commits
  5. 12 Mar, 2012 1 commit
    • 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.orgSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      87e24f4b