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

Changed files
+23 -12
drivers
staging
octeon
ozwpan
tidspbridge
zcache
+1
drivers/staging/octeon/ethernet-rx.c
··· 36 #include <linux/prefetch.h> 37 #include <linux/ratelimit.h> 38 #include <linux/smp.h> 39 #include <net/dst.h> 40 #ifdef CONFIG_XFRM 41 #include <linux/xfrm.h>
··· 36 #include <linux/prefetch.h> 37 #include <linux/ratelimit.h> 38 #include <linux/smp.h> 39 + #include <linux/interrupt.h> 40 #include <net/dst.h> 41 #ifdef CONFIG_XFRM 42 #include <linux/xfrm.h>
+1
drivers/staging/octeon/ethernet-tx.c
··· 32 #include <linux/ip.h> 33 #include <linux/ratelimit.h> 34 #include <linux/string.h> 35 #include <net/dst.h> 36 #ifdef CONFIG_XFRM 37 #include <linux/xfrm.h>
··· 32 #include <linux/ip.h> 33 #include <linux/ratelimit.h> 34 #include <linux/string.h> 35 + #include <linux/interrupt.h> 36 #include <net/dst.h> 37 #ifdef CONFIG_XFRM 38 #include <linux/xfrm.h>
+1
drivers/staging/octeon/ethernet.c
··· 31 #include <linux/etherdevice.h> 32 #include <linux/phy.h> 33 #include <linux/slab.h> 34 35 #include <net/dst.h> 36
··· 31 #include <linux/etherdevice.h> 32 #include <linux/phy.h> 33 #include <linux/slab.h> 34 + #include <linux/interrupt.h> 35 36 #include <net/dst.h> 37
-2
drivers/staging/ozwpan/ozpd.c
··· 383 pd->tx_pool = &f->link; 384 pd->tx_pool_count++; 385 f = 0; 386 - } else { 387 - kfree(f); 388 } 389 spin_unlock_bh(&pd->tx_frame_lock); 390 if (f)
··· 383 pd->tx_pool = &f->link; 384 pd->tx_pool_count++; 385 f = 0; 386 } 387 spin_unlock_bh(&pd->tx_frame_lock); 388 if (f)
+12 -8
drivers/staging/tidspbridge/core/tiomap3430.c
··· 79 #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) 80 #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) 81 82 - #define OMAP343X_CTRL_REGADDR(reg) \ 83 - OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg)) 84 - 85 - 86 /* Forward Declarations: */ 87 static int bridge_brd_monitor(struct bridge_dev_context *dev_ctxt); 88 static int bridge_brd_read(struct bridge_dev_context *dev_ctxt, ··· 414 415 /* Assert RST1 i.e only the RST only for DSP megacell */ 416 if (!status) { 417 (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2_MASK, 418 OMAP3430_RST1_IVA2_MASK, OMAP3430_IVA2_MOD, 419 OMAP2_RM_RSTCTRL); 420 /* Mask address with 1K for compatibility */ 421 __raw_writel(dsp_addr & OMAP3_IVA2_BOOTADDR_MASK, 422 - OMAP343X_CTRL_REGADDR( 423 - OMAP343X_CONTROL_IVA2_BOOTADDR)); 424 /* 425 * Set bootmode to self loop if dsp_debug flag is true 426 */ 427 __raw_writel((dsp_debug) ? OMAP3_IVA2_BOOTMOD_IDLE : 0, 428 - OMAP343X_CTRL_REGADDR( 429 - OMAP343X_CONTROL_IVA2_BOOTMOD)); 430 } 431 } 432 if (!status) {
··· 79 #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) 80 #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) 81 82 /* Forward Declarations: */ 83 static int bridge_brd_monitor(struct bridge_dev_context *dev_ctxt); 84 static int bridge_brd_read(struct bridge_dev_context *dev_ctxt, ··· 418 419 /* Assert RST1 i.e only the RST only for DSP megacell */ 420 if (!status) { 421 + /* 422 + * XXX: ioremapping MUST be removed once ctrl 423 + * function is made available. 424 + */ 425 + void __iomem *ctrl = ioremap(OMAP343X_CTRL_BASE, SZ_4K); 426 + if (!ctrl) 427 + return -ENOMEM; 428 + 429 (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2_MASK, 430 OMAP3430_RST1_IVA2_MASK, OMAP3430_IVA2_MOD, 431 OMAP2_RM_RSTCTRL); 432 /* Mask address with 1K for compatibility */ 433 __raw_writel(dsp_addr & OMAP3_IVA2_BOOTADDR_MASK, 434 + ctrl + OMAP343X_CONTROL_IVA2_BOOTADDR); 435 /* 436 * Set bootmode to self loop if dsp_debug flag is true 437 */ 438 __raw_writel((dsp_debug) ? OMAP3_IVA2_BOOTMOD_IDLE : 0, 439 + ctrl + OMAP343X_CONTROL_IVA2_BOOTMOD); 440 + 441 + iounmap(ctrl); 442 } 443 } 444 if (!status) {
+7 -1
drivers/staging/tidspbridge/core/wdt.c
··· 53 int ret = 0; 54 55 dsp_wdt.sm_wdt = NULL; 56 - dsp_wdt.reg_base = OMAP2_L4_IO_ADDRESS(OMAP34XX_WDT3_BASE); 57 tasklet_init(&dsp_wdt.wdt3_tasklet, dsp_wdt_dpc, 0); 58 59 dsp_wdt.fclk = clk_get(NULL, "wdt3_fck"); ··· 102 dsp_wdt.fclk = NULL; 103 dsp_wdt.iclk = NULL; 104 dsp_wdt.sm_wdt = NULL; 105 dsp_wdt.reg_base = NULL; 106 } 107
··· 53 int ret = 0; 54 55 dsp_wdt.sm_wdt = NULL; 56 + dsp_wdt.reg_base = ioremap(OMAP34XX_WDT3_BASE, SZ_4K); 57 + if (!dsp_wdt.reg_base) 58 + return -ENOMEM; 59 + 60 tasklet_init(&dsp_wdt.wdt3_tasklet, dsp_wdt_dpc, 0); 61 62 dsp_wdt.fclk = clk_get(NULL, "wdt3_fck"); ··· 99 dsp_wdt.fclk = NULL; 100 dsp_wdt.iclk = NULL; 101 dsp_wdt.sm_wdt = NULL; 102 + 103 + if (dsp_wdt.reg_base) 104 + iounmap(dsp_wdt.reg_base); 105 dsp_wdt.reg_base = NULL; 106 } 107
+1 -1
drivers/staging/zcache/Kconfig
··· 2 bool "Dynamic compression of swap pages and clean pagecache pages" 3 # X86 dependency is because zsmalloc uses non-portable pte/tlb 4 # functions 5 - depends on (CLEANCACHE || FRONTSWAP) && CRYPTO && X86 6 select ZSMALLOC 7 select CRYPTO_LZO 8 default n
··· 2 bool "Dynamic compression of swap pages and clean pagecache pages" 3 # X86 dependency is because zsmalloc uses non-portable pte/tlb 4 # functions 5 + depends on (CLEANCACHE || FRONTSWAP) && CRYPTO=y && X86 6 select ZSMALLOC 7 select CRYPTO_LZO 8 default n