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