<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf
index ceaf6f6..3f44dbd 100644
--- a/Documentation/hwmon/w83627ehf
+++ b/Documentation/hwmon/w83627ehf
@@ -50,7 +50,7 @@ W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I
 (NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively
 as Winbond chips.
 
-The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
+The chips implement 2 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
 (except for 627UHG), alarms with beep warnings (control unimplemented),
 and some automatic fan regulation strategies (plus manual fan control mode).
@@ -143,13 +143,8 @@ pwm[1-4]_min_output - minimum fan speed (range 1 - 255), when the temperature
 pwm[1-4]_stop_time  - how many milliseconds [ms] must elapse to switch
                       corresponding fan off. (when the temperature was below
                       defined range).
-pwm[1-4]_start_output-minimum fan speed (range 1 - 255) when spinning up
-pwm[1-4]_step_output- rate of fan speed change (1 - 255)
-pwm[1-4]_stop_output- minimum fan speed (range 1 - 255) when spinning down
-pwm[1-4]_max_output - maximum fan speed (range 1 - 255), when the temperature
-                      is above defined range.
 
-Note: last six functions are influenced by other control bits, not yet exported
+Note: last two functions are influenced by other control bits, not yet exported
       by the driver, so a change might not have any effect.
 
 Implementation Details
diff --git a/Documentation/hwmon/zl6100 b/Documentation/hwmon/zl6100
index a4e8d90..51f76a1 100644
--- a/Documentation/hwmon/zl6100
+++ b/Documentation/hwmon/zl6100
@@ -88,12 +88,14 @@ Module parameters
 delay
 -----
 
-Intersil/Zilker Labs DC-DC controllers require a minimum interval between I2C
-bus accesses. According to Intersil, the minimum interval is 2 ms, though 1 ms
-appears to be sufficient and has not caused any problems in testing. The problem
-is known to affect all currently supported chips. For manual override, the
-driver provides a writeable module parameter, 'delay', which can be used to set
-the interval to a value between 0 and 65,535 microseconds.
+Some Intersil/Zilker Labs DC-DC controllers require a minimum interval between
+I2C bus accesses. According to Intersil, the minimum interval is 2 ms, though
+1 ms appears to be sufficient and has not caused any problems in testing.
+The problem is known to affect ZL6100, ZL2105, and ZL2008. It is known not to
+affect ZL2004 and ZL6105. The driver automatically sets the interval to 1 ms
+except for ZL2004 and ZL6105. To enable manual override, the driver provides a
+writeable module parameter, 'delay', which can be used to set the interval to
+a value between 0 and 65,535 microseconds.
 
 
 Sysfs entries
diff --git a/MAINTAINERS b/MAINTAINERS
index 9c63a43..95e4e43 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1513,23 +1513,19 @@ F:	drivers/mtd/devices/block2mtd.c
 
 BLUETOOTH DRIVERS
 M:	Marcel Holtmann &lt;marcel@holtmann.org&gt;
-M:	Gustavo Padovan &lt;gustavo@padovan.org&gt;
-M:	Johan Hedberg &lt;johan.hedberg@gmail.com&gt;
+M:	"Gustavo F. Padovan" &lt;padovan@profusion.mobi&gt;
 L:	linux-bluetooth@vger.kernel.org
 W:	http://www.bluez.org/
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
 S:	Maintained
 F:	drivers/bluetooth/
 
 BLUETOOTH SUBSYSTEM
 M:	Marcel Holtmann &lt;marcel@holtmann.org&gt;
-M:	Gustavo Padovan &lt;gustavo@padovan.org&gt;
-M:	Johan Hedberg &lt;johan.hedberg@gmail.com&gt;
+M:	"Gustavo F. Padovan" &lt;padovan@profusion.mobi&gt;
 L:	linux-bluetooth@vger.kernel.org
 W:	http://www.bluez.org/
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth.git
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jh/bluetooth.git
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
 S:	Maintained
 F:	net/bluetooth/
 F:	include/net/bluetooth/
@@ -1721,14 +1717,6 @@ F:	include/linux/can/error.h
 F:	include/linux/can/netlink.h
 F:	include/linux/can/platform/
 
-CAPABILITIES
-M:	Serge Hallyn &lt;serge.hallyn@canonical.com&gt;
-L:	linux-security-module@vger.kernel.org
-S:	Supported	
-F:	include/linux/capability.h
-F:	security/capability.c
-F:	security/commoncap.c 
-
 CELL BROADBAND ENGINE ARCHITECTURE
 M:	Arnd Bergmann &lt;arnd@arndb.de&gt;
 L:	linuxppc-dev@lists.ozlabs.org
@@ -2363,15 +2351,6 @@ S:	Supported
 F:	drivers/gpu/drm/exynos
 F:	include/drm/exynos*
 
-EXYNOS MIPI DISPLAY DRIVERS
-M:	Inki Dae &lt;inki.dae@samsung.com&gt;
-M:	Donghwa Lee &lt;dh09.lee@samsung.com&gt;
-M:	Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
-L:	linux-fbdev@vger.kernel.org
-S:	Maintained
-F:	drivers/video/exynos/exynos_mipi*
-F:	include/video/exynos_mipi*
-
 DSCC4 DRIVER
 M:	Francois Romieu &lt;romieu@fr.zoreil.com&gt;
 L:	netdev@vger.kernel.org
@@ -5880,7 +5859,6 @@ F:	drivers/mmc/host/sdhci-s3c.c
 
 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
 M:	Viresh Kumar &lt;viresh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
 L:	linux-mmc@vger.kernel.org
 S:	Maintained
 F:	drivers/mmc/host/sdhci-spear.c
@@ -6223,32 +6201,24 @@ F:	drivers/tty/serial/sunzilog.h
 
 SPEAR PLATFORM SUPPORT
 M:	Viresh Kumar &lt;viresh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 W:	http://www.st.com/spear
 S:	Maintained
 F:	arch/arm/plat-spear/
 
 SPEAR3XX MACHINE SUPPORT
 M:	Viresh Kumar &lt;viresh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 W:	http://www.st.com/spear
 S:	Maintained
 F:	arch/arm/mach-spear3xx/
 
 SPEAR6XX MACHINE SUPPORT
 M:	Rajeev Kumar &lt;rajeev-dlh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 W:	http://www.st.com/spear
 S:	Maintained
 F:	arch/arm/mach-spear6xx/
 
 SPEAR CLOCK FRAMEWORK SUPPORT
 M:	Viresh Kumar &lt;viresh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 W:	http://www.st.com/spear
 S:	Maintained
 F:	arch/arm/mach-spear*/clock.c
@@ -6257,8 +6227,6 @@ F:	arch/arm/plat-spear/include/plat/clock.h
 
 SPEAR PAD MULTIPLEXING SUPPORT
 M:	Viresh Kumar &lt;viresh.kumar@st.com&gt;
-L:	spear-devel@list.st.com
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 W:	http://www.st.com/spear
 S:	Maintained
 F:	arch/arm/plat-spear/include/plat/padmux.h
diff --git a/Makefile b/Makefile
index 1932984..56d4817 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 3
 PATCHLEVEL = 3
 SUBLEVEL = 0
-EXTRAVERSION =
+EXTRAVERSION = -rc7
 NAME = Saber-toothed Squirrel
 
 # *DOCUMENTATION*
diff --git a/arch/c6x/kernel/entry.S b/arch/c6x/kernel/entry.S
index 30b37e5..3e977cc 100644
--- a/arch/c6x/kernel/entry.S
+++ b/arch/c6x/kernel/entry.S
@@ -717,6 +717,33 @@ ENTRY(sys_ftruncate64_c6x)
 #endif
 ENDPROC(sys_ftruncate64_c6x)
 
+#ifdef __ARCH_WANT_SYSCALL_OFF_T
+;; On Entry
+;;   A4 - fd
+;;   B4 - offset_lo (LE), offset_hi (BE)
+;;   A6 - offset_lo (BE), offset_hi (LE)
+;;   B6 - len
+;;   A8 - advice
+ENTRY(sys_fadvise64_c6x)
+#ifdef CONFIG_C6X_BIG_KERNEL
+	MVKL	.S1	sys_fadvise64,A0
+	MVKH	.S1	sys_fadvise64,A0
+	BNOP	.S2X	A0,2
+#else
+	B	.S2	sys_fadvise64
+	NOP	2
+#endif
+#ifdef CONFIG_CPU_BIG_ENDIAN
+	MV	.L2	B4,B5
+ ||	MV	.D2X	A6,B4
+#else
+	MV	.D2X	A6,B5
+#endif
+	MV	.D1X	B6,A6
+	MV	.D2X	A8,B6
+#endif
+ENDPROC(sys_fadvise64_c6x)
+
 ;; On Entry
 ;;   A4 - fd
 ;;   B4 - offset_lo (LE), offset_hi (BE)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_connector.c b/drivers/gpu/drm/exynos/exynos_drm_connector.c
index 99d5527..618bd4d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_connector.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_connector.c
@@ -54,14 +54,14 @@ convert_to_display_mode(struct drm_display_mode *mode,
 	mode-&gt;vrefresh = timing-&gt;refresh;
 
 	mode-&gt;hdisplay = timing-&gt;xres;
-	mode-&gt;hsync_start = mode-&gt;hdisplay + timing-&gt;right_margin;
+	mode-&gt;hsync_start = mode-&gt;hdisplay + timing-&gt;left_margin;
 	mode-&gt;hsync_end = mode-&gt;hsync_start + timing-&gt;hsync_len;
-	mode-&gt;htotal = mode-&gt;hsync_end + timing-&gt;left_margin;
+	mode-&gt;htotal = mode-&gt;hsync_end + timing-&gt;right_margin;
 
 	mode-&gt;vdisplay = timing-&gt;yres;
-	mode-&gt;vsync_start = mode-&gt;vdisplay + timing-&gt;lower_margin;
+	mode-&gt;vsync_start = mode-&gt;vdisplay + timing-&gt;upper_margin;
 	mode-&gt;vsync_end = mode-&gt;vsync_start + timing-&gt;vsync_len;
-	mode-&gt;vtotal = mode-&gt;vsync_end + timing-&gt;upper_margin;
+	mode-&gt;vtotal = mode-&gt;vsync_end + timing-&gt;lower_margin;
 	mode-&gt;width_mm = panel-&gt;width_mm;
 	mode-&gt;height_mm = panel-&gt;height_mm;
 
@@ -85,14 +85,14 @@ convert_to_video_timing(struct fb_videomode *timing,
 	timing-&gt;refresh = drm_mode_vrefresh(mode);
 
 	timing-&gt;xres = mode-&gt;hdisplay;
-	timing-&gt;right_margin = mode-&gt;hsync_start - mode-&gt;hdisplay;
+	timing-&gt;left_margin = mode-&gt;hsync_start - mode-&gt;hdisplay;
 	timing-&gt;hsync_len = mode-&gt;hsync_end - mode-&gt;hsync_start;
-	timing-&gt;left_margin = mode-&gt;htotal - mode-&gt;hsync_end;
+	timing-&gt;right_margin = mode-&gt;htotal - mode-&gt;hsync_end;
 
 	timing-&gt;yres = mode-&gt;vdisplay;
-	timing-&gt;lower_margin = mode-&gt;vsync_start - mode-&gt;vdisplay;
+	timing-&gt;upper_margin = mode-&gt;vsync_start - mode-&gt;vdisplay;
 	timing-&gt;vsync_len = mode-&gt;vsync_end - mode-&gt;vsync_start;
-	timing-&gt;upper_margin = mode-&gt;vtotal - mode-&gt;vsync_end;
+	timing-&gt;lower_margin = mode-&gt;vtotal - mode-&gt;vsync_end;
 
 	if (mode-&gt;flags &amp; DRM_MODE_FLAG_INTERLACE)
 		timing-&gt;vmode = FB_VMODE_INTERLACED;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 09cc13f..58820eb 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -246,7 +246,7 @@ static struct platform_driver exynos_drm_platform_driver = {
 	.remove		= __devexit_p(exynos_drm_platform_remove),
 	.driver		= {
 		.owner	= THIS_MODULE,
-		.name	= "exynos-drm",
+		.name	= DRIVER_NAME,
 	},
 };
 
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 54f8f07..3508700 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -46,13 +46,39 @@ struct exynos_drm_fbdev {
 	struct exynos_drm_gem_obj	*exynos_gem_obj;
 };
 
+static int exynos_drm_fbdev_set_par(struct fb_info *info)
+{
+	struct fb_var_screeninfo *var = &amp;info-&gt;var;
+
+	switch (var-&gt;bits_per_pixel) {
+	case 32:
+	case 24:
+	case 18:
+	case 16:
+	case 12:
+		info-&gt;fix.visual = FB_VISUAL_TRUECOLOR;
+		break;
+	case 1:
+		info-&gt;fix.visual = FB_VISUAL_MONO01;
+		break;
+	default:
+		info-&gt;fix.visual = FB_VISUAL_PSEUDOCOLOR;
+		break;
+	}
+
+	info-&gt;fix.line_length = (var-&gt;xres_virtual * var-&gt;bits_per_pixel) / 8;
+
+	return drm_fb_helper_set_par(info);
+}
+
+
 static struct fb_ops exynos_drm_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
 	.fb_imageblit	= cfb_imageblit,
 	.fb_check_var	= drm_fb_helper_check_var,
-	.fb_set_par	= drm_fb_helper_set_par,
+	.fb_set_par	= exynos_drm_fbdev_set_par,
 	.fb_blank	= drm_fb_helper_blank,
 	.fb_pan_display	= drm_fb_helper_pan_display,
 	.fb_setcmap	= drm_fb_helper_setcmap,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 56458ee..360adf2 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -817,6 +817,8 @@ static int __devinit fimd_probe(struct platform_device *pdev)
 		goto err_clk_get;
 	}
 
+	clk_enable(ctx-&gt;bus_clk);
+
 	ctx-&gt;lcd_clk = clk_get(dev, "sclk_fimd");
 	if (IS_ERR(ctx-&gt;lcd_clk)) {
 		dev_err(dev, "failed to get lcd clock\n");
@@ -824,6 +826,8 @@ static int __devinit fimd_probe(struct platform_device *pdev)
 		goto err_bus_clk;
 	}
 
+	clk_enable(ctx-&gt;lcd_clk);
+
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res) {
 		dev_err(dev, "failed to find registers\n");
@@ -860,11 +864,17 @@ static int __devinit fimd_probe(struct platform_device *pdev)
 		goto err_req_irq;
 	}
 
+	ctx-&gt;clkdiv = fimd_calc_clkdiv(ctx, &amp;panel-&gt;timing);
 	ctx-&gt;vidcon0 = pdata-&gt;vidcon0;
 	ctx-&gt;vidcon1 = pdata-&gt;vidcon1;
 	ctx-&gt;default_win = pdata-&gt;default_win;
 	ctx-&gt;panel = panel;
 
+	panel-&gt;timing.pixclock = clk_get_rate(ctx-&gt;lcd_clk) / ctx-&gt;clkdiv;
+
+	DRM_DEBUG_KMS("pixel clock = %d, clkdiv = %d\n",
+			panel-&gt;timing.pixclock, ctx-&gt;clkdiv);
+
 	subdrv = &amp;ctx-&gt;subdrv;
 
 	subdrv-&gt;probe = fimd_subdrv_probe;
@@ -879,15 +889,10 @@ static int __devinit fimd_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, ctx);
 
