X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=arch%2Farm%2Fmm%2Fcache-l2x0.c;h=9819869d2bc90954967a5a1ca0e636c883c09e2f;hb=ac1d426e825ab5778995f2f6f053ca2e6b45c622;hp=78f0fc8595e2bb4b21a39bb6af0155fef93e6bf9;hpb=fda0e18c8a7a3e02747c2b045b4fcd2c920410b9;p=deliverable%2Flinux.git diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 78f0fc8595e2..9819869d2bc9 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -94,6 +94,15 @@ static inline void l2x0_flush_line(unsigned long addr) } #endif +static void l2x0_cache_sync(void) +{ + unsigned long flags; + + spin_lock_irqsave(&l2x0_lock, flags); + cache_sync(); + spin_unlock_irqrestore(&l2x0_lock, flags); +} + static inline void l2x0_inv_all(void) { unsigned long flags; @@ -252,6 +261,7 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask) outer_cache.inv_range = l2x0_inv_range; outer_cache.clean_range = l2x0_clean_range; outer_cache.flush_range = l2x0_flush_range; + outer_cache.sync = l2x0_cache_sync; printk(KERN_INFO "%s cache controller enabled\n", type); printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x\n",