aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.3
Commit message (Collapse)AuthorAgeFilesLines
* kernel: fix pkt_type filter mask for packet socketsFelix Fietkau2014-06-131-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41178 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: add a ssb backport required for a new mac80211 updateFelix Fietkau2014-05-231-14/+15
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40833 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix compile error with gcc-4.8 and kernel 3.3Hauke Mehrtens2014-05-014-13/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With gcc-4.8 I get a compile error with kernel 3.3. This patch fixes this problem by backporting a patch from a more recent kernel version. CC arch/mips/mm/page.o arch/mips/mm/page.c:89:6: error: 'clear_page' alias in between function and variable is not supported void clear_page(void *page) __attribute__((alias("clear_page_array"))); ^ arch/mips/mm/page.c:84:12: error: 'clear_page_array' aliased declaration [-Werror] static u32 clear_page_array[0x120 / 4]; ^ arch/mips/mm/page.c:108:6: error: 'copy_page' alias in between function and variable is not supported void copy_page(void *to, void *from) __attribute__((alias("copy_page_array"))); ^ arch/mips/mm/page.c:102:12: error: 'copy_page_array' aliased declaration [-Werror] static u32 copy_page_array[0x540 / 4]; ^ arch/mips/mm/page.c:108:6: error: 'copy_page' alias in between function and variable is not supported void copy_page(void *to, void *from) __attribute__((alias("copy_page_array"))); ^ arch/mips/mm/page.c:102:12: error: 'copy_page_array' aliased declaration [-Werror] static u32 copy_page_array[0x540 / 4]; ^ arch/mips/mm/page.c:89:6: error: 'clear_page' alias in between function and variable is not supported void clear_page(void *page) __attribute__((alias("clear_page_array"))); ^ arch/mips/mm/page.c:84:12: error: 'clear_page_array' aliased declaration [-Werror] static u32 clear_page_array[0x120 / 4]; ^ cc1: all warnings being treated as errors make[7]: *** [arch/mips/mm/page.o] Error 1 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40619 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: backport ARM memset fixes for GCC 4.7/4.8Florian Fainelli2014-03-122-0/+338
| | | | | | | | | Now that GCC 4.8 is the default, make sure that we have the relevant memset fixes to avoid nasty kernel crashes. Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39902 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel/3.3: remove yaffs supportGabor Juhos2013-12-169-732/+0
| | | | | | | | It is not used by any platform. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39081 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: refresh patchesHauke Mehrtens2013-10-022-14/+4
| | | | | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38291 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: bcma: update to wireless-testing master-2013-10-01Hauke Mehrtens2013-10-021-49/+53
| | | | | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38290 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update bcma and ssb to wireless-testing master-2013-09-09Hauke Mehrtens2013-09-123-239/+240
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37957 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: align the skb padding to power of twoFelix Fietkau2013-09-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The skb is usually started by a padding which allows the protocols in the network stack to add their headers in front of the payload. The skb can be reallocated in case the preallocated padding is not large enough. This can for example happen in the function __skb_cow which will check the requested extra headroom and allocate more buffer when the requested headroom is bigger than the available one. The extra buffer is aligned again to the multiple of the NET_SKB_PAD of the target architecture. The macro used to create the multiple of the NET_SKB_PAD is written in a way which allows only values power two as alignment parameter. The currently used value of 48 bytes can not be written as n ** 2 but as 2 ** 4 + 2 ** 5. The extra buffer is therefore not always the multiple of 48 but can be 16, 64, 80, 128, 144 and so on. The generated values are also not monotonic (48 requested bytes are mapped to 80 allocated bytes and 49 requested bytes are mapped to 64 allocated bytes). These unexpected small values result in more reallocations of the buffer. This was noticed prominently during tests between two QCA9558 720 MHz devices which were connected via ethernet to PCs and had a HT40 802.11n 3x3 link between each other. The throughput PC-to-PC during iperf TCP runs increased reliable from 186 Mibit/s to 214 Mibit/s in one direction and from 195 Mibit/s to 220 Mibit/s in the other direction. This is a performance increase of ~14% just by reducing the amount of reallocations. Signed-off-by: Sven Eckelmann <sven@open-mesh.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37948 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: allow hwmon GSC driver for all targetsLuka Perkov2013-09-101-1/+1
| | | | | | | | | - enable using hwmon GSC driver on all targets - add a kmod package for it Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37933 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix arch-dependent bug in hso moduleFelix Fietkau2013-09-102-0/+98
| | | | | | | | | | Currently, the module causes an oops at least on rt5350. These patches have been accepted upstream at: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37931 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: don't hide the 'Warning: unable to open an initial console' messageGabor Juhos2013-08-271-11/+0
| | | | | | | | | | The 'Warning: unable to open an initial console' message indicates an error in the rootfs. Remove the patch which hides the warning. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37848 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: ensure that /dev/console exists in initramfsGabor Juhos2013-08-271-0/+30
| | | | | | | | | | | Linux expects that the /dev/console node is present in the rootfs image. Create the node in initramfs, in order to make std{in,out,err} usable even in early init process. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37846 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: crashlog: Avoid out-of-bounds writeFelix Fietkau2013-08-211-1/+1
| | | | | | | | | | | | | | | | vsnprintf returns the number of chars that would have been written, not the actual number of chars written. This can lead to crashlog_buf->len being too big which in turn can lead to get_maxlen() returning negative numbers. The length argument of kmsg_dump_get_buffer will be casted to a size_t which makes a negative input a big positive number allowing kmsg_dump_get_buffer to write out of bounds. Fix this by using vscnprintf which returns the actually written number of chars. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37820 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: drop dead glamo codeLuka Perkov2013-08-181-21/+0
| | | | | | | | The code is not used since the s3c24xx target was removed. Signed-off-by: Luka Perkov <luka@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37809 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix DMA error when BCM4331 is connected to BCM4706Hauke Mehrtens2013-08-051-0/+167
| | | | | | | | | | | | The BCM4331 supports a PCIe max request size of 512 bytes and uses that, but the PCIe controller in the BCM4706 just supports 128 Bytes and that causes a DMA error for packages bigger than 126 bytes. This fixes the problem by setting the BCM4331 also to 128 Bytes. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37709 3c298f89-4303-0410-b956-a3cf2f4a3e73
* build: unify target independent optimization optionsFelix Fietkau2013-07-291-2/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37600 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: stop patching -funit-at-a-time into CFLAGS, it has no effect on ↵Felix Fietkau2013-07-291-10/+0
| | | | | | | | recent compilers Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37598 3c298f89-4303-0410-b956-a3cf2f4a3e73
* strict_strtoul is obsolete, use kstrtoul insteadJohn Crispin2013-07-272-10/+10
| | | | | | | | based on http://patchwork.openwrt.org/patch/3827/ Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37562 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: Remove gpio-pwm patchesLars-Peter Clausen2013-07-211-21/+0
| | | | | | | | | | There is no platform using the gpio-pwm driver, yet these patches break the generic PWM framework that is in upstream. So just remove them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37490 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update bcma and ssb to version from wireless-testing/master tag ↵Hauke Mehrtens2013-07-192-363/+2197
| | | | | | | | | | | master-2013-07-18 This should fix some build problems in b43 with kernel 3.3. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37432 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix CVE-2013-1763 in older kernelsJonas Gorski2013-05-121-0/+27
| | | | | | | | Newer kernels were already fixed by upstream. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36607 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: make zlib and lzo modules selectableJonas Gorski2013-05-091-0/+23
| | | | | | | | Fixes building kmod-lib-zlib and kmod-lib-lzo if nothing depends on them. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36592 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: add missing bcma defines and header file for bcrmfmacJonas Gorski2013-04-283-89/+112
| | | | | | | | Fixes build failure when having kmod-mmc and brcmfmac selected. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36468 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: allow __netdev_alloc_skb_ip_align to be called with dev = NULLFelix Fietkau2013-04-221-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36378 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: backport SSB/BCMA changes in preparation for a compat-wireless updateFelix Fietkau2013-04-192-121/+240
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36367 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: backport switch user API changes after r36283Florian Fainelli2013-04-092-5/+14
| | | | | | | | | 3.3 and 3.6 kernels do not make use of the UAPI headers, still they need to provide an up-to-date switch.h copy for swconfig to build. Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36295 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: REGMAP_SPI should only be selectable when SPI_MASTER is selectedHauke Mehrtens2013-03-211-1/+2
| | | | | | | | | | This was turned from a silent confg option without a text to a normal config option which could be selected without any other option depending on this. This could cause the situation where REGMAP_SPI was selected without SPI_MASTER being selected. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36101 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: make SND_COMPRESS_OFFLOAD symbol visible for selection (#13193)Florian Fainelli2013-03-191-1/+8
| | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36091 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: set regmap-core module licenseFlorian Fainelli2013-03-171-0/+16
| | | | | | | | | | | | | | | | | | | | Fixes the following issues: [ 7.660000] regmap_core: module license 'unspecified' taints kernel [ 7.690000] Disabling lock debugging due to kernel [ 7.700000] regmap_core: Unknown symbol lzo1x_decompress_safe (err 0 [ 7.710000] regmap_core: Unknown symbol lzo1x_1_compress (err 0 [ 7.720000] regmap_core: Unknown symbol devres_add (err 0 [ 7.730000] regmap_core: Unknown symbol debugfs_create_bool (err 0 [ 7.750000] regmap_core: Unknown symbol devres_alloc (err 0 [ 7.760000] regmap_core: Unknown symbol debugfs_remove_recursive (err 0 [ 7.770000] regmap_core: Unknown symbol debugfs_create_file (err 0 [ 7.780000] regmap_core: Unknown symbol devres_free (err 0 [ 7.800000] regmap_core: Unknown symbol devres_find (err 0 [ 7.810000] regmap_core: Unknown symbol debugfs_create_dir (err 0) Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36070 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: add detach callback to struct phy_driverGabor Juhos2013-02-072-1/+28
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35510 3c298f89-4303-0410-b956-a3cf2f4a3e73
* linux/3.3: disable crashlog on PPCGabor Juhos2013-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It causes NULL pointer dereference: [ 0.638235] __ioremap(): phys addr 0x7f00000 is RAM lr c025d61c [ 0.644090] Unable to handle kernel paging request for data at address 0x00000000 [ 0.651533] Faulting instruction address: 0xc025d620 [ 0.656483] Oops: Kernel access of bad area, sig: 11 [#1] [ 0.661856] P1010 RDB [ 0.664113] Modules linked in: [ 0.667152] NIP: c025d620 LR: c025d61c CTR: c000dc38 [ 0.672101] REGS: c7831ef0 TRAP: 0300 Not tainted (3.3.8) [ 0.677740] MSR: 00029000 <CE,EE,ME> CR: 42022082 XER: 20000000 [ 0.683817] DEAR: 00000000, ESR: 00000000 [ 0.687811] TASK = c782c000[1] 'swapper' THREAD: c7830000 [ 0.693017] GPR00: a1ee0000 c7831fa0 c782c000 00000000 0000214c ffffffff c7831ea6 0001ffff [ 0.701350] GPR08: c03697cc c035fba0 c03697cc c0360000 42022022 00000000 00000000 00000000 [ 0.709682] GPR16: c0000a00 00000014 3fffffff 00ffa000 00000015 07fc42bc c0360000 00000000 [ 0.718015] GPR24: 00000000 00000000 00001680 c0360000 00000000 c025d5e8 c0390000 c038b824 [ 0.726535] NIP [c025d620] crashlog_init_fs+0x38/0xd8 [ 0.731560] LR [c025d61c] crashlog_init_fs+0x34/0xd8 [ 0.736503] Call Trace: [ 0.738939] [c7831fa0] [c025d61c] crashlog_init_fs+0x34/0xd8 (unreliable) [ 0.745712] [c7831fb0] [c0001e98] do_one_initcall+0xd4/0x198 [ 0.751357] [c7831fe0] [c02537f4] kernel_init+0x9c/0x120 [ 0.756647] [c7831ff0] [c000c2dc] kernel_thread+0x4c/0x68 [ 0.762022] Instruction dump: [ 0.764975] 3860fff4 bfc10008 3fc0c039 90010014 3bfeb824 801f0004 2f800000 41be00a0 [ 0.772699] 7c030378 38804000 4bdb38cd 3c00a1ee <81630000> 6000dead 7c691b78 907eb824 Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35435 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: fix build failure in MIPS kexec code if SMP is enabledGabor Juhos2013-01-294-16/+14
| | | | | | | | Fix it for older kernels as well. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35366 3c298f89-4303-0410-b956-a3cf2f4a3e73
* netfilter: add support for flushing conntrack via /procFelix Fietkau2013-01-271-0/+46
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35330 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: add EHCI|OHCI platform driver fix to 3.[36]Gabor Juhos2013-01-172-0/+98
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35194 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update bcma and ssb to master-2013-01-09 from wireless-testingHauke Mehrtens2013-01-103-152/+1041
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35080 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [kernel] missing underscore in 3.3 regmap patchJohn Crispin2013-01-061-1/+1
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35018 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: port the regmap fix to 3.6 (#12749), refresh patches for other versionsFelix Fietkau2013-01-051-8/+4
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35016 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [kernel] fix regmap debloat patchJohn Crispin2013-01-051-6/+27
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35015 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: move regmap bloat out of the kernel image if it is only being used ↵Felix Fietkau2013-01-031-0/+21
| | | | | | in modules git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34999 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: fix UBIFS build error if XZ compression is disabledGabor Juhos2013-01-021-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34959 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: remove the cisco SIP NAT patch, at least on 3.6 it crashesFelix Fietkau2012-12-271-118/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34901 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: add solos-pci update for 3.3Gabor Juhos2012-12-211-16/+425
| | | | | | | | | | | | | | Same patches that I just merged for 3.6 and 3.7, except with one additional fix that went into v3.4 that needed to be included. Submitted more for the benefit of the AA branch than for trunk. [juhosg: refresh the patch with quilt] Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34813 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: export include/linux/switch.h on 3.3, 3.6Gabor Juhos2012-12-141-0/+10
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34678 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: disintegrate UAPI from include/linux/switch.hGabor Juhos2012-12-141-0/+100
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34677 3c298f89-4303-0410-b956-a3cf2f4a3e73
* generic: refresh patchesGabor Juhos2012-12-141-5/+0
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34676 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix solos-pci skb double-free in DMA modeGabor Juhos2012-12-131-0/+33
| | | | | | | | | [juhosg: refresh the patches with quilt] Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34667 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: fix perf build with uclibc toolchains on x86Florian Fainelli2012-12-131-0/+32
| | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34666 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update bcma and ssb to master-2012-12-11-2 from wireless-testingHauke Mehrtens2012-12-125-123/+895
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34651 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [adm8668] get rid of the specific UART driver and use AMBA PL010Florian Fainelli2012-12-062-14/+12
| | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34548 3c298f89-4303-0410-b956-a3cf2f4a3e73