+	pm_runtime_set_active(dev);
 	pm_runtime_enable(dev);
 	pm_runtime_get_sync(dev);
 
-	ctx-&gt;clkdiv = fimd_calc_clkdiv(ctx, &amp;panel-&gt;timing);
-	panel-&gt;timing.pixclock = clk_get_rate(ctx-&gt;lcd_clk) / ctx-&gt;clkdiv;
-
-	DRM_DEBUG_KMS("pixel clock = %d, clkdiv = %d\n",
-			panel-&gt;timing.pixclock, ctx-&gt;clkdiv);
-
 	for (win = 0; win &lt; WINDOWS_NR; win++)
 		fimd_clear_win(ctx, win);
 
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 558ac71..03c53fc 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2689,7 +2689,7 @@
 #define   DVS_FORMAT_RGBX888	(2&lt;&lt;25)
 #define   DVS_FORMAT_RGBX161616	(3&lt;&lt;25)
 #define   DVS_SOURCE_KEY	(1&lt;&lt;22)
-#define   DVS_RGB_ORDER_XBGR	(1&lt;&lt;20)
+#define   DVS_RGB_ORDER_RGBX	(1&lt;&lt;20)
 #define   DVS_YUV_BYTE_ORDER_MASK (3&lt;&lt;16)
 #define   DVS_YUV_ORDER_YUYV	(0&lt;&lt;16)
 #define   DVS_YUV_ORDER_UYVY	(1&lt;&lt;16)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 397087c..f851db7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7828,7 +7828,6 @@ int intel_framebuffer_init(struct drm_device *dev,
 	case DRM_FORMAT_RGB332:
 	case DRM_FORMAT_RGB565:
 	case DRM_FORMAT_XRGB8888:
-	case DRM_FORMAT_XBGR8888:
 	case DRM_FORMAT_ARGB8888:
 	case DRM_FORMAT_XRGB2101010:
 	case DRM_FORMAT_ARGB2101010:
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index a083504..2288abf 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -225,16 +225,16 @@ snb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
 
 	/* Mask out pixel format bits in case we change it */
 	dvscntr &amp;= ~DVS_PIXFORMAT_MASK;
