Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 120070
b: refs/heads/master
c: 716777d
h: refs/heads/master
v: v3
  • Loading branch information
Magnus Damm authored and Paul Mundt committed Dec 22, 2008
1 parent 8dbda67 commit 05db5fc
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0c9122323acb0c3410dfbd219cb47f4c2e9305e3
refs/heads/master: 716777db7270255f1f7210fd87a7188b08c9a267
11 changes: 11 additions & 0 deletions trunk/arch/sh/include/asm/addrspace.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,16 @@
/* Check if an address can be reached in 29 bits */
#define IS_29BIT(a) (((unsigned long)(a)) < 0x20000000)

#ifdef CONFIG_SH_STORE_QUEUES
/*
* This is a special case for the SH-4 store queues, as pages for this
* space still need to be faulted in before it's possible to flush the
* store queue cache for writeout to the remapped region.
*/
#define P3_ADDR_MAX (P4SEG_STORE_QUE + 0x04000000)
#else
#define P3_ADDR_MAX P4SEG
#endif

#endif /* __KERNEL__ */
#endif /* __ASM_SH_ADDRSPACE_H */
4 changes: 4 additions & 0 deletions trunk/arch/sh/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,10 @@ __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags)

return (void __iomem *)P2SEGADDR(offset);
}

/* P4 above the store queues are always mapped. */
if (unlikely(offset >= P3_ADDR_MAX))
return (void __iomem *)P4SEGADDR(offset);
#endif

return __ioremap(offset, size, flags);
Expand Down
11 changes: 0 additions & 11 deletions trunk/arch/sh/mm/fault_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,17 +265,6 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
return ret;
}

#ifdef CONFIG_SH_STORE_QUEUES
/*
* This is a special case for the SH-4 store queues, as pages for this
* space still need to be faulted in before it's possible to flush the
* store queue cache for writeout to the remapped region.
*/
#define P3_ADDR_MAX (P4SEG_STORE_QUE + 0x04000000)
#else
#define P3_ADDR_MAX P4SEG
#endif

/*
* Called with interrupts disabled.
*/
Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/sh/mm/ioremap_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,10 @@ EXPORT_SYMBOL(__ioremap);
void __iounmap(void __iomem *addr)
{
unsigned long vaddr = (unsigned long __force)addr;
unsigned long seg = PXSEG(vaddr);
struct vm_struct *p;

if (PXSEG(vaddr) < P3SEG || is_pci_memaddr(vaddr))
if (seg < P3SEG || seg >= P3_ADDR_MAX || is_pci_memaddr(vaddr))
return;

#ifdef CONFIG_32BIT
Expand Down

0 comments on commit 05db5fc

Please sign in to comment.