Эх сурвалжийг харах

Merge tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging tree fixes from Greg Kroah-Hartman:
 "Here are some tiny drivers/staging/ bugfixes.  Some build fixes that
  were recently reported, as well as one kfree bug that is hitting a
  number of users."

* tag 'staging-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging: ozwpan: Fix bug where kfree is called twice.
  staging: octeon-ethernet: fix build errors by including interrupt.h
  staging: zcache: fix Kconfig crypto dependency
  staging: tidspbridge: remove usage of OMAP2_L4_IO_ADDRESS
Linus Torvalds 13 жил өмнө
parent
commit
de9e24eda3

+ 1 - 0
drivers/staging/octeon/ethernet-rx.c

@@ -36,6 +36,7 @@
 #include <linux/prefetch.h>
 #include <linux/prefetch.h>
 #include <linux/ratelimit.h>
 #include <linux/ratelimit.h>
 #include <linux/smp.h>
 #include <linux/smp.h>
+#include <linux/interrupt.h>
 #include <net/dst.h>
 #include <net/dst.h>
 #ifdef CONFIG_XFRM
 #ifdef CONFIG_XFRM
 #include <linux/xfrm.h>
 #include <linux/xfrm.h>

+ 1 - 0
drivers/staging/octeon/ethernet-tx.c

@@ -32,6 +32,7 @@
 #include <linux/ip.h>
 #include <linux/ip.h>
 #include <linux/ratelimit.h>
 #include <linux/ratelimit.h>
 #include <linux/string.h>
 #include <linux/string.h>
+#include <linux/interrupt.h>
 #include <net/dst.h>
 #include <net/dst.h>
 #ifdef CONFIG_XFRM
 #ifdef CONFIG_XFRM
 #include <linux/xfrm.h>
 #include <linux/xfrm.h>

+ 1 - 0
drivers/staging/octeon/ethernet.c

@@ -31,6 +31,7 @@
 #include <linux/etherdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/phy.h>
 #include <linux/phy.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/interrupt.h>
 
 
 #include <net/dst.h>
 #include <net/dst.h>
 
 

+ 0 - 2
drivers/staging/ozwpan/ozpd.c

@@ -383,8 +383,6 @@ static void oz_tx_frame_free(struct oz_pd *pd, struct oz_tx_frame *f)
 		pd->tx_pool = &f->link;
 		pd->tx_pool = &f->link;
 		pd->tx_pool_count++;
 		pd->tx_pool_count++;
 		f = 0;
 		f = 0;
-	} else {
-		kfree(f);
 	}
 	}
 	spin_unlock_bh(&pd->tx_frame_lock);
 	spin_unlock_bh(&pd->tx_frame_lock);
 	if (f)
 	if (f)

+ 12 - 8
drivers/staging/tidspbridge/core/tiomap3430.c

@@ -79,10 +79,6 @@
 #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190)
 #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190)
 #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194)
 #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194)
 
 