-	dvscntr &amp;= ~DVS_RGB_ORDER_XBGR;
+	dvscntr &amp;= ~DVS_RGB_ORDER_RGBX;
 	dvscntr &amp;= ~DVS_YUV_BYTE_ORDER_MASK;
 
 	switch (fb-&gt;pixel_format) {
 	case DRM_FORMAT_XBGR8888:
-		dvscntr |= DVS_FORMAT_RGBX888 | DVS_RGB_ORDER_XBGR;
+		dvscntr |= DVS_FORMAT_RGBX888;
 		pixel_size = 4;
 		break;
 	case DRM_FORMAT_XRGB8888:
-		dvscntr |= DVS_FORMAT_RGBX888;
+		dvscntr |= DVS_FORMAT_RGBX888 | DVS_RGB_ORDER_RGBX;
 		pixel_size = 4;
 		break;
 	case DRM_FORMAT_YUYV:
diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c
index e3e8420..880b90c 100644
--- a/drivers/hwmon/pmbus/zl6100.c
+++ b/drivers/hwmon/pmbus/zl6100.c
@@ -200,11 +200,17 @@ static int zl6100_probe(struct i2c_client *client,
 	data-&gt;id = mid-&gt;driver_data;
 
 	/*
-	 * According to information from the chip vendor, all currently
-	 * supported chips are known to require a wait time between I2C
-	 * accesses.
+	 * ZL2005, ZL2008, ZL2105, and ZL6100 are known to require a wait time
+	 * between I2C accesses. ZL2004 and ZL6105 are known to be safe.
+	 * Other chips have not yet been tested.
+	 *
+	 * Only clear the wait time for chips known to be safe. The wait time
+	 * can be cleared later for additional chips if tests show that it
+	 * is not needed (in other words, better be safe than sorry).
 	 */
 	data-&gt;delay = delay;
+	if (data-&gt;id == zl2004 || data-&gt;id == zl6105)
+		data-&gt;delay = 0;
 
 	/*
 	 * Since there was a direct I2C device access above, wait before
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
index a658d62..5276d19 100644
--- a/drivers/hwmon/w83627ehf.c
+++ b/drivers/hwmon/w83627ehf.c
@@ -39,7 +39,7 @@
 					       0x8860 0xa1
     w83627dhg    9      5       4       3      0xa020 0xc1    0x5ca3
     w83627dhg-p  9      5       4       3      0xb070 0xc1    0x5ca3
-    w83627uhg    8      2       2       3      0xa230 0xc1    0x5ca3
+    w83627uhg    8      2       2       2      0xa230 0xc1    0x5ca3
     w83667hg     9      5       3       3      0xa510 0xc1    0x5ca3
     w83667hg-b   9      5       3       4      0xb350 0xc1    0x5ca3
     nct6775f     9      4       3       9      0xb470 0xc1    0x5ca3
@@ -1607,7 +1607,7 @@ store_##reg(struct device *dev, struct device_attribute *attr, \
 	val = step_time_to_reg(val, data-&gt;pwm_mode[nr]); \
 	mutex_lock(&amp;data-&gt;update_lock); \
 	data-&gt;reg[nr] = val; \
-	w83627ehf_write_value(data, data-&gt;REG_##REG[nr], val); \
+	w83627ehf_write_value(data, W83627EHF_REG_##REG[nr], val); \
 	mutex_unlock(&amp;data-&gt;update_lock); \
 	return count; \
 } \
@@ -2004,8 +2004,7 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
 		goto exit;
 	}
 
-	data = devm_kzalloc(&amp;pdev-&gt;dev, sizeof(struct w83627ehf_data),
-			    GFP_KERNEL);
+	data = kzalloc(sizeof(struct w83627ehf_data), GFP_KERNEL);
 	if (!data) {
 		err = -ENOMEM;
 		goto exit_release;
@@ -2158,16 +2157,16 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
 		w83627ehf_set_temp_reg_ehf(data, 3);
 
 		/*
-		 * Temperature sources for temp2 and temp3 are selected with
+		 * Temperature sources for temp1 and temp2 are selected with
 		 * bank 0, registers 0x49 and 0x4a.
 		 */
 		data-&gt;temp_src[0] = 0;	/* SYSTIN */
 		reg = w83627ehf_read_value(data, 0x49) &amp; 0x07;
 		/* Adjust to have the same mapping as other source registers */
 		if (reg == 0)
-			data-&gt;temp_src[1] = 1;
+			data-&gt;temp_src[1]++;
 		else if (reg &gt;= 2 &amp;&amp; reg &lt;= 5)
-			data-&gt;temp_src[1] = reg + 2;
+			data-&gt;temp_src[1] += 2;
 		else	/* should never happen */
 			data-&gt;have_temp &amp;= ~(1 &lt;&lt; 1);
 		reg = w83627ehf_read_value(data, 0x4a);
@@ -2494,8 +2493,9 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
 
 exit_remove:
 	w83627ehf_device_remove_files(dev);
-exit_release:
+	kfree(data);
 	platform_set_drvdata(pdev, NULL);
+exit_release:
 	release_region(res-&gt;start, IOREGION_LENGTH);
 exit:
 	return err;
@@ -2509,6 +2509,7 @@ static int __devexit w83627ehf_remove(struct platform_device *pdev)
 	w83627ehf_device_remove_files(&amp;pdev-&gt;dev);
 	release_region(data-&gt;addr, IOREGION_LENGTH);
 	platform_set_drvdata(pdev, NULL);
+	kfree(data);
 
 	return 0;
 }
diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c
index 24f94f4..525c734 100644
--- a/drivers/i2c/algos/i2c-algo-bit.c
+++ b/drivers/i2c/algos/i2c-algo-bit.c
@@ -103,14 +103,8 @@ static int sclhi(struct i2c_algo_bit_data *adap)
 		 * chips may hold it low ("clock stretching") while they
 		 * are processing data internally.
 		 */
-		if (time_after(jiffies, start + adap-&gt;timeout)) {
-			/* Test one last time, as we may have been preempted
-			 * between last check and timeout test.
-			 */
-			if (getscl(adap))
-				break;
+		if (time_after(jiffies, start + adap-&gt;timeout))
 			return -ETIMEDOUT;
-		}
 		cond_resched();
 	}
 #ifdef DEBUG
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index e9c1893..1e56061 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1386,10 +1386,8 @@ int i2c_master_send(const struct i2c_client *client, const char *buf, int count)
 
 	ret = i2c_transfer(adap, &amp;msg, 1);
 
-	/*
-	 * If everything went ok (i.e. 1 msg transmitted), return #bytes
-	 * transmitted, else error code.
-	 */
+	/* If everything went ok (i.e. 1 msg transmitted), return #bytes
+	   transmitted, else error code. */
 	return (ret == 1) ? count : ret;
 }
 EXPORT_SYMBOL(i2c_master_send);
@@ -1416,10 +1414,8 @@ int i2c_master_recv(const struct i2c_client *client, char *buf, int count)
 
 	ret = i2c_transfer(adap, &amp;msg, 1);
 
-	/*
-	 * If everything went ok (i.e. 1 msg received), return #bytes received,
-	 * else error code.
-	 */
+	/* If everything went ok (i.e. 1 msg transmitted), return #bytes
+	   transmitted, else error code. */
 	return (ret == 1) ? count : ret;
 }
 EXPORT_SYMBOL(i2c_master_recv);
