Commit 203f3394 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23:
  sh: remove extraneous ; on scif_sercon_putc wait loop
  sh: Add missing dma_sync_single_range_for_*().
  sh: panic on machvec section misalignment.
  sh: Fix PTRACE_PEEKTEXT/PEEKDATA fallout from generic_ptrace_peekdata().
parents ef1c5339 96989d9d
...@@ -76,7 +76,7 @@ static void scif_sercon_putc(int c) ...@@ -76,7 +76,7 @@ static void scif_sercon_putc(int c)
sci_in(&scif_port, SCxSR); sci_in(&scif_port, SCxSR);
sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40));
while ((sci_in(&scif_port, SCxSR) & 0x40) == 0); while ((sci_in(&scif_port, SCxSR) & 0x40) == 0)
; ;
if (c == '\n') if (c == '\n')
......
...@@ -90,6 +90,13 @@ void __init sh_mv_setup(void) ...@@ -90,6 +90,13 @@ void __init sh_mv_setup(void)
machvec_size = ((unsigned long)&__machvec_end - machvec_size = ((unsigned long)&__machvec_end -
(unsigned long)&__machvec_start); (unsigned long)&__machvec_start);
/*
* Sanity check for machvec section alignment. Ensure
* __initmv hasn't been misused.
*/
if (machvec_size % sizeof(struct sh_machine_vector))
panic("machvec misaligned, invalid __initmv use?");
/* /*
* If the machvec hasn't been preselected, use the first * If the machvec hasn't been preselected, use the first
* vector (usually the only one) from .machvec.init. * vector (usually the only one) from .machvec.init.
......
...@@ -93,6 +93,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) ...@@ -93,6 +93,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
case PTRACE_PEEKTEXT: /* read word at location addr. */ case PTRACE_PEEKTEXT: /* read word at location addr. */
case PTRACE_PEEKDATA: case PTRACE_PEEKDATA:
ret = generic_ptrace_peekdata(child, addr, data); ret = generic_ptrace_peekdata(child, addr, data);
break;
/* read the word at location addr in the USER area. */ /* read the word at location addr in the USER area. */
case PTRACE_PEEKUSR: { case PTRACE_PEEKUSR: {
......
...@@ -160,6 +160,25 @@ static inline void dma_sync_single_for_device(struct device *dev, ...@@ -160,6 +160,25 @@ static inline void dma_sync_single_for_device(struct device *dev,
dma_sync_single(dev, dma_handle, size, dir); dma_sync_single(dev, dma_handle, size, dir);
} }
static inline void dma_sync_single_range_for_cpu(struct device *dev,
dma_addr_t dma_handle,
unsigned long offset,
size_t size,
enum dma_data_direction direction)
{
dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction);
}
static inline void dma_sync_single_range_for_device(struct device *dev,
dma_addr_t dma_handle,
unsigned long offset,
size_t size,
enum dma_data_direction direction)
{
dma_sync_single_for_device(dev, dma_handle+offset, size, direction);
}
static inline void dma_sync_sg_for_cpu(struct device *dev, static inline void dma_sync_sg_for_cpu(struct device *dev,
struct scatterlist *sg, int nelems, struct scatterlist *sg, int nelems,
enum dma_data_direction dir) enum dma_data_direction dir)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment