Changeset 37214


Ignore:
Timestamp:
2013-07-09T14:52:18+02:00 (5 years ago)
Author:
nbd
Message:

ar71xx: add linux 3.10

Signed-off-by: Felix Fietkau <nbd@…>

Location:
trunk/target/linux/ar71xx
Files:
2 added
1 edited
66 copied

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/config-3.10

    r37213 r37214  
    104104CONFIG_CC_OPTIMIZE_FOR_SIZE=y 
    105105CONFIG_CEVT_R4K=y 
     106CONFIG_CLONE_BACKWARDS=y 
    106107CONFIG_CMDLINE="rootfstype=squashfs,yaffs,jffs2 noinitrd" 
    107108CONFIG_CMDLINE_BOOL=y 
     
    127128CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    128129CONFIG_GENERIC_CMOS_UPDATE=y 
    129 CONFIG_GENERIC_GPIO=y 
    130130CONFIG_GENERIC_IO=y 
    131131CONFIG_GENERIC_IRQ_SHOW=y 
     
    133133CONFIG_GENERIC_SMP_IDLE_THREAD=y 
    134134CONFIG_GPIOLIB=y 
     135CONFIG_GPIO_DEVRES=y 
    135136CONFIG_GPIO_NXP_74HC153=y 
    136137CONFIG_GPIO_PCF857X=y 
     
    140141CONFIG_HAS_IOMEM=y 
    141142CONFIG_HAS_IOPORT=y 
     143# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set 
    142144CONFIG_HAVE_ARCH_JUMP_LABEL=y 
    143145CONFIG_HAVE_ARCH_KGDB=y 
    144 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y 
     146# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set 
    145147CONFIG_HAVE_CLK=y 
    146148CONFIG_HAVE_C_RECORDMCOUNT=y 
     
    156158CONFIG_HAVE_GENERIC_HARDIRQS=y 
    157159CONFIG_HAVE_IDE=y 
    158 CONFIG_HAVE_IRQ_WORK=y 
     160CONFIG_HAVE_KVM=y 
    159161CONFIG_HAVE_MEMBLOCK=y 
    160162CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 
     
    164166CONFIG_HAVE_PERF_EVENTS=y 
    165167CONFIG_HW_HAS_PCI=y 
     168CONFIG_HZ_PERIODIC=y 
    166169CONFIG_I2C=y 
    167170CONFIG_I2C_ALGOBIT=y 
     
    176179CONFIG_IRQ_DOMAIN=y 
    177180CONFIG_IRQ_FORCED_THREADING=y 
     181CONFIG_IRQ_WORK=y 
    178182# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 
    179183# CONFIG_LEDS_TRIGGER_NETDEV is not set 
     
    211215CONFIG_NET_DSA_MV88E6063=y 
    212216CONFIG_NET_DSA_TAG_TRAILER=y 
     217# CONFIG_NET_IP_TUNNEL is not set 
    213218CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y 
    214219CONFIG_PAGEFLAGS_EXTENDED=y 
     
    217222CONFIG_PCI_DISABLE_COMMON_QUIRKS=y 
    218223CONFIG_PCI_DOMAINS=y 
    219 CONFIG_PERCPU_RWSEM=y 
    220224CONFIG_PERF_USE_VMALLOC=y 
    221225CONFIG_PHYLIB=y 
    222226# CONFIG_PREEMPT_RCU is not set 
     227# CONFIG_RCU_STALL_COMMON is not set 
    223228CONFIG_RTL8306_PHY=y 
    224229CONFIG_RTL8366RB_PHY=y 
  • trunk/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c

    r35687 r37214  
    132132 
    133133        ag->phy_dev = phy_connect(dev, dev_name(&phydev->dev), 
    134                                   &ag71xx_phy_link_adjust, 0, 
     134                                  &ag71xx_phy_link_adjust, 
    135135                                  pdata->phy_if_mode); 
    136136 
  • trunk/target/linux/ar71xx/patches-3.10/206-spi-ath79-make-chipselect-logic-more-flexible.patch

    r37213 r37214  
    171171        struct spi_bitbang      bitbang; 
    172172        u32                     ioc_base; 
    173 @@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct 
     173@@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct  
    174174 { 
    175175        struct ath79_spi *sp = ath79_spidev_to_sp(spi); 
     
    179179        if (is_active) { 
    180180                /* set initial clock polarity */ 
    181 @@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct 
     181@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct  
    182182                ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base); 
    183183        } 
  • trunk/target/linux/ar71xx/patches-3.10/310-lib-add-rle-decompression.patch

    r37213 r37214  
    1313--- a/lib/Makefile 
    1414+++ b/lib/Makefile 
    15 @@ -86,6 +86,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ 
     15@@ -89,6 +89,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ 
    1616 obj-$(CONFIG_RAID6_PQ) += raid6/ 
    1717 obj-$(CONFIG_LZMA_COMPRESS) += lzma/ 
  • trunk/target/linux/ar71xx/patches-3.10/401-mtd-physmap-add-lock-unlock.patch

    r37213 r37214  
    6868 { 
    6969        struct physmap_flash_info *info; 
    70 @@ -157,6 +217,13 @@ static int physmap_flash_probe(struct pl 
     70@@ -154,6 +214,13 @@ static int physmap_flash_probe(struct pl 
    7171  
    7272                simple_map_init(&info->map[i]); 
  • trunk/target/linux/ar71xx/patches-3.10/403-mtd_fix_cfi_cmdset_0002_status_check.patch

    r37213 r37214  
    11--- a/drivers/mtd/chips/cfi_cmdset_0002.c 
    22+++ b/drivers/mtd/chips/cfi_cmdset_0002.c 
    3 @@ -1288,8 +1288,8 @@ static int __xipram do_write_oneword(str 
     3@@ -1306,8 +1306,8 @@ static int __xipram do_write_oneword(str 
    44                        break; 
    55                } 
     
    1212                /* Latency issues. Drop the lock, wait a while and retry */ 
    1313                UDELAY(map, chip, adr, 1); 
    14 @@ -1305,6 +1305,8 @@ static int __xipram do_write_oneword(str 
     14@@ -1323,6 +1323,8 @@ static int __xipram do_write_oneword(str 
    1515  
    1616                ret = -EIO; 
     
    2121  op_done: 
    2222        chip->state = FL_READY; 
    23 @@ -1875,7 +1877,6 @@ static int cfi_amdstd_panic_write(struct 
     23@@ -1893,7 +1895,6 @@ static int cfi_amdstd_panic_write(struct 
    2424        return 0; 
    2525 } 
     
    2929  * Handle devices with one erase region, that only implement 
    3030  * the chip erase command. 
    31 @@ -1939,8 +1940,8 @@ static int __xipram do_erase_chip(struct 
     31@@ -1957,8 +1958,8 @@ static int __xipram do_erase_chip(struct 
    3232                        chip->erase_suspended = 0; 
    3333                } 
     
    4040                if (time_after(jiffies, timeo)) { 
    4141                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    42 @@ -1960,6 +1961,7 @@ static int __xipram do_erase_chip(struct 
     42@@ -1978,6 +1979,7 @@ static int __xipram do_erase_chip(struct 
    4343                ret = -EIO; 
    4444        } 
     
    4848        xip_enable(map, chip, adr); 
    4949        DISABLE_VPP(map); 
    50 @@ -2028,9 +2030,9 @@ static int __xipram do_erase_oneblock(st 
     50@@ -2046,9 +2048,9 @@ static int __xipram do_erase_oneblock(st 
    5151                        chip->erase_suspended = 0; 
    5252                } 
     
    6060  
    6161                if (time_after(jiffies, timeo)) { 
    62 @@ -2052,6 +2054,7 @@ static int __xipram do_erase_oneblock(st 
     62@@ -2070,6 +2072,7 @@ static int __xipram do_erase_oneblock(st 
    6363                ret = -EIO; 
    6464        } 
  • trunk/target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch

    r37213 r37214  
    2323  
    2424 # 'Users' - code which presents functionality to userspace. 
    25  obj-$(CONFIG_MTD_CHAR)         += mtdchar.o 
     25 obj-$(CONFIG_MTD_BLKDEVS)      += mtd_blkdevs.o 
  • trunk/target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch

    r37213 r37214  
    2222 comment "User Modules And Translation Layers" 
    2323  
    24  config MTD_CHAR 
     24 config MTD_BLKDEVS 
    2525--- a/drivers/mtd/Makefile 
    2626+++ b/drivers/mtd/Makefile 
  • trunk/target/linux/ar71xx/patches-3.10/406-mtd-m25p80-allow-to-specify-max-read-size.patch

    r37213 r37214  
    8585  
    8686        return 0; 
    87 @@ -917,6 +940,12 @@ static int m25p_probe(struct spi_device 
    88         flash->mtd._erase = m25p80_erase; 
    89         flash->mtd._read = m25p80_read; 
     87@@ -1021,6 +1044,12 @@ static int m25p_probe(struct spi_device  
     88                flash->mtd._unlock = m25p80_unlock; 
     89        } 
    9090  
    9191+       if (data && data->max_read_len) { 
     
    9696+ 
    9797        /* sst flash chips use AAI word program */ 
    98         if (JEDEC_MFR(info->jedec_id) == CFI_MFR_SST) 
     98        if (info->flags & SST_WRITE) 
    9999                flash->mtd._write = sst_write; 
    100100--- a/include/linux/spi/flash.h 
  • trunk/target/linux/ar71xx/patches-3.10/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch

    r37213 r37214  
    11--- a/drivers/mtd/devices/m25p80.c 
    22+++ b/drivers/mtd/devices/m25p80.c 
    3 @@ -1017,7 +1017,9 @@ static int m25p_probe(struct spi_device 
     3@@ -1121,7 +1121,9 @@ static int m25p_probe(struct spi_device  
    44        /* partitions should match sector boundaries; and it may be good to 
    55         * use readonly partitions for writeprotected sectors (BP2..BP0). 
  • trunk/target/linux/ar71xx/patches-3.10/409-mtd-rb4xx_nand_driver.patch

    r37213 r37214  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -575,4 +575,8 @@ config MTD_NAND_XWAY 
     3@@ -544,4 +544,8 @@ config MTD_NAND_XWAY 
    44          Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached 
    55          to the External Bus Unit (EBU). 
     
    1212--- a/drivers/mtd/nand/Makefile 
    1313+++ b/drivers/mtd/nand/Makefile 
    14 @@ -34,6 +34,7 @@ obj-$(CONFIG_MTD_NAND_CM_X270)                += cmx27 
     14@@ -31,6 +31,7 @@ obj-$(CONFIG_MTD_NAND_CM_X270)                += cmx27 
    1515 obj-$(CONFIG_MTD_NAND_PXA3xx)          += pxa3xx_nand.o 
    1616 obj-$(CONFIG_MTD_NAND_TMIO)            += tmio_nand.o 
  • trunk/target/linux/ar71xx/patches-3.10/410-mtd-rb750-nand-driver.patch

    r37213 r37214  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -579,4 +579,8 @@ config MTD_NAND_RB4XX 
     3@@ -548,4 +548,8 @@ config MTD_NAND_RB4XX 
    44        tristate "NAND flash driver for RouterBoard 4xx series" 
    55        depends on MTD_NAND && ATH79_MACH_RB4XX 
     
    1212--- a/drivers/mtd/nand/Makefile 
    1313+++ b/drivers/mtd/nand/Makefile 
    14 @@ -35,6 +35,7 @@ obj-$(CONFIG_MTD_NAND_PXA3xx)         += pxa3xx 
     14@@ -32,6 +32,7 @@ obj-$(CONFIG_MTD_NAND_PXA3xx)         += pxa3xx 
    1515 obj-$(CONFIG_MTD_NAND_TMIO)            += tmio_nand.o 
    1616 obj-$(CONFIG_MTD_NAND_PLATFORM)                += plat_nand.o 
  • trunk/target/linux/ar71xx/patches-3.10/411-mtd-cfi_cmdset_0002-force-word-write.patch

    r37213 r37214  
    3636 /* Atmel chips don't use the same PRI format as AMD chips */ 
    3737 static void fixup_convert_atmel_pri(struct mtd_info *mtd) 
    38 @@ -1461,6 +1465,7 @@ static int cfi_amdstd_write_words(struct 
     38@@ -1463,6 +1467,7 @@ static int cfi_amdstd_write_words(struct 
    3939 /* 
    4040  * FIXME: interleaved mode not tested, and probably not supported! 
     
    4444                                    unsigned long adr, const u_char *buf, 
    4545                                    int len) 
    46 @@ -1585,7 +1590,6 @@ static int __xipram do_write_buffer(stru 
     46@@ -1587,7 +1592,6 @@ static int __xipram do_write_buffer(stru 
    4747        return ret; 
    4848 } 
     
    5252                                    size_t *retlen, const u_char *buf) 
    5353 { 
    54 @@ -1660,6 +1664,7 @@ static int cfi_amdstd_write_buffers(stru 
     54@@ -1662,6 +1666,7 @@ static int cfi_amdstd_write_buffers(stru 
    5555  
    5656        return 0; 
  • trunk/target/linux/ar71xx/patches-3.10/412-mtd-m25p80-zero-partition-parser-data.patch

    r37213 r37214  
    11--- a/drivers/mtd/devices/m25p80.c 
    22+++ b/drivers/mtd/devices/m25p80.c 
    3 @@ -967,6 +967,7 @@ static int m25p_probe(struct spi_device 
     3@@ -1071,6 +1071,7 @@ static int m25p_probe(struct spi_device  
    44        if (info->flags & M25P_NO_ERASE) 
    55                flash->mtd.flags |= MTD_NO_ERASE; 
  • trunk/target/linux/ar71xx/patches-3.10/413-mtd-ar934x-nand-driver.patch

    r37213 r37214  
    11--- a/drivers/mtd/nand/Kconfig 
    22+++ b/drivers/mtd/nand/Kconfig 
    3 @@ -583,4 +583,8 @@ config MTD_NAND_RB750 
     3@@ -552,4 +552,8 @@ config MTD_NAND_RB750 
    44        tristate "NAND flash driver for the RouterBoard 750" 
    55        depends on MTD_NAND && ATH79_MACH_RB750 
     
    1919 obj-$(CONFIG_MTD_NAND_AU1550)          += au1550nd.o 
    2020 obj-$(CONFIG_MTD_NAND_BF5XX)           += bf5xx_nand.o 
    21  obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB)  += ppchameleonevb.o 
     21 obj-$(CONFIG_MTD_NAND_S3C2410)         += s3c2410.o 
  • trunk/target/linux/ar71xx/patches-3.10/420-net-ar71xx_mac_driver.patch

    r37213 r37214  
    1010          If you have a network (Ethernet) card belonging to this class, say Y 
    1111          and read the Ethernet-HOWTO, available from 
    12 @@ -67,4 +67,6 @@ config ATL1C 
     12@@ -85,4 +85,6 @@ config ALX 
    1313          To compile this driver as a module, choose M here.  The module 
    14           will be called atl1c. 
     14          will be called alx. 
    1515  
    1616+source drivers/net/ethernet/atheros/ag71xx/Kconfig 
  • trunk/target/linux/ar71xx/patches-3.10/430-drivers-link-spi-before-mtd.patch

    r37213 r37214  
    11--- a/drivers/Makefile 
    22+++ b/drivers/Makefile 
    3 @@ -60,8 +60,8 @@ obj-$(CONFIG_IDE)             += ide/ 
     3@@ -63,8 +63,8 @@ obj-$(CONFIG_IDE)             += ide/ 
    44 obj-$(CONFIG_SCSI)             += scsi/ 
    55 obj-$(CONFIG_ATA)              += ata/ 
  • trunk/target/linux/ar71xx/patches-3.10/431-spi-add-various-flags.patch

    r37213 r37214  
    11--- a/include/linux/spi/spi.h 
    22+++ b/include/linux/spi/spi.h 
    3 @@ -506,6 +506,8 @@ struct spi_transfer { 
     3@@ -519,6 +519,8 @@ struct spi_transfer { 
    44        dma_addr_t      rx_dma; 
    55  
     
    1010        u16             delay_usecs; 
    1111        u32             speed_hz; 
    12 @@ -547,6 +549,7 @@ struct spi_message { 
     12@@ -560,6 +562,7 @@ struct spi_message { 
    1313        struct spi_device       *spi; 
    1414  
  • trunk/target/linux/ar71xx/patches-3.10/432-spi-rb4xx-spi-driver.patch

    r37213 r37214  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -324,6 +324,12 @@ config SPI_RSPI 
     3@@ -354,6 +354,12 @@ config SPI_RSPI 
    44        help 
    55          SPI driver for Renesas RSPI blocks. 
     
    1313 config SPI_S3C24XX 
    1414        tristate "Samsung S3C24XX series SPI" 
    15         depends on ARCH_S3C24XX && EXPERIMENTAL 
     15        depends on ARCH_S3C24XX 
    1616--- a/drivers/spi/Makefile 
    1717+++ b/drivers/spi/Makefile 
    18 @@ -50,6 +50,7 @@ obj-$(CONFIG_SPI_PL022)                       += spi-pl022.o 
    19  obj-$(CONFIG_SPI_PPC4xx)               += spi-ppc4xx.o 
    20  obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx.o 
     18@@ -55,6 +55,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
     19 spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_DMA)   += spi-pxa2xx-dma.o 
     20 obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx-platform.o 
    2121 obj-$(CONFIG_SPI_PXA2XX_PCI)           += spi-pxa2xx-pci.o 
    2222+obj-$(CONFIG_SPI_RB4XX)                        += spi-rb4xx.o 
  • trunk/target/linux/ar71xx/patches-3.10/433-spi-rb4xx-cpld-driver.patch

    r37213 r37214  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -509,6 +509,13 @@ config SPI_TLE62X0 
     3@@ -546,6 +546,13 @@ config SPI_TLE62X0 
    44          sysfs interface, with each line presented as a kind of GPIO 
    55          exposing both switch control and diagnostic feedback. 
     
    1717--- a/drivers/spi/Makefile 
    1818+++ b/drivers/spi/Makefile 
    19 @@ -51,6 +51,7 @@ obj-$(CONFIG_SPI_PPC4xx)              += spi-ppc4xx. 
    20  obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx.o 
     19@@ -56,6 +56,7 @@ spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_ 
     20 obj-$(CONFIG_SPI_PXA2XX)               += spi-pxa2xx-platform.o 
    2121 obj-$(CONFIG_SPI_PXA2XX_PCI)           += spi-pxa2xx-pci.o 
    2222 obj-$(CONFIG_SPI_RB4XX)                        += spi-rb4xx.o 
  • trunk/target/linux/ar71xx/patches-3.10/434-spi-ap83_spi_controller.patch

    r37213 r37214  
    88 obj-$(CONFIG_SPI_ATH79)                        += spi-ath79.o 
    99 obj-$(CONFIG_SPI_AU1550)               += spi-au1550.o 
    10  obj-$(CONFIG_SPI_BCM63XX)              += spi-bcm63xx.o 
     10 obj-$(CONFIG_SPI_BCM2835)              += spi-bcm2835.o 
    1111--- a/drivers/spi/Kconfig 
    1212+++ b/drivers/spi/Kconfig 
    13 @@ -59,6 +59,14 @@ config SPI_ALTERA 
     13@@ -60,6 +60,14 @@ config SPI_ALTERA 
    1414        help 
    1515          This is the driver for the Altera SPI Controller. 
     
    2525 config SPI_ATH79 
    2626        tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" 
    27         depends on ATH79 && GENERIC_GPIO 
     27        depends on ATH79 && GPIOLIB 
  • trunk/target/linux/ar71xx/patches-3.10/435-spi-vsc7385_driver.patch

    r37213 r37214  
    11--- a/drivers/spi/Kconfig 
    22+++ b/drivers/spi/Kconfig 
    3 @@ -524,6 +524,11 @@ config SPI_RB4XX_CPLD 
     3@@ -561,6 +561,11 @@ config SPI_RB4XX_CPLD 
    44          SPI driver for the Xilinx CPLD chip present on the 
    55          MikroTik RB4xx boards. 
     
    1515--- a/drivers/spi/Makefile 
    1616+++ b/drivers/spi/Makefile 
    17 @@ -70,5 +70,6 @@ obj-$(CONFIG_SPI_TI_SSP)              += spi-ti-ssp. 
     17@@ -76,5 +76,6 @@ obj-$(CONFIG_SPI_TI_SSP)              += spi-ti-ssp. 
    1818 obj-$(CONFIG_SPI_TLE62X0)              += spi-tle62x0.o 
    1919 obj-$(CONFIG_SPI_TOPCLIFF_PCH)         += spi-topcliff-pch.o 
  • trunk/target/linux/ar71xx/patches-3.10/440-leds-wndr3700-usb-led-driver.patch

    r37213 r37214  
    11--- a/drivers/leds/Kconfig 
    22+++ b/drivers/leds/Kconfig 
    3 @@ -467,6 +467,13 @@ config LEDS_TRIGGERS 
    4           These triggers allow kernel events to drive the LEDs and can 
    5           be configured via sysfs. If unsure, say Y. 
     3@@ -479,6 +479,13 @@ config LEDS_BLINKM 
     4          This option enables support for the BlinkM RGB LED connected 
     5          through I2C. Say Y to enable support for the BlinkM LED. 
    66  
    77+config LEDS_WNDR3700_USB 
     
    1313+ 
    1414 comment "LED Triggers" 
     15 source "drivers/leds/trigger/Kconfig" 
    1516  
    16  config LEDS_TRIGGER_TIMER 
    1717--- a/drivers/leds/Makefile 
    1818+++ b/drivers/leds/Makefile 
    19 @@ -38,6 +38,7 @@ obj-$(CONFIG_LEDS_DA9052)             += leds-da905 
     19@@ -40,6 +40,7 @@ obj-$(CONFIG_LEDS_DA9052)             += leds-da905 
    2020 obj-$(CONFIG_LEDS_WM831X_STATUS)       += leds-wm831x-status.o 
    2121 obj-$(CONFIG_LEDS_WM8350)              += leds-wm8350.o 
  • trunk/target/linux/ar71xx/patches-3.10/441-leds-rb750-led-driver.patch

    r37213 r37214  
    11--- a/drivers/leds/Kconfig 
    22+++ b/drivers/leds/Kconfig 
    3 @@ -474,6 +474,10 @@ config LEDS_WNDR3700_USB 
     3@@ -486,6 +486,10 @@ config LEDS_WNDR3700_USB 
    44          This option enables support for the USB LED found on the 
    55          NETGEAR WNDR3700 board. 
     
    1010+ 
    1111 comment "LED Triggers" 
     12 source "drivers/leds/trigger/Kconfig" 
    1213  
    13  config LEDS_TRIGGER_TIMER 
    1414--- a/drivers/leds/Makefile 
    1515+++ b/drivers/leds/Makefile 
    16 @@ -45,6 +45,7 @@ obj-$(CONFIG_LEDS_LT3593)             += leds-lt359 
     16@@ -47,6 +47,7 @@ obj-$(CONFIG_LEDS_LT3593)             += leds-lt359 
    1717 obj-$(CONFIG_LEDS_ADP5520)             += leds-adp5520.o 
    1818 obj-$(CONFIG_LEDS_DELL_NETBOOKS)       += dell-led.o 
  • trunk/target/linux/ar71xx/patches-3.10/450-gpio-nxp-74hc153-gpio-chip-driver.patch

    r37213 r37214  
    11--- a/drivers/gpio/Kconfig 
    22+++ b/drivers/gpio/Kconfig 
    3 @@ -697,4 +697,12 @@ config GPIO_VIPERBOARD 
     3@@ -717,4 +717,12 @@ config GPIO_VIPERBOARD 
    44           River Tech's viperboard.h for detailed meaning 
    55           of the module parameters. 
     
    1616--- a/drivers/gpio/Makefile 
    1717+++ b/drivers/gpio/Makefile 
    18 @@ -48,6 +48,7 @@ obj-$(CONFIG_GPIO_MSM_V2)     += gpio-msm-v2 
     18@@ -50,6 +50,7 @@ obj-$(CONFIG_GPIO_MSM_V2)     += gpio-msm-v2 
    1919 obj-$(CONFIG_GPIO_MVEBU)        += gpio-mvebu.o 
    2020 obj-$(CONFIG_GPIO_MXC)         += gpio-mxc.o 
  • trunk/target/linux/ar71xx/patches-3.10/461-spi-add-type-field-to-spi_transfer.patch

    r37213 r37214  
    11--- a/include/linux/spi/spi.h 
    22+++ b/include/linux/spi/spi.h 
    3 @@ -409,6 +409,12 @@ extern struct spi_master *spi_busnum_to_ 
     3@@ -422,6 +422,12 @@ extern struct spi_master *spi_busnum_to_ 
    44  
    55 /*---------------------------------------------------------------------------*/ 
     
    1414  * I/O INTERFACE between SPI controller and protocol drivers 
    1515  * 
    16 @@ -511,6 +517,7 @@ struct spi_transfer { 
     16@@ -524,6 +530,7 @@ struct spi_transfer { 
    1717        u8              bits_per_word; 
    1818        u16             delay_usecs; 
  • trunk/target/linux/ar71xx/patches-3.10/490-usb-ehci-add-quirks-for-qca-socs.patch

    r37213 r37214  
    4242+++ b/drivers/usb/host/ehci.h 
    4343@@ -201,6 +201,10 @@ struct ehci_hcd {                  /* one per controlle 
    44         unsigned                has_synopsys_hc_bug:1; /* Synopsys HC */ 
    4544        unsigned                frame_index_bug:1; /* MosChip (AKA NetMos) */ 
     45        unsigned                need_oc_pp_cycle:1; /* MPC834X port power */ 
    4646        unsigned                ignore_oc:1; 
    4747+       unsigned                qca_force_host_mode:1; 
     
    7373--- a/drivers/usb/host/ehci-platform.c 
    7474+++ b/drivers/usb/host/ehci-platform.c 
    75 @@ -33,6 +33,14 @@ 
     75@@ -36,6 +36,14 @@ 
    7676  
    7777 static const char hcd_name[] = "ehci-platform"; 
     
    8888 { 
    8989        struct platform_device *pdev = to_platform_device(hcd->self.controller); 
    90 @@ -45,6 +53,11 @@ static int ehci_platform_reset(struct us 
     90@@ -48,6 +56,11 @@ static int ehci_platform_reset(struct us 
    9191        ehci->big_endian_desc = pdata->big_endian_desc; 
    9292        ehci->big_endian_mmio = pdata->big_endian_mmio; 
  • trunk/target/linux/ar71xx/patches-3.10/500-MIPS-fw-myloader.patch

    r37213 r37214  
    11--- a/arch/mips/Makefile 
    22+++ b/arch/mips/Makefile 
    3 @@ -182,6 +182,7 @@ endif 
     3@@ -183,6 +183,7 @@ endif 
    44 # 
    55 libs-$(CONFIG_FW_ARC)          += arch/mips/fw/arc/ 
     
    1111--- a/arch/mips/Kconfig 
    1212+++ b/arch/mips/Kconfig 
    13 @@ -989,6 +989,9 @@ config MIPS_NILE4 
    14  config MIPS_DISABLE_OBSOLETE_IDE 
     13@@ -993,6 +993,9 @@ config MIPS_MSC 
     14 config MIPS_NILE4 
    1515        bool 
    1616  
  • trunk/target/linux/ar71xx/patches-3.10/509-MIPS-ath79-process-board-kernel-option.patch

    r37213 r37214  
    11--- a/arch/mips/ath79/setup.c 
    22+++ b/arch/mips/ath79/setup.c 
    3 @@ -231,6 +231,8 @@ void __init plat_time_init(void) 
     3@@ -218,6 +218,8 @@ void __init plat_time_init(void) 
    44        mips_hpt_frequency = clk_get_rate(clk) / 2; 
    55 } 
  • trunk/target/linux/ar71xx/patches-3.10/521-MIPS-ath79-enable-UART-for-early_serial.patch

    r37213 r37214  
    11--- a/arch/mips/ath79/early_printk.c 
    22+++ b/arch/mips/ath79/early_printk.c 
    3 @@ -56,6 +56,46 @@ static void prom_putchar_dummy(unsigned 
     3@@ -56,6 +56,46 @@ static void prom_putchar_dummy(unsigned  
    44        /* nothing to do */ 
    55 } 
  • trunk/target/linux/ar71xx/patches-3.10/603-MIPS-ath79-ap121-fixes.patch

    r37213 r37214  
    8383-static struct ath79_spi_platform_data ap121_spi_data = { 
    8484-       .bus_num        = 0, 
    85 -       .num_chipselect = 1, 
     85-       .num_chipselect = 1, 
    8686-}; 
    8787+static void __init ap121_common_setup(void) 
  • trunk/target/linux/ar71xx/patches-3.10/604-MIPS-ath79-ap81-fixes.patch

    r37213 r37214  
    8080-static struct ath79_spi_platform_data ap81_spi_data = { 
    8181-       .bus_num        = 0, 
    82 -       .num_chipselect = 1, 
     82-       .num_chipselect = 1, 
    8383-}; 
    8484- 
  • trunk/target/linux/ar71xx/patches-3.10/605-MIPS-ath79-db120-fixes.patch

    r37213 r37214  
    9797-static struct ath79_spi_platform_data db120_spi_data = { 
    9898-       .bus_num        = 0, 
    99 -       .num_chipselect = 1, 
     99-       .num_chipselect = 1, 
    100100+static struct ar8327_platform_data db120_ar8327_data = { 
    101101+       .pad0_cfg = &db120_ar8327_pad0_cfg, 
  • trunk/target/linux/ar71xx/patches-3.10/606-MIPS-ath79-pb44-fixes.patch

    r37213 r37214  
    5151 #define PB44_GPIO_SW_JUMP      (PB44_GPIO_EXP_BASE + 8) 
    5252 #define PB44_GPIO_LED_JUMP1    (PB44_GPIO_EXP_BASE + 9) 
    53 @@ -92,21 +117,66 @@ static struct ath79_spi_controller_data 
     53@@ -92,21 +117,66 @@ static struct ath79_spi_controller_data  
    5454        .cs_line = 0, 
    5555 }; 
  • trunk/target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch

    r37213 r37214  
    4949-#define _HAVE_ARCH_IPV6_CSUM 
    5050-static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 
    51 -                                         const struct in6_addr *daddr, 
     51-                                         const struct in6_addr *daddr, 
    5252-                                         __u32 len, unsigned short proto, 
    5353-                                         __wsum sum) 
     
    126126--- a/include/uapi/linux/ipv6.h 
    127127+++ b/include/uapi/linux/ipv6.h 
    128 @@ -123,7 +123,7 @@ struct ipv6hdr { 
     128@@ -125,7 +125,7 @@ struct ipv6hdr { 
    129129  
    130130        struct  in6_addr        saddr; 
     
    168168--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 
    169169+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 
    170 @@ -39,8 +39,8 @@ static bool ipv4_pkt_to_tuple(const stru 
     170@@ -40,8 +40,8 @@ static bool ipv4_pkt_to_tuple(const stru 
    171171        if (ap == NULL) 
    172172                return false; 
     
    190190  
    191191 /* 
    192 --- a/net/ipv4/tcp_input.c 
    193 +++ b/net/ipv4/tcp_input.c 
    194 @@ -3896,13 +3896,14 @@ static bool tcp_parse_aligned_timestamp( 
    195  { 
    196         const __be32 *ptr = (const __be32 *)(th + 1); 
    197   
    198 -       if (*ptr == htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) 
    199 -                         | (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { 
    200 +       if (net_hdr_word(ptr) == 
    201 +           htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
    202 +           (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { 
    203                 tp->rx_opt.saw_tstamp = 1; 
    204                 ++ptr; 
    205 -               tp->rx_opt.rcv_tsval = ntohl(*ptr); 
    206 +               tp->rx_opt.rcv_tsval = get_unaligned_be32(ptr); 
    207                 ++ptr; 
    208 -               tp->rx_opt.rcv_tsecr = ntohl(*ptr); 
    209 +               tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr); 
    210                 return true; 
    211         } 
    212         return false; 
    213192--- a/include/uapi/linux/in6.h 
    214193+++ b/include/uapi/linux/in6.h 
     
    220199+} __attribute__((packed, aligned(2))); 
    221200  
    222  /* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553 
    223   * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined 
     201 struct sockaddr_in6 { 
     202        unsigned short int      sin6_family;    /* AF_INET6 */ 
    224203--- a/net/ipv6/af_inet6.c 
    225204+++ b/net/ipv6/af_inet6.c 
    226 @@ -61,6 +61,7 @@ 
     205@@ -60,6 +60,7 @@ 
    227206 #endif 
    228207  
     
    232211  
    233212 MODULE_AUTHOR("Cast of dozens"); 
    234 @@ -688,7 +689,7 @@ bool ipv6_opt_accepted(const struct sock 
     213@@ -687,7 +688,7 @@ bool ipv6_opt_accepted(const struct sock 
    235214                if ((opt->hop && (np->rxopt.bits.hopopts || 
    236215                                  np->rxopt.bits.ohopopts)) || 
     
    241220                    (opt->srcrt && (np->rxopt.bits.srcrt || 
    242221                     np->rxopt.bits.osrcrt)) || 
    243 --- a/net/ipv6/route.c 
    244 +++ b/net/ipv6/route.c 
    245 @@ -1013,7 +1013,7 @@ void ip6_route_input(struct sk_buff *skb 
    246                 .flowi6_iif = skb->dev->ifindex, 
    247                 .daddr = iph->daddr, 
    248                 .saddr = iph->saddr, 
    249 -               .flowlabel = (* (__be32 *) iph) & IPV6_FLOWINFO_MASK, 
    250 +               .flowlabel = net_hdr_word(iph) & IPV6_FLOWINFO_MASK, 
    251                 .flowi6_mark = skb->mark, 
    252                 .flowi6_proto = iph->nexthdr, 
    253         }; 
    254 @@ -1177,7 +1177,7 @@ void ip6_update_pmtu(struct sk_buff *skb 
    255         fl6.flowi6_flags = 0; 
    256         fl6.daddr = iph->daddr; 
    257         fl6.saddr = iph->saddr; 
    258 -       fl6.flowlabel = (*(__be32 *) iph) & IPV6_FLOWINFO_MASK; 
    259 +       fl6.flowlabel = net_hdr_word(iph) & IPV6_FLOWINFO_MASK, 
    260   
    261         dst = ip6_route_output(net, NULL, &fl6); 
    262         if (!dst->error) 
    263 @@ -1205,7 +1205,7 @@ void ip6_redirect(struct sk_buff *skb, s 
    264         fl6.flowi6_flags = 0; 
    265         fl6.daddr = iph->daddr; 
    266         fl6.saddr = iph->saddr; 
    267 -       fl6.flowlabel = (*(__be32 *) iph) & IPV6_FLOWINFO_MASK; 
    268 +       fl6.flowlabel = net_hdr_word(iph) & IPV6_FLOWINFO_MASK, 
    269   
    270         dst = ip6_route_output(net, NULL, &fl6); 
    271         if (!dst->error) 
    272222--- a/net/ipv6/tcp_ipv6.c 
    273223+++ b/net/ipv6/tcp_ipv6.c 
     
    280230  
    281231 #include <linux/proc_fs.h> 
    282 @@ -764,10 +765,10 @@ static void tcp_v6_send_response(struct 
     232@@ -763,10 +764,10 @@ static void tcp_v6_send_response(struct  
    283233        topt = (__be32 *)(t1 + 1); 
    284234  
    285         if (ts) { 
     235        if (tsecr) { 
    286236-               *topt++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
    287237-                               (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP); 
    288 -               *topt++ = htonl(tcp_time_stamp); 
    289 -               *topt++ = htonl(ts); 
    290 +               put_unaligned_be32((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
    291 +                       (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP, topt++); 
    292 +               put_unaligned_be32(tcp_time_stamp, topt++); 
    293 +               put_unaligned_be32(ts, topt++); 
     238-               *topt++ = htonl(tsval); 
     239-               *topt++ = htonl(tsecr); 
     240+               put_unaligned_be32((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
     241+                               (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP, topt++); 
     242+               put_unaligned_be32(tsval, topt++); 
     243+               put_unaligned_be32(tsecr, topt++); 
    294244        } 
    295245  
     
    305255  * This structure contains configuration options per IPv6 link. 
    306256  */ 
    307 @@ -79,7 +80,7 @@ static inline struct ipv6hdr *ipipv6_hdr 
    308   
    309  static inline __u8 ipv6_tclass(const struct ipv6hdr *iph) 
    310  { 
    311 -       return (ntohl(*(__be32 *)iph) >> 20) & 0xff; 
    312 +       return (ntohl(net_hdr_word(iph)) >> 20) & 0xff; 
    313  } 
    314   
    315  /*  
    316257--- a/net/ipv6/datagram.c 
    317258+++ b/net/ipv6/datagram.c 
    318 @@ -360,12 +360,12 @@ int ipv6_recv_error(struct sock *sk, str 
    319                                 *(struct in6_addr *)(nh + serr->addr_offset); 
    320                         if (np->sndflow) 
    321                                 sin->sin6_flowinfo = 
    322 -                                       (*(__be32 *)(nh + serr->addr_offset - 24) & 
    323 -                                        IPV6_FLOWINFO_MASK); 
    324 +                                       net_hdr_word(nh + serr->addr_offset - 24) & 
    325 +                                        IPV6_FLOWINFO_MASK; 
    326                         if (ipv6_addr_type(&sin->sin6_addr) & IPV6_ADDR_LINKLOCAL) 
    327                                 sin->sin6_scope_id = IP6CB(skb)->iif; 
     259@@ -365,7 +365,7 @@ int ipv6_recv_error(struct sock *sk, str 
     260                                ipv6_iface_scope_id(&sin->sin6_addr, 
     261                                                    IP6CB(skb)->iif); 
    328262                } else { 
    329263-                       ipv6_addr_set_v4mapped(*(__be32 *)(nh + serr->addr_offset), 
    330264+                       ipv6_addr_set_v4mapped(net_hdr_word(nh + serr->addr_offset), 
    331265                                               &sin->sin6_addr); 
     266                        sin->sin6_scope_id = 0; 
    332267                } 
    333         } 
    334 @@ -493,9 +493,10 @@ int ip6_datagram_recv_ctl(struct sock *s 
    335                 put_cmsg(msg, SOL_IPV6, IPV6_TCLASS, sizeof(tclass), &tclass); 
    336         } 
    337   
    338 -       if (np->rxopt.bits.rxflow && (*(__be32 *)nh & IPV6_FLOWINFO_MASK)) { 
    339 -               __be32 flowinfo = *(__be32 *)nh & IPV6_FLOWINFO_MASK; 
    340 -               put_cmsg(msg, SOL_IPV6, IPV6_FLOWINFO, sizeof(flowinfo), &flowinfo); 
    341 +       if (np->rxopt.bits.rxflow) { 
    342 +               __be32 flowinfo = net_hdr_word(nh) & IPV6_FLOWINFO_MASK; 
    343 +               if (flowinfo) 
    344 +                       put_cmsg(msg, SOL_IPV6, IPV6_FLOWINFO, sizeof(flowinfo), &flowinfo); 
    345         } 
    346   
    347         /* HbH is allowed only once */ 
    348 @@ -682,12 +683,12 @@ int ip6_datagram_send_ctl(struct net *ne 
     268@@ -687,12 +687,12 @@ int ip6_datagram_send_ctl(struct net *ne 
    349269                        } 
    350270  
     
    363283--- a/net/ipv6/ip6_gre.c 
    364284+++ b/net/ipv6/ip6_gre.c 
    365 @@ -430,7 +430,7 @@ static void ip6gre_err(struct sk_buff *s 
     285@@ -391,7 +391,7 @@ static void ip6gre_err(struct sk_buff *s 
    366286  
    367287        t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, 
     
    372292        if (t == NULL) 
    373293                return; 
    374 @@ -522,11 +522,11 @@ static int ip6gre_rcv(struct sk_buff *sk 
     294@@ -483,11 +483,11 @@ static int ip6gre_rcv(struct sk_buff *sk 
    375295                        offset += 4; 
    376296                } 
     
    386306                } 
    387307        } 
    388 @@ -772,7 +772,7 @@ static netdev_tx_t ip6gre_xmit2(struct s 
    389          *      Push down and install the IP header. 
    390          */ 
    391         ipv6h = ipv6_hdr(skb); 
    392 -       *(__be32 *)ipv6h = fl6->flowlabel | htonl(0x60000000); 
    393 +       net_hdr_word(ipv6h) = fl6->flowlabel | htonl(0x60000000); 
    394         dsfield = INET_ECN_encapsulate(0, dsfield); 
    395         ipv6_change_dsfield(ipv6h, ~INET_ECN_MASK, dsfield); 
    396         ipv6h->hop_limit = tunnel->parms.hop_limit; 
    397 @@ -789,7 +789,7 @@ static netdev_tx_t ip6gre_xmit2(struct s 
     308@@ -747,7 +747,7 @@ static netdev_tx_t ip6gre_xmit2(struct s 
    398309  
    399310                if (tunnel->parms.o_flags&GRE_SEQ) { 
     
    404315                } 
    405316                if (tunnel->parms.o_flags&GRE_KEY) { 
    406 @@ -897,9 +897,9 @@ static inline int ip6gre_xmit_ipv6(struc 
     317@@ -841,9 +841,9 @@ static inline int ip6gre_xmit_ipv6(struc 
    407318  
    408319        dsfield = ipv6_get_dsfield(ipv6h); 
     
    416327                fl6.flowi6_mark = skb->mark; 
    417328  
    418 @@ -1240,7 +1240,7 @@ static int ip6gre_header(struct sk_buff 
    419         struct ipv6hdr *ipv6h = (struct ipv6hdr *)skb_push(skb, t->hlen); 
    420         __be16 *p = (__be16 *)(ipv6h+1); 
    421   
    422 -       *(__be32 *)ipv6h = t->fl.u.ip6.flowlabel | htonl(0x60000000); 
    423 +       net_hdr_word(ipv6h) = t->fl.u.ip6.flowlabel | htonl(0x60000000); 
    424         ipv6h->hop_limit = t->parms.hop_limit; 
    425         ipv6h->nexthdr = NEXTHDR_GRE; 
    426         ipv6h->saddr = t->parms.laddr; 
    427 --- a/net/ipv6/ip6_output.c 
    428 +++ b/net/ipv6/ip6_output.c 
    429 @@ -216,7 +216,7 @@ int ip6_xmit(struct sock *sk, struct sk_ 
    430         if (hlimit < 0) 
    431                 hlimit = ip6_dst_hoplimit(dst); 
    432   
    433 -       *(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | fl6->flowlabel; 
    434 +       net_hdr_word(hdr) = htonl(0x60000000 | (tclass << 20)) | fl6->flowlabel; 
    435   
    436         hdr->payload_len = htons(seg_len); 
    437         hdr->nexthdr = proto; 
    438329--- a/net/ipv6/ip6_tunnel.c 
    439330+++ b/net/ipv6/ip6_tunnel.c 
    440 @@ -1136,9 +1136,9 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str 
     331@@ -1122,9 +1122,9 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str 
    441332  
    442333        dsfield = ipv6_get_dsfield(ipv6h); 
     
    452343--- a/net/ipv6/exthdrs.c 
    453344+++ b/net/ipv6/exthdrs.c 
    454 @@ -578,7 +578,7 @@ static bool ipv6_hop_jumbo(struct sk_buf 
     345@@ -579,7 +579,7 @@ static bool ipv6_hop_jumbo(struct sk_buf 
    455346                goto drop; 
    456347        } 
     
    477368--- a/net/ipv4/af_inet.c 
    478369+++ b/net/ipv4/af_inet.c 
    479 @@ -1396,8 +1396,8 @@ static struct sk_buff **inet_gro_receive 
     370@@ -1383,8 +1383,8 @@ static struct sk_buff **inet_gro_receive 
    480371        if (unlikely(ip_fast_csum((u8 *)iph, 5))) 
    481372                goto out_unlock; 
     
    490381--- a/net/ipv4/route.c 
    491382+++ b/net/ipv4/route.c 
    492 @@ -465,7 +465,7 @@ static struct neighbour *ipv4_neigh_look 
     383@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look 
    493384        else if (skb) 
    494385                pkey = &ip_hdr(skb)->daddr; 
     
    501392--- a/net/ipv4/tcp_output.c 
    502393+++ b/net/ipv4/tcp_output.c 
    503 @@ -456,15 +456,17 @@ static void tcp_options_write(__be32 *pt 
    504          */ 
     394@@ -412,48 +412,53 @@ static void tcp_options_write(__be32 *pt 
     395        u16 options = opts->options;    /* mungable copy */ 
     396  
    505397        if (unlikely(OPTION_MD5 & options)) { 
    506                 if (unlikely(OPTION_COOKIE_EXTENSION & options)) { 
    507 -                       *ptr++ = htonl((TCPOPT_COOKIE << 24) | 
    508 -                                      (TCPOLEN_COOKIE_BASE << 16) | 
    509 -                                      (TCPOPT_MD5SIG << 8) | 
    510 -                                      TCPOLEN_MD5SIG); 
    511 +                       net_hdr_word(ptr++) = 
    512 +                               htonl((TCPOPT_COOKIE << 24) | 
    513 +                                     (TCPOLEN_COOKIE_BASE << 16) | 
    514 +                                     (TCPOPT_MD5SIG << 8) | 
    515 +                                     TCPOLEN_MD5SIG); 
    516                 } else { 
    517 -                       *ptr++ = htonl((TCPOPT_NOP << 24) | 
    518 -                                      (TCPOPT_NOP << 16) | 
    519 -                                      (TCPOPT_MD5SIG << 8) | 
    520 -                                      TCPOLEN_MD5SIG); 
    521 +                       net_hdr_word(ptr++) = 
    522 +                               htonl((TCPOPT_NOP << 24) | 
    523 +                                     (TCPOPT_NOP << 16) | 
    524 +                                     (TCPOPT_MD5SIG << 8) | 
    525 +                                     TCPOLEN_MD5SIG); 
    526                 } 
    527                 options &= ~OPTION_COOKIE_EXTENSION; 
     398-               *ptr++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
     399-                              (TCPOPT_MD5SIG << 8) | TCPOLEN_MD5SIG); 
     400+               net_hdr_word(ptr++) = 
     401+                       htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
     402+                             (TCPOPT_MD5SIG << 8) | TCPOLEN_MD5SIG); 
    528403                /* overload cookie hash location */ 
    529 @@ -473,26 +475,28 @@ static void tcp_options_write(__be32 *pt 
     404                opts->hash_location = (__u8 *)ptr; 
     405                ptr += 4; 
    530406        } 
    531407  
     
    568444        } 
    569445  
    570         /* Specification requires after timestamp, so do it now. 
    571 @@ -512,19 +516,20 @@ static void tcp_options_write(__be32 *pt 
    572                         __u8 *p = (__u8 *)ptr; 
    573   
    574                         /* 16-bit multiple */ 
    575 -                       *p++ = TCPOPT_COOKIE; 
    576 -                       *p++ = TCPOLEN_COOKIE_BASE + cookie_size; 
    577 -                       *p++ = *cookie_copy++; 
    578 -                       *p++ = *cookie_copy++; 
    579 +                       net_hdr_word(p++) = TCPOPT_COOKIE; 
    580 +                       net_hdr_word(p++) = TCPOLEN_COOKIE_BASE + cookie_size; 
    581 +                       net_hdr_word(p++) = *cookie_copy++; 
    582 +                       net_hdr_word(p++) = *cookie_copy++; 
    583                         ptr++; 
    584                         cookie_size -= 2; 
    585                 } else { 
    586                         /* 32-bit multiple */ 
    587 -                       *ptr++ = htonl(((TCPOPT_NOP << 24) | 
    588 -                                       (TCPOPT_NOP << 16) | 
    589 -                                       (TCPOPT_COOKIE << 8) | 
    590 -                                       TCPOLEN_COOKIE_BASE) + 
    591 -                                      cookie_size); 
    592 +                       net_hdr_word(ptr++) = 
    593 +                               htonl(((TCPOPT_NOP << 24) | 
    594 +                                      (TCPOPT_NOP << 16) | 
    595 +                                      (TCPOPT_COOKIE << 8) | 
    596 +                                      TCPOLEN_COOKIE_BASE) + 
    597 +                                     cookie_size); 
    598                 } 
    599   
    600                 if (cookie_size > 0) { 
    601 @@ -534,17 +539,19 @@ static void tcp_options_write(__be32 *pt 
    602         } 
    603   
    604446        if (unlikely(OPTION_SACK_ADVERTISE & options)) { 
    605447-               *ptr++ = htonl((TCPOPT_NOP << 24) | 
     
    627469  
    628470        if (unlikely(opts->num_sack_blocks)) { 
    629 @@ -552,16 +559,17 @@ static void tcp_options_write(__be32 *pt 
     471@@ -461,16 +466,17 @@ static void tcp_options_write(__be32 *pt 
    630472                        tp->duplicate_sack : tp->selective_acks; 
    631473                int this_sack; 
     
    651493  
    652494                tp->rx_opt.dsack = 0; 
    653 @@ -570,9 +578,10 @@ static void tcp_options_write(__be32 *pt 
     495@@ -479,9 +485,10 @@ static void tcp_options_write(__be32 *pt 
    654496        if (unlikely(OPTION_FAST_OPEN_COOKIE & options)) { 
    655497                struct tcp_fastopen_cookie *foc = opts->fastopen_cookie; 
     
    676518                if ((type == IGMPV3_ALLOW_NEW_SOURCES || 
    677519                     type == IGMPV3_BLOCK_OLD_SOURCES) && psf->sf_crcount) { 
    678 --- a/net/ipv4/ip_gre.c 
    679 +++ b/net/ipv4/ip_gre.c 
    680 @@ -518,7 +518,7 @@ static void ipgre_err(struct sk_buff *sk 
    681                 return; 
    682   
    683         if (flags & GRE_KEY) 
    684 -               key = *(((__be32 *)p) + (grehlen / 4) - 1); 
    685 +               key = net_hdr_word(((__be32 *)p) + (grehlen / 4) - 1); 
    686   
    687         switch (type) { 
    688         default: 
    689520--- a/include/uapi/linux/igmp.h 
    690521+++ b/include/uapi/linux/igmp.h 
     
    727558--- a/net/core/flow_dissector.c 
    728559+++ b/net/core/flow_dissector.c 
    729 @@ -137,7 +137,7 @@ ipv6: 
     560@@ -152,7 +152,7 @@ ipv6: 
    730561                nhoff += poff; 
    731562                ports = skb_header_pointer(skb, nhoff, sizeof(_ports), &_ports); 
     
    735566        } 
    736567  
    737         return true; 
     568        flow->thoff = (u16) nhoff; 
    738569--- a/include/uapi/linux/icmpv6.h 
    739570+++ b/include/uapi/linux/icmpv6.h 
     
    758589 struct rd_msg { 
    759590        struct icmp6hdr icmph; 
    760 @@ -142,10 +142,10 @@ static inline u32 ndisc_hashfn(const voi 
     591@@ -148,10 +148,10 @@ static inline u32 ndisc_hashfn(const voi 
    761592 { 
    762593        const u32 *p32 = pkey; 
     
    772603 } 
    773604  
    774  static inline struct neighbour *__ipv6_neigh_lookup(struct neigh_table *tbl, struct net_device *dev, const void *pkey) 
    775 @@ -163,8 +163,10 @@ static inline struct neighbour *__ipv6_n 
     605 static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey) 
     606@@ -168,8 +168,10 @@ static inline struct neighbour *__ipv6_n 
    776607             n = rcu_dereference_bh(n->next)) { 
    777608                u32 *n32 = (u32 *) n->primary_key; 
    778609                if (n->dev == dev && 
    779610-                   ((n32[0] ^ p32[0]) | (n32[1] ^ p32[1]) | 
    780 -                    (n32[2] ^ p32[2]) | (n32[3] ^ p32[3])) == 0) { 
     611-                    (n32[2] ^ p32[2]) | (n32[3] ^ p32[3])) == 0) 
    781612+                   ((n32[0] ^ net_hdr_word(&p32[0])) | 
    782 +                   (n32[1] ^ net_hdr_word(&p32[1])) | 
     613+                       (n32[1] ^ net_hdr_word(&p32[1])) | 
    783614+                    (n32[2] ^ net_hdr_word(&p32[2])) | 
    784 +                    (n32[3] ^ net_hdr_word(&p32[3]))) == 0) { 
    785                         if (!atomic_inc_not_zero(&n->refcnt)) 
    786                                 n = NULL; 
    787                         break; 
     615+                        (n32[3] ^ net_hdr_word(&p32[3]))) == 0) 
     616                        return n; 
     617        } 
     618  
    788619--- a/net/sched/cls_u32.c 
    789620+++ b/net/sched/cls_u32.c 
     
    810641--- a/net/ipv6/ip6_offload.c 
    811642+++ b/net/ipv6/ip6_offload.c 
    812 @@ -200,7 +200,7 @@ static struct sk_buff **ipv6_gro_receive 
     643@@ -199,7 +199,7 @@ static struct sk_buff **ipv6_gro_receive 
    813644                        continue; 
    814645  
     
    821652--- a/include/net/addrconf.h 
    822653+++ b/include/net/addrconf.h 
    823 @@ -39,7 +39,7 @@ struct prefix_info { 
     654@@ -43,7 +43,7 @@ struct prefix_info { 
    824655        __be32                  reserved2; 
    825656  
     
    832663--- a/include/net/inet_ecn.h 
    833664+++ b/include/net/inet_ecn.h 
    834 @@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct 
     665@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct  
    835666 { 
    836667        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) 
     
    859690 #define        IP6_MF  0x0001 
    860691  
    861 @@ -386,6 +386,8 @@ static inline bool __ipv6_prefix_equal(c 
    862                                        unsigned int prefixlen) 
    863  { 
     692@@ -386,8 +386,8 @@ static inline void __ipv6_addr_set_half( 
     693        } 
     694 #endif 
     695 #endif 
     696-       addr[0] = wh; 
     697-       addr[1] = wl; 
     698+       net_hdr_word(&addr[0]) = wh; 
     699+       net_hdr_word(&addr[1]) = wl; 
     700 } 
     701  
     702 static inline void ipv6_addr_set(struct in6_addr *addr,  
     703@@ -446,6 +446,8 @@ static inline bool ipv6_prefix_equal(con 
     704        const __be32 *a1 = addr1->s6_addr32; 
     705        const __be32 *a2 = addr2->s6_addr32; 
    864706        unsigned int pdw, pbi; 
    865707+       /* Used for last <32-bit fraction of prefix */ 
     
    868710        /* check complete u32 in prefix */ 
    869711        pdw = prefixlen >> 5; 
    870 @@ -394,7 +396,9 @@ static inline bool __ipv6_prefix_equal(c 
     712@@ -454,7 +456,9 @@ static inline bool ipv6_prefix_equal(con 
    871713  
    872714        /* check incomplete u32 in prefix */ 
     
    879721  
    880722        return true; 
    881 @@ -521,13 +525,13 @@ static inline void ipv6_addr_set_v4mappe 
     723@@ -587,13 +591,13 @@ static inline void ipv6_addr_set_v4mappe 
    882724  */ 
    883  static inline int __ipv6_addr_diff(const void *token1, const void *token2, int addrlen) 
     725 static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) 
    884726 { 
    885727-       const __be32 *a1 = token1, *a2 = token2; 
     
    895737                        return i * 32 + 31 - __fls(ntohl(xb)); 
    896738        } 
     739@@ -657,12 +661,13 @@ extern void ipv6_select_ident(struct fra 
     740 static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, 
     741                                __be32 flowlabel) 
     742 { 
     743-       *(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | flowlabel; 
     744+       net_hdr_word((__be32 *)hdr) = 
     745+               htonl(0x60000000 | (tclass << 20)) | flowlabel; 
     746 } 
     747  
     748 static inline __be32 ip6_flowinfo(const struct ipv6hdr *hdr) 
     749 { 
     750-       return *(__be32 *)hdr & IPV6_FLOWINFO_MASK; 
     751+       return net_hdr_word((__be32 *)hdr) & IPV6_FLOWINFO_MASK; 
     752 } 
     753  
     754 /* 
    897755--- a/include/net/secure_seq.h 
    898756+++ b/include/net/secure_seq.h 
     
    903761+#include <linux/in6.h> 
    904762  
     763 extern void net_secret_init(void); 
    905764 extern __u32 secure_ip_id(__be32 daddr); 
    906  extern __u32 secure_ipv6_id(const __be32 daddr[4]); 
    907765--- a/include/uapi/linux/in.h 
    908766+++ b/include/uapi/linux/in.h 
     
    918776--- a/net/core/secure_seq.c 
    919777+++ b/net/core/secure_seq.c 
    920 @@ -43,10 +43,11 @@ __u32 secure_tcpv6_sequence_number(const 
     778@@ -41,10 +41,11 @@ __u32 secure_tcpv6_sequence_number(const 
    921779        u32 secret[MD5_MESSAGE_BYTES / 4]; 
    922780        u32 hash[MD5_DIGEST_WORDS]; 
     
    931789                (((__force u16)sport << 16) + (__force u16)dport); 
    932790        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) 
    933 @@ -64,10 +65,11 @@ u32 secure_ipv6_port_ephemeral(const __b 
     791@@ -62,10 +63,11 @@ u32 secure_ipv6_port_ephemeral(const __b 
    934792        u32 secret[MD5_MESSAGE_BYTES / 4]; 
    935793        u32 hash[MD5_DIGEST_WORDS]; 
     
    944802        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++) 
    945803                secret[i] = net_secret[i]; 
    946 @@ -165,10 +167,11 @@ u64 secure_dccpv6_sequence_number(__be32 
     804@@ -163,10 +165,11 @@ u64 secure_dccpv6_sequence_number(__be32 
    947805        u32 hash[MD5_DIGEST_WORDS]; 
    948806        u64 seq; 
     
    970828--- a/net/netfilter/nf_conntrack_proto_tcp.c 
    971829+++ b/net/netfilter/nf_conntrack_proto_tcp.c 
    972 @@ -452,7 +452,7 @@ static void tcp_sack(const struct sk_buf 
     830@@ -454,7 +454,7 @@ static void tcp_sack(const struct sk_buf 
    973831  
    974832        /* Fast path for timestamp-only option */ 
     
    981839--- a/net/netfilter/xt_LOG.c 
    982840+++ b/net/netfilter/xt_LOG.c 
    983 @@ -521,9 +521,9 @@ static void dump_ipv6_packet(struct sbuf 
     841@@ -528,9 +528,9 @@ static void dump_ipv6_packet(struct sbuf 
    984842        /* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */ 
    985843        sb_add(m, "LEN=%Zu TC=%u HOPLIMIT=%u FLOWLBL=%u ", 
     
    995853--- a/net/xfrm/xfrm_input.c 
    996854+++ b/net/xfrm/xfrm_input.c 
    997 @@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb, 
     855@@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb,  
    998856        if (!pskb_may_pull(skb, hlen)) 
    999857                return -EINVAL; 
     
    1006864 } 
    1007865  
     866--- a/net/ipv4/ip_gre.c 
     867+++ b/net/ipv4/ip_gre.c 
     868@@ -190,13 +190,13 @@ static int parse_gre_header(struct sk_bu 
     869        } 
     870  
     871        if (greh->flags & GRE_KEY) { 
     872-               tpi->key = *options; 
     873+               tpi->key = net_hdr_word(options); 
     874                options++; 
     875        } else 
     876                tpi->key = 0; 
     877  
     878        if (unlikely(greh->flags & GRE_SEQ)) { 
     879-               tpi->seq = *options; 
     880+               tpi->seq = net_hdr_word(options); 
     881                options++; 
     882        } else 
     883                tpi->seq = 0; 
     884--- a/net/ipv4/tcp_input.c 
     885+++ b/net/ipv4/tcp_input.c 
     886@@ -3592,13 +3592,14 @@ static bool tcp_parse_aligned_timestamp( 
     887 { 
     888        const __be32 *ptr = (const __be32 *)(th + 1); 
     889  
     890-       if (*ptr == htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) 
     891-                         | (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { 
     892+       if (net_hdr_word(ptr) == 
     893+           htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | 
     894+                 (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { 
     895                tp->rx_opt.saw_tstamp = 1; 
     896                ++ptr; 
     897-               tp->rx_opt.rcv_tsval = ntohl(*ptr); 
     898+               tp->rx_opt.rcv_tsval = get_unaligned_be32(ptr); 
     899                ++ptr; 
     900-               tp->rx_opt.rcv_tsecr = ntohl(*ptr) - tp->tsoffset; 
     901+               tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr) - tp->tsoffset; 
     902                return true; 
     903        } 
     904        return false; 
Note: See TracChangeset for help on using the changeset viewer.