diff --git a/drivers/media/dvb/siano/smsdvb.c b/drivers/media/dvb/siano/smsdvb.c
index aa77e54..654685c 100644
--- a/drivers/media/dvb/siano/smsdvb.c
+++ b/drivers/media/dvb/siano/smsdvb.c
@@ -49,6 +49,9 @@ struct smsdvb_client_t {
 
 	struct completion       tune_done;
 
+	/* todo: save freq/band instead whole struct */
+	struct dtv_frontend_properties fe_params;
+
 	struct SMSHOSTLIB_STATISTICS_DVB_S sms_stat_dvb;
 	int event_fe_state;
 	int event_unc_state;
@@ -741,124 +744,12 @@ static int smsdvb_get_frontend(struct dvb_frontend *fe)
 	struct dtv_frontend_properties *fep = &amp;fe-&gt;dtv_property_cache;
 	struct smsdvb_client_t *client =
 		container_of(fe, struct smsdvb_client_t, frontend);
-	struct smscore_device_t *coredev = client-&gt;coredev;
-	struct TRANSMISSION_STATISTICS_S *td =
-		&amp;client-&gt;sms_stat_dvb.TransmissionData;
-
-	switch (smscore_get_device_mode(coredev)) {
-	case DEVICE_MODE_DVBT:
-	case DEVICE_MODE_DVBT_BDA:
-		fep-&gt;frequency = td-&gt;Frequency;
-
-		switch (td-&gt;Bandwidth) {
-		case 6:
-			fep-&gt;bandwidth_hz = 6000000;
-			break;
-		case 7:
-			fep-&gt;bandwidth_hz = 7000000;
-			break;
-		case 8:
-			fep-&gt;bandwidth_hz = 8000000;
-			break;
-		}
-
-		switch (td-&gt;TransmissionMode) {
-		case 2:
-			fep-&gt;transmission_mode = TRANSMISSION_MODE_2K;
-			break;
-		case 8:
-			fep-&gt;transmission_mode = TRANSMISSION_MODE_8K;
-		}
-
-		switch (td-&gt;GuardInterval) {
-		case 0:
-			fep-&gt;guard_interval = GUARD_INTERVAL_1_32;
-			break;
-		case 1:
-			fep-&gt;guard_interval = GUARD_INTERVAL_1_16;
-			break;
-		case 2:
-			fep-&gt;guard_interval = GUARD_INTERVAL_1_8;
-			break;
-		case 3:
-			fep-&gt;guard_interval = GUARD_INTERVAL_1_4;
-			break;
-		}
-
-		switch (td-&gt;CodeRate) {
-		case 0:
-			fep-&gt;code_rate_HP = FEC_1_2;
-			break;
-		case 1:
-			fep-&gt;code_rate_HP = FEC_2_3;
-			break;
-		case 2:
-			fep-&gt;code_rate_HP = FEC_3_4;
-			break;
-		case 3:
-			fep-&gt;code_rate_HP = FEC_5_6;
-			break;
-		case 4:
-			fep-&gt;code_rate_HP = FEC_7_8;
-			break;
-		}
-
-		switch (td-&gt;LPCodeRate) {
-		case 0:
-			fep-&gt;code_rate_LP = FEC_1_2;
-			break;
-		case 1:
-			fep-&gt;code_rate_LP = FEC_2_3;
-			break;
-		case 2:
-			fep-&gt;code_rate_LP = FEC_3_4;
-			break;
-		case 3:
-			fep-&gt;code_rate_LP = FEC_5_6;
-			break;
-		case 4:
-			fep-&gt;code_rate_LP = FEC_7_8;
-			break;
-		}
-
-		switch (td-&gt;Constellation) {
-		case 0:
-			fep-&gt;modulation = QPSK;
-			break;
-		case 1:
-			fep-&gt;modulation = QAM_16;
-			break;
-		case 2:
-			fep-&gt;modulation = QAM_64;
-			break;
-		}
 
-		switch (td-&gt;Hierarchy) {
-		case 0:
-			fep-&gt;hierarchy = HIERARCHY_NONE;
-			break;
-		case 1:
-			fep-&gt;hierarchy = HIERARCHY_1;
-			break;
-		case 2:
-			fep-&gt;hierarchy = HIERARCHY_2;
-			break;
-		case 3:
-			fep-&gt;hierarchy = HIERARCHY_4;
-			break;
-		}
+	sms_debug("");
 
-		fep-&gt;inversion = INVERSION_AUTO;
-		break;
-	case DEVICE_MODE_ISDBT:
-	case DEVICE_MODE_ISDBT_BDA:
-		fep-&gt;frequency = td-&gt;Frequency;
-		fep-&gt;bandwidth_hz = 6000000;
-		/* todo: retrive the other parameters */
-		break;
-	default:
-		return -EINVAL;
-	}
+	/* todo: */
+	memcpy(fep, &amp;client-&gt;fe_params,
+	       sizeof(struct dtv_frontend_properties));
 
 	return 0;
 }
@@ -981,11 +872,11 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev,
 	switch (smscore_get_device_mode(coredev)) {
 	case DEVICE_MODE_DVBT:
 	case DEVICE_MODE_DVBT_BDA:
-		client-&gt;frontend.ops.delsys[0] = SYS_DVBT;
+		smsdvb_fe_ops.delsys[0] = SYS_DVBT;
 		break;
 	case DEVICE_MODE_ISDBT:
 	case DEVICE_MODE_ISDBT_BDA:
-		client-&gt;frontend.ops.delsys[0] = SYS_ISDBT;
+		smsdvb_fe_ops.delsys[0] = SYS_ISDBT;
 		break;
 	}
 
diff --git a/drivers/media/video/davinci/isif.c b/drivers/media/video/davinci/isif.c
index 5278fe7..1e63852 100644
--- a/drivers/media/video/davinci/isif.c
+++ b/drivers/media/video/davinci/isif.c
@@ -34,7 +34,6 @@
 #include &lt;linux/videodev2.h&gt;
 #include &lt;linux/clk.h&gt;
 #include &lt;linux/err.h&gt;
-#include &lt;linux/module.h&gt;
 
 #include &lt;mach/mux.h&gt;
 
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
index 4a44f9a..c7e69b8 100644
--- a/drivers/media/video/uvc/uvc_video.c
+++ b/drivers/media/video/uvc/uvc_video.c
@@ -611,11 +611,9 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
 	delta_stc = buf-&gt;pts - (1UL &lt;&lt; 31);
 	x1 = first-&gt;dev_stc - delta_stc;
 	x2 = last-&gt;dev_stc - delta_stc;
-	if (x1 == x2)
-		goto done;
-
 	y1 = (first-&gt;dev_sof + 2048) &lt;&lt; 16;
 	y2 = (last-&gt;dev_sof + 2048) &lt;&lt; 16;
+
 	if (y2 &lt; y1)
 		y2 += 2048 &lt;&lt; 16;
 
@@ -633,17 +631,15 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
 		  x1, x2, y1, y2, clock-&gt;sof_offset);
 
 	/* Second step, SOF to host clock conversion. */
+	ts = timespec_sub(last-&gt;host_ts, first-&gt;host_ts);
 	x1 = (uvc_video_clock_host_sof(first) + 2048) &lt;&lt; 16;
 	x2 = (uvc_video_clock_host_sof(last) + 2048) &lt;&lt; 16;
-	if (x2 &lt; x1)
-		x2 += 2048 &lt;&lt; 16;
-	if (x1 == x2)
-		goto done;
-
-	ts = timespec_sub(last-&gt;host_ts, first-&gt;host_ts);
 	y1 = NSEC_PER_SEC;
 	y2 = (ts.tv_sec + 1) * NSEC_PER_SEC + ts.tv_nsec;
 
+	if (x2 &lt; x1)
+		x2 += 2048 &lt;&lt; 16;
+
 	/* Interpolated and host SOF timestamps can wrap around at slightly
 	 * different times. Handle this by adding or removing 2048 to or from
 	 * the computed SOF value to keep it close to the SOF samples mean
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index b69f876..2545213 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -10824,36 +10824,38 @@ do {									\
 
 int bnx2x_init_firmware(struct bnx2x *bp)
 {
-	const char *fw_file_name;
 	struct bnx2x_fw_file_hdr *fw_hdr;
 	int rc;
 
-	if (bp-&gt;firmware)
-		return 0;
 
-	if (CHIP_IS_E1(bp))
-		fw_file_name = FW_FILE_NAME_E1;
-	else if (CHIP_IS_E1H(bp))
-		fw_file_name = FW_FILE_NAME_E1H;
-	else if (!CHIP_IS_E1x(bp))
-		fw_file_name = FW_FILE_NAME_E2;
-	else {
-		BNX2X_ERR("Unsupported chip revision\n");
-		return -EINVAL;
-	}
-	BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
+	if (!bp-&gt;firmware) {
+		const char *fw_file_name;
 
-	rc = request_firmware(&amp;bp-&gt;firmware, fw_file_name, &amp;bp-&gt;pdev-&gt;dev);
-	if (rc) {
-		BNX2X_ERR("Can't load firmware file %s\n",
-			  fw_file_name);
-		goto request_firmware_exit;
-	}
+		if (CHIP_IS_E1(bp))
+			fw_file_name = FW_FILE_NAME_E1;
+		else if (CHIP_IS_E1H(bp))
+			fw_file_name = FW_FILE_NAME_E1H;
+		else if (!CHIP_IS_E1x(bp))
+			fw_file_name = FW_FILE_NAME_E2;
+		else {
+			BNX2X_ERR("Unsupported chip revision\n");
+			return -EINVAL;
+		}
+		BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
 
-	rc = bnx2x_check_firmware(bp);
-	if (rc) {
-		BNX2X_ERR("Corrupt firmware file %s\n", fw_file_name);
-		goto request_firmware_exit;
+		rc = request_firmware(&amp;bp-&gt;firmware, fw_file_name,
+				      &amp;bp-&gt;pdev-&gt;dev);
+		if (rc) {
+			BNX2X_ERR("Can't load firmware file %s\n",
+				  fw_file_name);
+			goto request_firmware_exit;
+		}
+
+		rc = bnx2x_check_firmware(bp);
+		if (rc) {
+			BNX2X_ERR("Corrupt firmware file %s\n", fw_file_name);
+			goto request_firmware_exit;
+		}
 	}
 
 	fw_hdr = (struct bnx2x_fw_file_hdr *)bp-&gt;firmware-&gt;data;
@@ -10899,7 +10901,6 @@ init_ops_alloc_err:
 	kfree(bp-&gt;init_data);
 request_firmware_exit:
 	release_firmware(bp-&gt;firmware);
-	bp-&gt;firmware = NULL;
 
 	return rc;
 }
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 610860f..bf01841 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -166,7 +166,7 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
 
 		dev_kfree_skb(skb);
 		net-&gt;stats.tx_dropped++;
-		return NETDEV_TX_OK;
+		return NETDEV_TX_BUSY;
 	}
 
 	packet-&gt;extension = (void *)(unsigned long)packet +
@@ -226,7 +226,7 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
 		dev_kfree_skb_any(skb);
 	}
 
-	return NETDEV_TX_OK;
+	return ret ? NETDEV_TX_BUSY : NETDEV_TX_OK;
 }
 
 /*
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 59681f0..81b96e3 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -328,13 +328,13 @@ static int rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)
 	unsigned long		lockflags;
 	size_t			size = dev-&gt;rx_urb_size;
 
-	skb = __netdev_alloc_skb_ip_align(dev-&gt;net, size, flags);
-	if (!skb) {
+	if ((skb = alloc_skb (size + NET_IP_ALIGN, flags)) == NULL) {
 		netif_dbg(dev, rx_err, dev-&gt;net, "no rx skb\n");
 		usbnet_defer_kevent (dev, EVENT_RX_MEMORY);
 		usb_free_urb (urb);
 		return -ENOMEM;
 	}
+	skb_reserve (skb, NET_IP_ALIGN);
 
 	entry = (struct skb_data *) skb-&gt;cb;
 	entry-&gt;urb = urb;
diff --git a/drivers/net/wimax/i2400m/netdev.c b/drivers/net/wimax/i2400m/netdev.c
index 63e4b70..64a1106 100644
--- a/drivers/net/wimax/i2400m/netdev.c
+++ b/drivers/net/wimax/i2400m/netdev.c
@@ -367,28 +367,38 @@ netdev_tx_t i2400m_hard_start_xmit(struct sk_buff *skb,
 {
 	struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
 	struct device *dev = i2400m_dev(i2400m);
-	int result = -1;
+	int result;
 
 	d_fnstart(3, dev, "(skb %p net_dev %p)\n", skb, net_dev);
-
-	if (skb_header_cloned(skb) &amp;&amp; 
-	    pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
-		goto drop;
+	if (skb_header_cloned(skb)) {
+		/*
+		 * Make tcpdump/wireshark happy -- if they are
+		 * running, the skb is cloned and we will overwrite
+		 * the mac fields in i2400m_tx_prep_header. Expand
+		 * seems to fix this...
+		 */
+		result = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
+		if (result) {
+			result = NETDEV_TX_BUSY;
+			goto error_expand;
+		}
+	}
 
 	if (i2400m-&gt;state == I2400M_SS_IDLE)
 		result = i2400m_net_wake_tx(i2400m, net_dev, skb);
 	else
 		result = i2400m_net_tx(i2400m, net_dev, skb);
-	if (result &lt;  0) {
-drop:
+	if (result &lt;  0)
 		net_dev-&gt;stats.tx_dropped++;
-	} else {
+	else {
 		net_dev-&gt;stats.tx_packets++;
 		net_dev-&gt;stats.tx_bytes += skb-&gt;len;
 	}
-	dev_kfree_skb(skb);
+	result = NETDEV_TX_OK;
+error_expand:
+	kfree_skb(skb);
 	d_fnend(3, dev, "(skb %p net_dev %p) = %d\n", skb, net_dev, result);
-	return NETDEV_TX_OK;
+	return result;
 }
 
 
diff --git a/drivers/rapidio/devices/tsi721.h b/drivers/rapidio/devices/tsi721.h
index 1c226b3..822e54c 100644
--- a/drivers/rapidio/devices/tsi721.h
+++ b/drivers/rapidio/devices/tsi721.h
@@ -118,34 +118,34 @@
 
 #define TSI721_IDB_ENTRY_SIZE	64
 
-#define TSI721_IDQ_CTL(x)	(0x20000 + (x) * 0x1000)
+#define TSI721_IDQ_CTL(x)	(0x20000 + (x) * 1000)
 #define TSI721_IDQ_SUSPEND	0x00000002
 #define TSI721_IDQ_INIT		0x00000001
 
-#define TSI721_IDQ_STS(x)	(0x20004 + (x) * 0x1000)
+#define TSI721_IDQ_STS(x)	(0x20004 + (x) * 1000)
 #define TSI721_IDQ_RUN		0x00200000
 
-#define TSI721_IDQ_MASK(x)	(0x20008 + (x) * 0x1000)
+#define TSI721_IDQ_MASK(x)	(0x20008 + (x) * 1000)
 #define TSI721_IDQ_MASK_MASK	0xffff0000
 #define TSI721_IDQ_MASK_PATT	0x0000ffff
 
-#define TSI721_IDQ_RP(x)	(0x2000c + (x) * 0x1000)
+#define TSI721_IDQ_RP(x)	(0x2000c + (x) * 1000)
 #define TSI721_IDQ_RP_PTR	0x0007ffff
 
-#define TSI721_IDQ_WP(x)	(0x20010 + (x) * 0x1000)
+#define TSI721_IDQ_WP(x)	(0x20010 + (x) * 1000)
 #define TSI721_IDQ_WP_PTR	0x0007ffff
 
-#define TSI721_IDQ_BASEL(x)	(0x20014 + (x) * 0x1000)
+#define TSI721_IDQ_BASEL(x)	(0x20014 + (x) * 1000)
 #define TSI721_IDQ_BASEL_ADDR	0xffffffc0
-#define TSI721_IDQ_BASEU(x)	(0x20018 + (x) * 0x1000)
-#define TSI721_IDQ_SIZE(x)	(0x2001c + (x) * 0x1000)
+#define TSI721_IDQ_BASEU(x)	(0x20018 + (x) * 1000)
+#define TSI721_IDQ_SIZE(x)	(0x2001c + (x) * 1000)
 #define TSI721_IDQ_SIZE_VAL(size)	(__fls(size) - 4)
 #define TSI721_IDQ_SIZE_MIN	512
 #define TSI721_IDQ_SIZE_MAX	(512 * 1024)
 
-#define TSI721_SR_CHINT(x)	(0x20040 + (x) * 0x1000)
-#define TSI721_SR_CHINTE(x)	(0x20044 + (x) * 0x1000)
-#define TSI721_SR_CHINTSET(x)	(0x20048 + (x) * 0x1000)
+#define TSI721_SR_CHINT(x)	(0x20040 + (x) * 1000)
+#define TSI721_SR_CHINTE(x)	(0x20044 + (x) * 1000)
+#define TSI721_SR_CHINTSET(x)	(0x20048 + (x) * 1000)
 #define TSI721_SR_CHINT_ODBOK	0x00000020
 #define TSI721_SR_CHINT_IDBQRCV	0x00000010
 #define TSI721_SR_CHINT_SUSP	0x00000008
@@ -156,7 +156,7 @@
 
 #define TSI721_IBWIN_NUM	8
 
-#define TSI721_IBWINLB(x)	(0x29000 + (x) * 0x20)
+#define TSI721_IBWINLB(x)	(0x29000 + (x) * 20)
 #define TSI721_IBWINLB_BA	0xfffff000
 #define TSI721_IBWINLB_WEN	0x00000001
 
@@ -187,13 +187,13 @@
  */
 #define TSI721_OBWIN_NUM	TSI721_PC2SR_WINS
 
-#define TSI721_OBWINLB(x)	(0x40000 + (x) * 0x20)
+#define TSI721_OBWINLB(x)	(0x40000 + (x) * 20)
 #define TSI721_OBWINLB_BA	0xffff8000
 #define TSI721_OBWINLB_WEN	0x00000001
 
-#define TSI721_OBWINUB(x)	(0x40004 + (x) * 0x20)
+#define TSI721_OBWINUB(x)	(0x40004 + (x) * 20)
 
-#define TSI721_OBWINSZ(x)	(0x40008 + (x) * 0x20)
+#define TSI721_OBWINSZ(x)	(0x40008 + (x) * 20)
 #define TSI721_OBWINSZ_SIZE	0x00001f00
 #define TSI721_OBWIN_SIZE(size)	(__fls(size) - 15)
 
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 501b27c..4426290 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -1028,7 +1028,7 @@ done:
 		return iscsit_add_reject_from_cmd(
 				ISCSI_REASON_BOOKMARK_NO_RESOURCES,
 				1, 1, buf, cmd);