-#define OMAP343X_CTRL_REGADDR(reg) \
-	OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg))
-
-
 /* Forward Declarations: */
 /* Forward Declarations: */
 static int bridge_brd_monitor(struct bridge_dev_context *dev_ctxt);
 static int bridge_brd_monitor(struct bridge_dev_context *dev_ctxt);
 static int bridge_brd_read(struct bridge_dev_context *dev_ctxt,
 static int bridge_brd_read(struct bridge_dev_context *dev_ctxt,
@@ -418,19 +414,27 @@ static int bridge_brd_start(struct bridge_dev_context *dev_ctxt,
 
 
 		/* Assert RST1 i.e only the RST only for DSP megacell */
 		/* Assert RST1 i.e only the RST only for DSP megacell */
 		if (!status) {
 		if (!status) {
+			/*
+			 * XXX: ioremapping  MUST be removed once ctrl
+			 * function is made available.
+			 */
+			void __iomem *ctrl = ioremap(OMAP343X_CTRL_BASE, SZ_4K);
+			if (!ctrl)
+				return -ENOMEM;
+
 			(*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2_MASK,
 			(*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2_MASK,
 					OMAP3430_RST1_IVA2_MASK, OMAP3430_IVA2_MOD,
 					OMAP3430_RST1_IVA2_MASK, OMAP3430_IVA2_MOD,
 					OMAP2_RM_RSTCTRL);
 					OMAP2_RM_RSTCTRL);
 			/* Mask address with 1K for compatibility */
 			/* Mask address with 1K for compatibility */
 			__raw_writel(dsp_addr & OMAP3_IVA2_BOOTADDR_MASK,
 			__raw_writel(dsp_addr & OMAP3_IVA2_BOOTADDR_MASK,
-					OMAP343X_CTRL_REGADDR(
-					OMAP343X_CONTROL_IVA2_BOOTADDR));
+					ctrl + OMAP343X_CONTROL_IVA2_BOOTADDR);
 			/*
 			/*
 			 * Set bootmode to self loop if dsp_debug flag is true
 			 * Set bootmode to self loop if dsp_debug flag is true
 			 */
 			 */
 			__raw_writel((dsp_debug) ? OMAP3_IVA2_BOOTMOD_IDLE : 0,
 			__raw_writel((dsp_debug) ? OMAP3_IVA2_BOOTMOD_IDLE : 0,
-					OMAP343X_CTRL_REGADDR(
-					OMAP343X_CONTROL_IVA2_BOOTMOD));
+					ctrl + OMAP343X_CONTROL_IVA2_BOOTMOD);
+
+			iounmap(ctrl);
 		}
 		}
 	}
 	}
 	if (!status) {
 	if (!status) {

+ 7 - 1
drivers/staging/tidspbridge/core/wdt.c

@@ -53,7 +53,10 @@ int dsp_wdt_init(void)
 	int ret = 0;
 	int ret = 0;
 
 
 	dsp_wdt.sm_wdt = NULL;
 	dsp_wdt.sm_wdt = NULL;
-	dsp_wdt.reg_base = OMAP2_L4_IO_ADDRESS(OMAP34XX_WDT3_BASE);
+	dsp_wdt.reg_base = ioremap(OMAP34XX_WDT3_BASE, SZ_4K);
+	if (!dsp_wdt.reg_base)
+		return -ENOMEM;
+
 	tasklet_init(&dsp_wdt.wdt3_tasklet, dsp_wdt_dpc, 0);
 	tasklet_init(&dsp_wdt.wdt3_tasklet, dsp_wdt_dpc, 0);
 
 
 	dsp_wdt.fclk = clk_get(NULL, "wdt3_fck");
 	dsp_wdt.fclk = clk_get(NULL, "wdt3_fck");
@@ -99,6 +102,9 @@ void dsp_wdt_exit(void)
 	dsp_wdt.fclk = NULL;
 	dsp_wdt.fclk = NULL;
 	dsp_wdt.iclk = NULL;
 	dsp_wdt.iclk = NULL;
 	dsp_wdt.sm_wdt = NULL;
 	dsp_wdt.sm_wdt = NULL;
+
+	if (dsp_wdt.reg_base)
+		iounmap(dsp_wdt.reg_base);
 	dsp_wdt.reg_base = NULL;
 	dsp_wdt.reg_base = NULL;
 }
 }
 
 

+ 1 - 1
drivers/staging/zcache/Kconfig

@@ -2,7 +2,7 @@ config ZCACHE
 	bool "Dynamic compression of swap pages and clean pagecache pages"
 	bool "Dynamic compression of swap pages and clean pagecache pages"
 	# X86 dependency is because zsmalloc uses non-portable pte/tlb
 	# X86 dependency is because zsmalloc uses non-portable pte/tlb
 	# functions
 	# functions
-	depends on (CLEANCACHE || FRONTSWAP) && CRYPTO && X86
+	depends on (CLEANCACHE || FRONTSWAP) && CRYPTO=y && X86
 	select ZSMALLOC
 	select ZSMALLOC
 	select CRYPTO_LZO
 	select CRYPTO_LZO
 	default n
 	default n