Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 15 Jun 2007 23:13:46 +0000 (16:13 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 15 Jun 2007 23:13:46 +0000 (16:13 -0700)
* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32:
  [AVR32] Define ARCH_KMALLOC_MINALIGN to L1_CACHE_BYTES
  [AVR32] STK1000: Set SPI_MODE_3 in the ltv350qv board info
  [AVR32] gpio_*_cansleep() fix
  [AVR32] ratelimit segfault reporting rate

arch/avr32/boards/atstk1000/atstk1002.c
arch/avr32/mm/fault.c
include/asm-avr32/arch-at32ap/gpio.h
include/asm-avr32/cache.h

index fe1dbe2e28f49a82508dd966e07af6de243cf0ea..e253e86a1a39205b478a047b33d87fbad974c70d 100644 (file)
@@ -42,6 +42,7 @@ static struct spi_board_info spi0_board_info[] __initdata = {
                .modalias       = "ltv350qv",
                .max_speed_hz   = 16000000,
                .chip_select    = 1,
+               .mode           = SPI_MODE_3,
        },
 };
 
index e011f1ce1875f500507638e6317f8a66d9061c7a..4b2495285d948246372c91aa06f37ed893ad992d 100644 (file)
@@ -158,7 +158,7 @@ bad_area:
        up_read(&mm->mmap_sem);
 
        if (user_mode(regs)) {
-               if (exception_trace)
+               if (exception_trace && printk_ratelimit())
                        printk("%s%s[%d]: segfault at %08lx pc %08lx "
                               "sp %08lx ecr %lu\n",
                               is_init(tsk) ? KERN_EMERG : KERN_INFO,
index 80a21aa9ae77016158e12bad83064ca4a9d2a39f..af7f9535bab32bcaf29a1d253756cfb3f7526142 100644 (file)
@@ -14,6 +14,8 @@ int gpio_direction_output(unsigned int gpio, int value);
 int gpio_get_value(unsigned int gpio);
 void gpio_set_value(unsigned int gpio, int value);
 
+#include <asm-generic/gpio.h>          /* cansleep wrappers */
+
 static inline int gpio_to_irq(unsigned int gpio)
 {
        return gpio + GPIO_IRQ_BASE;
index dabb955f3c00fd167dfca1671ea36f6257ba3371..d3cf35ab11ab127854c90385554f743848bfe371 100644 (file)
@@ -4,6 +4,15 @@
 #define L1_CACHE_SHIFT 5
 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
 
+/*
+ * Memory returned by kmalloc() may be used for DMA, so we must make
+ * sure that all such allocations are cache aligned. Otherwise,
+ * unrelated code may cause parts of the buffer to be read into the
+ * cache before the transfer is done, causing old data to be seen by
+ * the CPU.
+ */
+#define ARCH_KMALLOC_MINALIGN  L1_CACHE_BYTES
+
 #ifndef __ASSEMBLER__
 struct cache_info {
        unsigned int ways;