-	} else if (transport_ret &lt; 0) {
+	} else if (transport_ret == -EINVAL) {
 		/*
 		 * Unsupported SAM Opcode.  CHECK_CONDITION will be sent
 		 * in iscsit_execute_cmd() during the CmdSN OOO Execution
diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
index 63e703b..b7c7793 100644
--- a/drivers/target/target_core_pr.c
+++ b/drivers/target/target_core_pr.c
@@ -117,7 +117,7 @@ static struct t10_pr_registration *core_scsi3_locate_pr_reg(struct se_device *,
 					struct se_node_acl *, struct se_session *);
 static void core_scsi3_put_pr_reg(struct t10_pr_registration *);
 
-static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd)
+static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret)
 {
 	struct se_session *se_sess = cmd-&gt;se_sess;
 	struct se_subsystem_dev *su_dev = cmd-&gt;se_dev-&gt;se_sub_dev;
@@ -127,7 +127,7 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd)
 	int conflict = 0;
 
 	if (!crh)
-		return -EINVAL;
+		return false;
 
 	pr_reg = core_scsi3_locate_pr_reg(cmd-&gt;se_dev, se_sess-&gt;se_node_acl,
 			se_sess);
@@ -155,14 +155,16 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd)
 		 */
 		if (pr_reg-&gt;pr_res_holder) {
 			core_scsi3_put_pr_reg(pr_reg);
-			return 1;
+			*ret = 0;
+			return false;
 		}
 		if ((pr_reg-&gt;pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_REGONLY) ||
 		    (pr_reg-&gt;pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_REGONLY) ||
 		    (pr_reg-&gt;pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_ALLREG) ||
 		    (pr_reg-&gt;pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_ALLREG)) {
 			core_scsi3_put_pr_reg(pr_reg);
-			return 1;
+			*ret = 0;
+			return true;
 		}
 		core_scsi3_put_pr_reg(pr_reg);
 		conflict = 1;
@@ -187,10 +189,10 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd)
 			" while active SPC-3 registrations exist,"
 			" returning RESERVATION_CONFLICT\n");
 		cmd-&gt;scsi_sense_reason = TCM_RESERVATION_CONFLICT;
-		return -EBUSY;
+		return true;
 	}
 
-	return 0;
+	return false;
 }
 
 int target_scsi2_reservation_release(struct se_task *task)
@@ -199,18 +201,12 @@ int target_scsi2_reservation_release(struct se_task *task)
 	struct se_device *dev = cmd-&gt;se_dev;
 	struct se_session *sess = cmd-&gt;se_sess;
 	struct se_portal_group *tpg = sess-&gt;se_tpg;
-	int ret = 0, rc;
+	int ret = 0;
 
 	if (!sess || !tpg)
 		goto out;
-	rc = target_check_scsi2_reservation_conflict(cmd);
-	if (rc == 1)
-		goto out;
-	else if (rc &lt; 0) {
-		cmd-&gt;scsi_sense_reason = TCM_RESERVATION_CONFLICT;
-		ret = -EINVAL;
+	if (target_check_scsi2_reservation_conflict(cmd, &amp;ret))
 		goto out;
-	}
 
 	ret = 0;
 	spin_lock(&amp;dev-&gt;dev_reservation_lock);
@@ -247,7 +243,7 @@ int target_scsi2_reservation_reserve(struct se_task *task)
 	struct se_device *dev = cmd-&gt;se_dev;
 	struct se_session *sess = cmd-&gt;se_sess;
 	struct se_portal_group *tpg = sess-&gt;se_tpg;
-	int ret = 0, rc;
+	int ret = 0;
 
 	if ((cmd-&gt;t_task_cdb[1] &amp; 0x01) &amp;&amp;
 	    (cmd-&gt;t_task_cdb[1] &amp; 0x02)) {
@@ -263,14 +259,8 @@ int target_scsi2_reservation_reserve(struct se_task *task)
 	 */
 	if (!sess || !tpg)
 		goto out;
-	rc = target_check_scsi2_reservation_conflict(cmd);
-	if (rc == 1)
+	if (target_check_scsi2_reservation_conflict(cmd, &amp;ret))
 		goto out;
-	else if (rc &lt; 0) {
-		cmd-&gt;scsi_sense_reason = TCM_RESERVATION_CONFLICT;
-		ret = -EINVAL;
-		goto out;
-	}
 
 	ret = 0;
 	spin_lock(&amp;dev-&gt;dev_reservation_lock);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index cd5cd95..58cea07 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -2539,7 +2539,6 @@ static int transport_generic_cmd_sequencer(
 					cmd, cdb, pr_reg_type) != 0) {
 			cmd-&gt;se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION;
 			cmd-&gt;se_cmd_flags |= SCF_SCSI_RESERVATION_CONFLICT;
-			cmd-&gt;scsi_status = SAM_STAT_RESERVATION_CONFLICT;
 			cmd-&gt;scsi_sense_reason = TCM_RESERVATION_CONFLICT;
 			return -EBUSY;
 		}
diff --git a/drivers/video/backlight/s6e63m0.c b/drivers/video/backlight/s6e63m0.c
index 516db70..e132157 100644
--- a/drivers/video/backlight/s6e63m0.c
+++ b/drivers/video/backlight/s6e63m0.c
@@ -690,7 +690,7 @@ static ssize_t s6e63m0_sysfs_store_gamma_mode(struct device *dev,
 	struct backlight_device *bd = NULL;
 	int brightness, rc;
 
-	rc = kstrtouint(buf, 0, &amp;lcd-&gt;gamma_mode);
+	rc = strict_strtoul(buf, 0, (unsigned long *)&amp;lcd-&gt;gamma_mode);
 	if (rc &lt; 0)
 		return rc;
 
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index a306bb6..d2b0888 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -109,7 +109,7 @@ struct afs_call {
 	unsigned		reply_size;	/* current size of reply */
 	unsigned		first_offset;	/* offset into mapping[first] */
 	unsigned		last_to;	/* amount of mapping[last] */
-	unsigned		offset;		/* offset into received data store */
+	unsigned short		offset;		/* offset into received data store */
 	unsigned char		unmarshall;	/* unmarshalling phase */
 	bool			incoming;	/* T if incoming call */
 	bool			send_pages;	/* T if data from mapping should be sent */
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 8ad8c2a..e45a323 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -314,7 +314,6 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
 	struct msghdr msg;
 	struct kvec iov[1];
 	int ret;
-	struct sk_buff *skb;
 
 	_enter("%x,{%d},", addr-&gt;s_addr, ntohs(call-&gt;port));
 
@@ -381,8 +380,6 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
 
 error_do_abort:
 	rxrpc_kernel_abort_call(rxcall, RX_USER_ABORT);
-	while ((skb = skb_dequeue(&amp;call-&gt;rx_queue)))
-		afs_free_skb(skb);
 	rxrpc_kernel_end_call(rxcall);
 	call-&gt;rxcall = NULL;
 error_kill_call:
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 4d9d3a4..ea54cde 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -988,10 +988,6 @@ static int path_count[PATH_ARR_SIZE];
 
 static int path_count_inc(int nests)
 {
-	/* Allow an arbitrary number of depth 1 paths */
-	if (nests == 0)
-		return 0;
-
 	if (++path_count[nests] &gt; path_limits[nests])
 		return -1;
 	return 0;
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
index 501b7f8..d327140 100644
--- a/fs/nilfs2/the_nilfs.c
+++ b/fs/nilfs2/the_nilfs.c
@@ -409,12 +409,6 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
 	nilfs-&gt;ns_first_data_block = le64_to_cpu(sbp-&gt;s_first_data_block);
 	nilfs-&gt;ns_r_segments_percentage =
 		le32_to_cpu(sbp-&gt;s_r_segments_percentage);
-	if (nilfs-&gt;ns_r_segments_percentage &lt; 1 ||
-	    nilfs-&gt;ns_r_segments_percentage &gt; 99) {
-		printk(KERN_ERR "NILFS: invalid reserved segments percentage.\n");
-		return -EINVAL;
-	}
-
 	nilfs_set_nsegments(nilfs, le64_to_cpu(sbp-&gt;s_nsegments));
 	nilfs-&gt;ns_crc_seed = le32_to_cpu(sbp-&gt;s_crc_seed);
 	return 0;
@@ -521,7 +515,6 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
 		brelse(sbh[1]);
 		sbh[1] = NULL;
 		sbp[1] = NULL;
-		valid[1] = 0;
 		swp = 0;
 	}
 	if (!valid[swp]) {
diff --git a/kernel/sys.c b/kernel/sys.c
index 888d227..4070153 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1706,7 +1706,7 @@ static int prctl_set_mm(int opt, unsigned long addr,
 	if (arg4 | arg5)
 		return -EINVAL;
 
-	if (!capable(CAP_SYS_RESOURCE))
+	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 
 	if (addr &gt;= TASK_SIZE)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 58a08fc..d0e57a3 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -230,30 +230,10 @@ struct mem_cgroup {
 	 * the counter to account for memory usage
 	 */
 	struct res_counter res;
-
-	union {
-		/*
-		 * the counter to account for mem+swap usage.
-		 */
-		struct res_counter memsw;
-
-		/*
-		 * rcu_freeing is used only when freeing struct mem_cgroup,
-		 * so put it into a union to avoid wasting more memory.
-		 * It must be disjoint from the css field.  It could be
-		 * in a union with the res field, but res plays a much
-		 * larger part in mem_cgroup life than memsw, and might
-		 * be of interest, even at time of free, when debugging.
-		 * So share rcu_head with the less interesting memsw.
-		 */
-		struct rcu_head rcu_freeing;
-		/*
-		 * But when using vfree(), that cannot be done at
-		 * interrupt time, so we must then queue the work.
-		 */
-		struct work_struct work_freeing;
-	};
-
+	/*
+	 * the counter to account for mem+swap usage.
+	 */
+	struct res_counter memsw;
 	/*
 	 * Per cgroup active and inactive list, similar to the
 	 * per zone LRU lists.
@@ -4800,27 +4780,6 @@ out_free:
 }
 
 /*
- * Helpers for freeing a vzalloc()ed mem_cgroup by RCU,
- * but in process context.  The work_freeing structure is overlaid
- * on the rcu_freeing structure, which itself is overlaid on memsw.
- */
-static void vfree_work(struct work_struct *work)
-{
-	struct mem_cgroup *memcg;
-
-	memcg = container_of(work, struct mem_cgroup, work_freeing);
-	vfree(memcg);
-}
-static void vfree_rcu(struct rcu_head *rcu_head)
-{
-	struct mem_cgroup *memcg;
-
-	memcg = container_of(rcu_head, struct mem_cgroup, rcu_freeing);
-	INIT_WORK(&amp;memcg-&gt;work_freeing, vfree_work);
-	schedule_work(&amp;memcg-&gt;work_freeing);
-}
-
-/*
  * At destroying mem_cgroup, references from swap_cgroup can remain.
  * (scanning all at force_empty is too costly...)
  *
@@ -4843,9 +4802,9 @@ static void __mem_cgroup_free(struct mem_cgroup *memcg)
 
 	free_percpu(memcg-&gt;stat);
 	if (sizeof(struct mem_cgroup) &lt; PAGE_SIZE)
-		kfree_rcu(memcg, rcu_freeing);
+		kfree(memcg);
 	else
-		call_rcu(&amp;memcg-&gt;rcu_freeing, vfree_rcu);
+		vfree(memcg);
 }
 
 static void mem_cgroup_get(struct mem_cgroup *memcg)
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 16c33e3..b853f06 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -257,6 +257,7 @@ static struct inet6_dev *ip6_mc_find_dev_rcu(struct net *net,
 
 		if (rt) {
 			dev = rt-&gt;dst.dev;
+			dev_hold(dev);
 			dst_release(&amp;rt-&gt;dst);
 		}
 	} else
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 22b7664..8c2e3ab 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1077,7 +1077,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
 	struct net *net = dev_net(dev);
 
 	if (unlikely(!idev))
-		return ERR_PTR(-ENODEV);
+		return NULL;
 
 	rt = ip6_dst_alloc(&amp;net-&gt;ipv6.ip6_dst_ops, dev, 0);
 	if (unlikely(!rt)) {
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index b49da6c..1068769 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -943,21 +943,20 @@ ctnetlink_del_conntrack(struct sock *ctnl, struct sk_buff *skb,
 		}
 	}
 
-	if (del_timer(&amp;ct-&gt;timeout)) {
-		if (nf_conntrack_event_report(IPCT_DESTROY, ct,
-					      NETLINK_CB(skb).pid,
-					      nlmsg_report(nlh)) &lt; 0) {
-			nf_ct_delete_from_lists(ct);
-			/* we failed to report the event, try later */
-			nf_ct_insert_dying_list(ct);
-			nf_ct_put(ct);
-			return 0;
-		}
-		/* death_by_timeout would report the event again */
-		set_bit(IPS_DYING_BIT, &amp;ct-&gt;status);
+	if (nf_conntrack_event_report(IPCT_DESTROY, ct,
+				      NETLINK_CB(skb).pid,
+				      nlmsg_report(nlh)) &lt; 0) {
 		nf_ct_delete_from_lists(ct);
+		/* we failed to report the event, try later */
+		nf_ct_insert_dying_list(ct);
 		nf_ct_put(ct);
+		return 0;
 	}
+
+	/* death_by_timeout would report the event again */
+	set_bit(IPS_DYING_BIT, &amp;ct-&gt;status);
+
+	nf_ct_kill(ct);
 	nf_ct_put(ct);
 
 	return 0;
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
index 02a21ab..60d4718 100644
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -469,15 +469,11 @@ enqueue:
 	if (slot-&gt;qlen == 1) {		/* The flow is new */
 		if (q-&gt;tail == NULL) {	/* It is the first flow */
 			slot-&gt;next = x;
+			q-&gt;tail = slot;
 		} else {
 			slot-&gt;next = q-&gt;tail-&gt;next;
 			q-&gt;tail-&gt;next = x;
 		}
-		/* We put this flow at the end of our flow list.
-		 * This might sound unfair for a new flow to wait after old ones,
-		 * but we could endup servicing new flows only, and freeze old ones.
-		 */
-		q-&gt;tail = slot;
 		/* We could use a bigger initial quantum for new flows */
 		slot-&gt;allot = q-&gt;scaled_quantum;
 	}
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 8a4b9bc..7c12650 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -249,8 +249,6 @@ LIB_H += util/include/asm/uaccess.h
 LIB_H += util/include/dwarf-regs.h
 LIB_H += util/include/asm/dwarf2.h
 LIB_H += util/include/asm/cpufeature.h
-LIB_H += util/include/asm/unistd_32.h
-LIB_H += util/include/asm/unistd_64.h
 LIB_H += perf.h
 LIB_H += util/annotate.h
 LIB_H += util/cache.h
diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c
index 2f7073d..eba80c2 100644
--- a/tools/perf/arch/powerpc/util/header.c
+++ b/tools/perf/arch/powerpc/util/header.c
@@ -25,7 +25,7 @@ get_cpuid(char *buffer, size_t sz)
 
 	pvr = mfspr(SPRN_PVR);
 
-	nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr));
+	nb = snprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr));
 
 	/* look for end marker to ensure the entire data fit */
 	if (strchr(buffer, '$')) {
diff --git a/tools/perf/arch/x86/util/header.c b/tools/perf/arch/x86/util/header.c
index 146d12a..f940060 100644
--- a/tools/perf/arch/x86/util/header.c
+++ b/tools/perf/arch/x86/util/header.c
@@ -48,7 +48,7 @@ get_cpuid(char *buffer, size_t sz)
 		if (family &gt;= 0x6)
 			model += ((a &gt;&gt; 16) &amp; 0xf) &lt;&lt; 4;
 	}
-	nb = scnprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step);
+	nb = snprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step);
 
 	/* look for end marker to ensure the entire data fit */
 	if (strchr(buffer, '$')) {
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 3afa39a..16e7d20 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -10,9 +10,6 @@ void get_term_dimensions(struct winsize *ws);
 #define rmb()		asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
 #define cpu_relax()	asm volatile("rep; nop" ::: "memory");
 #define CPUINFO_PROC	"model name"
-#ifndef __NR_perf_event_open
-# define __NR_perf_event_open 336
-#endif
 #endif
 
 #if defined(__x86_64__)
@@ -20,9 +17,6 @@ void get_term_dimensions(struct winsize *ws);
 #define rmb()		asm volatile("lfence" ::: "memory")
 #define cpu_relax()	asm volatile("rep; nop" ::: "memory");
 #define CPUINFO_PROC	"model name"
-#ifndef __NR_perf_event_open
-# define __NR_perf_event_open 298
-#endif
 #endif
 
 #ifdef __powerpc__
diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
index 11e46da..521c38a 100644
--- a/tools/perf/util/color.c
+++ b/tools/perf/util/color.c
@@ -1,4 +1,3 @@
-#include &lt;linux/kernel.h&gt;
 #include "cache.h"
 #include "color.h"
 
@@ -183,12 +182,12 @@ static int __color_vsnprintf(char *bf, size_t size, const char *color,
 	}
 
 	if (perf_use_color_default &amp;&amp; *color)
-		r += scnprintf(bf, size, "%s", color);
-	r += vscnprintf(bf + r, size - r, fmt, args);
+		r += snprintf(bf, size, "%s", color);
+	r += vsnprintf(bf + r, size - r, fmt, args);
 	if (perf_use_color_default &amp;&amp; *color)
-		r += scnprintf(bf + r, size - r, "%s", PERF_COLOR_RESET);
+		r += snprintf(bf + r, size - r, "%s", PERF_COLOR_RESET);
 	if (trail)
-		r += scnprintf(bf + r, size - r, "%s", trail);
+		r += snprintf(bf + r, size - r, "%s", trail);
 	return r;
 }
 
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 14bb035..ecd7f4d 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -280,7 +280,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
 	if (realname == NULL || filename == NULL || linkname == NULL)
 		goto out_free;
 
-	len = scnprintf(filename, size, "%s%s%s",
+	len = snprintf(filename, size, "%s%s%s",
 		       debugdir, is_kallsyms ? "/" : "", realname);
 	if (mkdir_p(filename, 0755))
 		goto out_free;
@@ -295,7 +295,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
 			goto out_free;
 	}
 
-	len = scnprintf(linkname, size, "%s/.build-id/%.2s",
+	len = snprintf(linkname, size, "%s/.build-id/%.2s",
 		       debugdir, sbuild_id);
 
 	if (access(linkname, X_OK) &amp;&amp; mkdir_p(linkname, 0755))
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index e11e482..6f505d1 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -768,7 +768,7 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *he, char *s,
 						     sep ? "%.2f" : "   %6.2f%%",
 						     (period * 100.0) / total);
 		else
-			ret = scnprintf(s, size, sep ? "%.2f" : "   %6.2f%%",
+			ret = snprintf(s, size, sep ? "%.2f" : "   %6.2f%%",
 				       (period * 100.0) / total);
 		if (symbol_conf.show_cpu_utilization) {
 			ret += percent_color_snprintf(s + ret, size - ret,
@@ -791,20 +791,20 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *he, char *s,
 			}
 		}
 	} else
-		ret = scnprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
+		ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
 
 	if (symbol_conf.show_nr_samples) {
 		if (sep)
-			ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events);
+			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events);
 		else
-			ret += scnprintf(s + ret, size - ret, "%11" PRIu64, nr_events);
+			ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events);
 	}
 
 	if (symbol_conf.show_total_period) {
 		if (sep)
-			ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
+			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
 		else
-			ret += scnprintf(s + ret, size - ret, " %12" PRIu64, period);
+			ret += snprintf(s + ret, size - ret, " %12" PRIu64, period);
 	}
 
 	if (pair_hists) {
@@ -819,25 +819,25 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *he, char *s,
 		diff = new_percent - old_percent;
 
 		if (fabs(diff) &gt;= 0.01)
-			ret += scnprintf(bf, sizeof(bf), "%+4.2F%%", diff);
+			snprintf(bf, sizeof(bf), "%+4.2F%%", diff);
 		else
-			ret += scnprintf(bf, sizeof(bf), " ");
+			snprintf(bf, sizeof(bf), " ");
 
 		if (sep)
-			ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf);
+			ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf);
 		else
-			ret += scnprintf(s + ret, size - ret, "%11.11s", bf);
+			ret += snprintf(s + ret, size - ret, "%11.11s", bf);
 
 		if (show_displacement) {
 			if (displacement)
-				ret += scnprintf(bf, sizeof(bf), "%+4ld", displacement);
+				snprintf(bf, sizeof(bf), "%+4ld", displacement);
 			else
-				ret += scnprintf(bf, sizeof(bf), " ");
+				snprintf(bf, sizeof(bf), " ");
 
 			if (sep)
-				ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf);
+				ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf);
 			else
-				ret += scnprintf(s + ret, size - ret, "%6.6s", bf);
+				ret += snprintf(s + ret, size - ret, "%6.6s", bf);
 		}
 	}
 
@@ -855,7 +855,7 @@ int hist_entry__snprintf(struct hist_entry *he, char *s, size_t size,
 		if (se-&gt;elide)
 			continue;
 
-		ret += scnprintf(s + ret, size - ret, "%s", sep ?: "  ");
+		ret += snprintf(s + ret, size - ret, "%s", sep ?: "  ");
 		ret += se-&gt;se_snprintf(he, s + ret, size - ret,
 				       hists__col_len(hists, se-&gt;se_width_idx));
 	}
diff --git a/tools/perf/util/include/asm/unistd_32.h b/tools/perf/util/include/asm/unistd_32.h
deleted file mode 100644
index 8b13789..0000000
--- a/tools/perf/util/include/asm/unistd_32.h
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/tools/perf/util/include/asm/unistd_64.h b/tools/perf/util/include/asm/unistd_64.h
deleted file mode 100644
index 8b13789..0000000
--- a/tools/perf/util/include/asm/unistd_64.h
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 076c9d4..16da30d 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -33,9 +33,6 @@ static int repsep_snprintf(char *bf, size_t size, const char *fmt, ...)
 		}
 	}
 	va_end(ap);
-
-	if (n &gt;= (int)size)
-		return size - 1;
 	return n;
 }
 
diff --git a/tools/perf/util/strbuf.c b/tools/perf/util/strbuf.c
index 2eeb51b..92e0685 100644
--- a/tools/perf/util/strbuf.c
+++ b/tools/perf/util/strbuf.c
@@ -1,5 +1,4 @@
 #include "cache.h"
-#include &lt;linux/kernel.h&gt;
 
 int prefixcmp(const char *str, const char *prefix)
 {
@@ -90,14 +89,14 @@ void strbuf_addf(struct strbuf *sb, const char *fmt, ...)
 	if (!strbuf_avail(sb))
 		strbuf_grow(sb, 64);
 	va_start(ap, fmt);
-	len = vscnprintf(sb-&gt;buf + sb-&gt;len, sb-&gt;alloc - sb-&gt;len, fmt, ap);
+	len = vsnprintf(sb-&gt;buf + sb-&gt;len, sb-&gt;alloc - sb-&gt;len, fmt, ap);
 	va_end(ap);
 	if (len &lt; 0)
-		die("your vscnprintf is broken");
+		die("your vsnprintf is broken");
 	if (len &gt; strbuf_avail(sb)) {
 		strbuf_grow(sb, len);
 		va_start(ap, fmt);
-		len = vscnprintf(sb-&gt;buf + sb-&gt;len, sb-&gt;alloc - sb-&gt;len, fmt, ap);
+		len = vsnprintf(sb-&gt;buf + sb-&gt;len, sb-&gt;alloc - sb-&gt;len, fmt, ap);
 		va_end(ap);
 		if (len &gt; strbuf_avail(sb)) {
 			die("this should not happen, your snprintf is broken");
diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
index bb9197c..e81aef1 100644
--- a/tools/perf/util/ui/browsers/hists.c
+++ b/tools/perf/util/ui/browsers/hists.c
@@ -837,15 +837,15 @@ static int hists__browser_title(struct hists *self, char *bf, size_t size,
 	unsigned long nr_events = self-&gt;stats.nr_events[PERF_RECORD_SAMPLE];
 
 	nr_events = convert_unit(nr_events, &amp;unit);
-	printed = scnprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name);
+	printed = snprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name);
 
 	if (thread)
-		printed += scnprintf(bf + printed, size - printed,
+		printed += snprintf(bf + printed, size - printed,
 				    ", Thread: %s(%d)",
 				    (thread-&gt;comm_set ? thread-&gt;comm : ""),
 				    thread-&gt;pid);
 	if (dso)
-		printed += scnprintf(bf + printed, size - printed,
+		printed += snprintf(bf + printed, size - printed,
 				    ", DSO: %s", dso-&gt;short_name);
 	return printed;
 }
@@ -1095,7 +1095,7 @@ static void perf_evsel_menu__write(struct ui_browser *browser,
 						       HE_COLORSET_NORMAL);
 
 	nr_events = convert_unit(nr_events, &amp;unit);
-	printed = scnprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events,
+	printed = snprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events,
 			   unit, unit == ' ' ? "" : " ", ev_name);
 	slsmg_printf("%s", bf);
 
@@ -1105,8 +1105,8 @@ static void perf_evsel_menu__write(struct ui_browser *browser,
 		if (!current_entry)
 			ui_browser__set_color(browser, HE_COLORSET_TOP);
 		nr_events = convert_unit(nr_events, &amp;unit);
-		printed += scnprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!",
-				     nr_events, unit, unit == ' ' ? "" : " ");
+		snprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", nr_events,
+			 unit, unit == ' ' ? "" : " ");
 		warn = bf;
 	}
 
diff --git a/tools/perf/util/ui/helpline.c b/tools/perf/util/ui/helpline.c
index 2f950c2..4f48f59 100644
--- a/tools/perf/util/ui/helpline.c
+++ b/tools/perf/util/ui/helpline.c
@@ -64,7 +64,7 @@ int ui_helpline__show_help(const char *format, va_list ap)
 	static int backlog;
 
 	pthread_mutex_lock(&amp;ui__lock);
-	ret = vscnprintf(ui_helpline__last_msg + backlog,
+	ret = vsnprintf(ui_helpline__last_msg + backlog,
 			sizeof(ui_helpline__last_msg) - backlog, format, ap);
 	backlog += ret;
 
</pre></body></html>