From 62ef8d12425b5b6651ab1dcd560f7f060e367b0b Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Thu, 31 Jul 2014 21:33:58 +0000 Subject: [PATCH] kernel: refresh patches Signed-off-by: Hauke Mehrtens SVN-Revision: 41909 --- .../patches-3.10/070-net_bridge_backports.patch | 4 ++-- .../643-bridge_remove_ipv6_dependency.patch | 2 +- .../645-bridge_multicast_to_unicast.patch | 12 ++++++------ .../patches-3.10/657-qdisc_reduce_truesize.patch | 2 +- .../412-mtd-partial_eraseblock_unlock.patch | 2 +- .../linux/generic/patches-3.3/020-ssb_update.patch | 12 ++++++------ .../478-mtd-partial_eraseblock_unlock.patch | 2 +- .../generic/patches-3.3/831-ledtrig_netdev.patch | 4 ++-- ...fix-memset-related-crashes-caused-by-rece.patch | 5 ----- ...fix-memset-related-crashes-caused-by-rece.patch | 5 ----- .../linux/generic/patches-3.8/020-ssb_update.patch | 14 +++++++------- .../478-mtd-partial_eraseblock_unlock.patch | 2 +- .../generic/patches-3.8/831-ledtrig_netdev.patch | 4 ++-- .../linux/generic/patches-3.9/020-ssb_update.patch | 10 +++++----- .../478-mtd-partial_eraseblock_unlock.patch | 2 +- .../generic/patches-3.9/831-ledtrig_netdev.patch | 4 ++-- .../patches-3.9/903-debloat_direct_io.patch | 2 +- 17 files changed, 39 insertions(+), 49 deletions(-) diff --git a/target/linux/generic/patches-3.10/070-net_bridge_backports.patch b/target/linux/generic/patches-3.10/070-net_bridge_backports.patch index f303c3a094..6f7e141c5e 100644 --- a/target/linux/generic/patches-3.10/070-net_bridge_backports.patch +++ b/target/linux/generic/patches-3.10/070-net_bridge_backports.patch @@ -555,7 +555,7 @@ Date: Tue May 21 21:52:54 2013 +0000 } #endif -@@ -1473,8 +1569,14 @@ static int br_multicast_ipv6_rcv(struct +@@ -1473,8 +1569,14 @@ static int br_multicast_ipv6_rcv(struct * - MLD has always Router Alert hop-by-hop option * - But we do not support jumbrograms. */ @@ -918,7 +918,7 @@ Date: Tue May 21 21:52:54 2013 +0000 static ssize_t show_multicast_querier(struct device *d, struct device_attribute *attr, char *buf) -@@ -734,6 +759,7 @@ static struct attribute *bridge_attrs[] +@@ -734,6 +759,7 @@ static struct attribute *bridge_attrs[] &dev_attr_multicast_router.attr, &dev_attr_multicast_snooping.attr, &dev_attr_multicast_querier.attr, diff --git a/target/linux/generic/patches-3.10/643-bridge_remove_ipv6_dependency.patch b/target/linux/generic/patches-3.10/643-bridge_remove_ipv6_dependency.patch index e38e001689..407c980e01 100644 --- a/target/linux/generic/patches-3.10/643-bridge_remove_ipv6_dependency.patch +++ b/target/linux/generic/patches-3.10/643-bridge_remove_ipv6_dependency.patch @@ -25,7 +25,7 @@ Ethernet bridge, which means that the different Ethernet segments it --- a/net/ipv6/Makefile +++ b/net/ipv6/Makefile -@@ -44,3 +44,4 @@ obj-y += addrconf_core.o exthdrs_core.o +@@ -44,3 +44,4 @@ obj-y += addrconf_core.o exthdrs_core.o obj-$(CONFIG_INET) += output_core.o protocol.o $(ipv6-offload) obj-$(subst m,y,$(CONFIG_IPV6)) += inet6_hashtables.o diff --git a/target/linux/generic/patches-3.10/645-bridge_multicast_to_unicast.patch b/target/linux/generic/patches-3.10/645-bridge_multicast_to_unicast.patch index 9ee6b01df0..c461199602 100644 --- a/target/linux/generic/patches-3.10/645-bridge_multicast_to_unicast.patch +++ b/target/linux/generic/patches-3.10/645-bridge_multicast_to_unicast.patch @@ -197,7 +197,7 @@ } #endif -@@ -1447,6 +1474,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1447,6 +1474,7 @@ static int br_multicast_ipv4_rcv(struct struct net_bridge_port *port, struct sk_buff *skb) { @@ -205,7 +205,7 @@ struct sk_buff *skb2 = skb; const struct iphdr *iph; struct igmphdr *ih; -@@ -1522,7 +1550,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1522,7 +1550,7 @@ static int br_multicast_ipv4_rcv(struct case IGMP_HOST_MEMBERSHIP_REPORT: case IGMPV2_HOST_MEMBERSHIP_REPORT: BR_INPUT_SKB_CB(skb)->mrouters_only = 1; @@ -214,7 +214,7 @@ break; case IGMPV3_HOST_MEMBERSHIP_REPORT: err = br_ip4_multicast_igmp3_report(br, port, skb2); -@@ -1531,7 +1559,7 @@ static int br_multicast_ipv4_rcv(struct +@@ -1531,7 +1559,7 @@ static int br_multicast_ipv4_rcv(struct err = br_ip4_multicast_query(br, port, skb2); break; case IGMP_HOST_LEAVE_MESSAGE: @@ -223,7 +223,7 @@ break; } -@@ -1548,6 +1576,7 @@ static int br_multicast_ipv6_rcv(struct +@@ -1548,6 +1576,7 @@ static int br_multicast_ipv6_rcv(struct struct net_bridge_port *port, struct sk_buff *skb) { @@ -231,7 +231,7 @@ struct sk_buff *skb2; const struct ipv6hdr *ip6h; u8 icmp6_type; -@@ -1659,7 +1688,8 @@ static int br_multicast_ipv6_rcv(struct +@@ -1659,7 +1688,8 @@ static int br_multicast_ipv6_rcv(struct } mld = (struct mld_msg *)skb_transport_header(skb2); BR_INPUT_SKB_CB(skb)->mrouters_only = 1; @@ -241,7 +241,7 @@ break; } case ICMPV6_MLD2_REPORT: -@@ -1676,7 +1706,7 @@ static int br_multicast_ipv6_rcv(struct +@@ -1676,7 +1706,7 @@ static int br_multicast_ipv6_rcv(struct goto out; } mld = (struct mld_msg *)skb_transport_header(skb2); diff --git a/target/linux/generic/patches-3.10/657-qdisc_reduce_truesize.patch b/target/linux/generic/patches-3.10/657-qdisc_reduce_truesize.patch index e27d0a04d6..93ff7ba71d 100644 --- a/target/linux/generic/patches-3.10/657-qdisc_reduce_truesize.patch +++ b/target/linux/generic/patches-3.10/657-qdisc_reduce_truesize.patch @@ -24,7 +24,7 @@ commont qdiscs. } --- a/net/sched/sch_fifo.c +++ b/net/sched/sch_fifo.c -@@ -29,17 +29,21 @@ static int bfifo_enqueue(struct sk_buff +@@ -29,17 +29,21 @@ static int bfifo_enqueue(struct sk_buff static int pfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch) { diff --git a/target/linux/generic/patches-3.13/412-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/patches-3.13/412-mtd-partial_eraseblock_unlock.patch index 134f65715e..87c8257fe1 100644 --- a/target/linux/generic/patches-3.13/412-mtd-partial_eraseblock_unlock.patch +++ b/target/linux/generic/patches-3.13/412-mtd-partial_eraseblock_unlock.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -331,7 +331,14 @@ static int part_lock(struct mtd_info *mt +@@ -332,7 +332,14 @@ static int part_lock(struct mtd_info *mt static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) { struct mtd_part *part = PART(mtd); diff --git a/target/linux/generic/patches-3.3/020-ssb_update.patch b/target/linux/generic/patches-3.3/020-ssb_update.patch index eac9807f18..5354cc7b25 100644 --- a/target/linux/generic/patches-3.3/020-ssb_update.patch +++ b/target/linux/generic/patches-3.3/020-ssb_update.patch @@ -471,7 +471,7 @@ } if (updown_tab) { -@@ -516,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon +@@ -516,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon pmucap = chipco_read32(cc, SSB_CHIPCO_PMU_CAP); cc->pmu.rev = (pmucap & SSB_CHIPCO_PMU_CAP_REVISION); @@ -1131,7 +1131,7 @@ } static void dump_irq(struct ssb_bus *bus) -@@ -178,9 +199,9 @@ static void ssb_mips_serial_init(struct +@@ -178,9 +199,9 @@ static void ssb_mips_serial_init(struct { struct ssb_bus *bus = mcore->dev->bus; @@ -1143,7 +1143,7 @@ mcore->nr_serial_ports = ssb_chipco_serial_init(&bus->chipco, mcore->serial_ports); else mcore->nr_serial_ports = 0; -@@ -189,17 +210,42 @@ static void ssb_mips_serial_init(struct +@@ -189,17 +210,42 @@ static void ssb_mips_serial_init(struct static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) { struct ssb_bus *bus = mcore->dev->bus; @@ -1980,7 +1980,7 @@ sprom_extract_r458(out, in); /* TODO - get remaining rev 8 stuff needed */ -@@ -641,7 +753,7 @@ static int sprom_extract(struct ssb_bus +@@ -641,7 +753,7 @@ static int sprom_extract(struct ssb_bus memset(out, 0, sizeof(*out)); out->revision = in[size - 1] & 0x00FF; @@ -1989,7 +1989,7 @@ memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */ memset(out->et1mac, 0xFF, 6); -@@ -650,7 +762,7 @@ static int sprom_extract(struct ssb_bus +@@ -650,7 +762,7 @@ static int sprom_extract(struct ssb_bus * number stored in the SPROM. * Always extract r1. */ out->revision = 1; @@ -1998,7 +1998,7 @@ } switch (out->revision) { -@@ -667,9 +779,8 @@ static int sprom_extract(struct ssb_bus +@@ -667,9 +779,8 @@ static int sprom_extract(struct ssb_bus sprom_extract_r8(out, in); break; default: diff --git a/target/linux/generic/patches-3.3/478-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/patches-3.3/478-mtd-partial_eraseblock_unlock.patch index de4481a93a..d4d2940db1 100644 --- a/target/linux/generic/patches-3.3/478-mtd-partial_eraseblock_unlock.patch +++ b/target/linux/generic/patches-3.3/478-mtd-partial_eraseblock_unlock.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -356,7 +356,14 @@ static int part_unlock(struct mtd_info * +@@ -357,7 +357,14 @@ static int part_unlock(struct mtd_info * struct mtd_part *part = PART(mtd); if ((len + ofs) > mtd->size) return -EINVAL; diff --git a/target/linux/generic/patches-3.3/831-ledtrig_netdev.patch b/target/linux/generic/patches-3.3/831-ledtrig_netdev.patch index 7f94b1cd39..c100277c22 100644 --- a/target/linux/generic/patches-3.3/831-ledtrig_netdev.patch +++ b/target/linux/generic/patches-3.3/831-ledtrig_netdev.patch @@ -29,7 +29,7 @@ #include #include #include -@@ -307,8 +306,9 @@ done: +@@ -294,8 +293,9 @@ done: static void netdev_trig_timer(unsigned long arg) { struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; @@ -40,7 +40,7 @@ write_lock(&trigger_data->lock); -@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l +@@ -305,7 +305,7 @@ static void netdev_trig_timer(unsigned l goto no_restart; } diff --git a/target/linux/generic/patches-3.8/001-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch b/target/linux/generic/patches-3.8/001-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch index 03bc2e4d1a..07061b0bbd 100644 --- a/target/linux/generic/patches-3.8/001-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch +++ b/target/linux/generic/patches-3.8/001-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch @@ -96,8 +96,6 @@ Signed-off-by: Russell King arch/arm/lib/memset.S | 85 ++++++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 41 deletions(-) -diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S -index 650d5923ab83..d912e7397ecc 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S @@ -19,9 +19,9 @@ @@ -250,6 +248,3 @@ index 650d5923ab83..d912e7397ecc 100644 + strneb r1, [ip], #1 mov pc, lr ENDPROC(memset) --- -1.8.3.2 - diff --git a/target/linux/generic/patches-3.8/002-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch b/target/linux/generic/patches-3.8/002-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch index e3a0d7baee..266e507e69 100644 --- a/target/linux/generic/patches-3.8/002-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch +++ b/target/linux/generic/patches-3.8/002-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch @@ -24,8 +24,6 @@ Signed-off-by: Russell King arch/arm/lib/memset.S | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) -diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S -index d912e7397ecc..94b0650ea98f 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S @@ -14,31 +14,15 @@ @@ -78,6 +76,3 @@ index d912e7397ecc..94b0650ea98f 100644 + add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) + b 1b ENDPROC(memset) --- -1.8.3.2 - diff --git a/target/linux/generic/patches-3.8/020-ssb_update.patch b/target/linux/generic/patches-3.8/020-ssb_update.patch index 4dd5dad169..7baa17d447 100644 --- a/target/linux/generic/patches-3.8/020-ssb_update.patch +++ b/target/linux/generic/patches-3.8/020-ssb_update.patch @@ -104,7 +104,7 @@ } if (updown_tab) { -@@ -526,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon +@@ -526,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon pmucap = chipco_read32(cc, SSB_CHIPCO_PMU_CAP); cc->pmu.rev = (pmucap & SSB_CHIPCO_PMU_CAP_REVISION); @@ -151,7 +151,7 @@ return 0; } } -@@ -692,8 +687,23 @@ void ssb_pmu_spuravoid_pllupdate(struct +@@ -692,8 +687,23 @@ void ssb_pmu_spuravoid_pllupdate(struct pmu_ctl = SSB_CHIPCO_PMU_CTL_PLL_UPD; break; case 43222: @@ -346,7 +346,7 @@ +} --- a/drivers/ssb/driver_gpio.c +++ b/drivers/ssb/driver_gpio.c -@@ -74,6 +74,16 @@ static void ssb_gpio_chipco_free(struct +@@ -74,6 +74,16 @@ static void ssb_gpio_chipco_free(struct ssb_chipco_gpio_pullup(&bus->chipco, 1 << gpio, 0); } @@ -465,7 +465,7 @@ } static void dump_irq(struct ssb_bus *bus) -@@ -189,34 +210,43 @@ static void ssb_mips_serial_init(struct +@@ -189,34 +210,43 @@ static void ssb_mips_serial_init(struct static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) { struct ssb_bus *bus = mcore->dev->bus; @@ -993,7 +993,7 @@ SPEX(alpha2[0], SSB_SPROM8_CCODE, 0xff00, 8); SPEX(alpha2[1], SSB_SPROM8_CCODE, 0x00ff, 0); SPEX(boardflags_lo, SSB_SPROM8_BFLLO, 0xFFFF, 0); -@@ -743,7 +753,7 @@ static int sprom_extract(struct ssb_bus +@@ -743,7 +753,7 @@ static int sprom_extract(struct ssb_bus memset(out, 0, sizeof(*out)); out->revision = in[size - 1] & 0x00FF; @@ -1002,7 +1002,7 @@ memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */ memset(out->et1mac, 0xFF, 6); -@@ -752,7 +762,7 @@ static int sprom_extract(struct ssb_bus +@@ -752,7 +762,7 @@ static int sprom_extract(struct ssb_bus * number stored in the SPROM. * Always extract r1. */ out->revision = 1; @@ -1011,7 +1011,7 @@ } switch (out->revision) { -@@ -769,9 +779,8 @@ static int sprom_extract(struct ssb_bus +@@ -769,9 +779,8 @@ static int sprom_extract(struct ssb_bus sprom_extract_r8(out, in); break; default: diff --git a/target/linux/generic/patches-3.8/478-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/patches-3.8/478-mtd-partial_eraseblock_unlock.patch index 0fc4154fa6..134f65715e 100644 --- a/target/linux/generic/patches-3.8/478-mtd-partial_eraseblock_unlock.patch +++ b/target/linux/generic/patches-3.8/478-mtd-partial_eraseblock_unlock.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -330,7 +330,14 @@ static int part_lock(struct mtd_info *mt +@@ -331,7 +331,14 @@ static int part_lock(struct mtd_info *mt static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) { struct mtd_part *part = PART(mtd); diff --git a/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch b/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch index 85937d8798..2939ab7a52 100644 --- a/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch +++ b/target/linux/generic/patches-3.8/831-ledtrig_netdev.patch @@ -29,7 +29,7 @@ #include #include #include -@@ -307,8 +306,9 @@ done: +@@ -294,8 +293,9 @@ done: static void netdev_trig_timer(unsigned long arg) { struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; @@ -40,7 +40,7 @@ write_lock(&trigger_data->lock); -@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l +@@ -305,7 +305,7 @@ static void netdev_trig_timer(unsigned l goto no_restart; } diff --git a/target/linux/generic/patches-3.9/020-ssb_update.patch b/target/linux/generic/patches-3.9/020-ssb_update.patch index 6d871866d6..7290041a58 100644 --- a/target/linux/generic/patches-3.9/020-ssb_update.patch +++ b/target/linux/generic/patches-3.9/020-ssb_update.patch @@ -93,7 +93,7 @@ } if (updown_tab) { -@@ -526,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon +@@ -526,8 +524,8 @@ void ssb_pmu_init(struct ssb_chipcommon pmucap = chipco_read32(cc, SSB_CHIPCO_PMU_CAP); cc->pmu.rev = (pmucap & SSB_CHIPCO_PMU_CAP_REVISION); @@ -140,7 +140,7 @@ return 0; } } -@@ -692,8 +687,23 @@ void ssb_pmu_spuravoid_pllupdate(struct +@@ -692,8 +687,23 @@ void ssb_pmu_spuravoid_pllupdate(struct pmu_ctl = SSB_CHIPCO_PMU_CTL_PLL_UPD; break; case 43222: @@ -751,7 +751,7 @@ SPEX(alpha2[0], SSB_SPROM8_CCODE, 0xff00, 8); SPEX(alpha2[1], SSB_SPROM8_CCODE, 0x00ff, 0); SPEX(boardflags_lo, SSB_SPROM8_BFLLO, 0xFFFF, 0); -@@ -743,7 +753,7 @@ static int sprom_extract(struct ssb_bus +@@ -743,7 +753,7 @@ static int sprom_extract(struct ssb_bus memset(out, 0, sizeof(*out)); out->revision = in[size - 1] & 0x00FF; @@ -760,7 +760,7 @@ memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */ memset(out->et1mac, 0xFF, 6); -@@ -752,7 +762,7 @@ static int sprom_extract(struct ssb_bus +@@ -752,7 +762,7 @@ static int sprom_extract(struct ssb_bus * number stored in the SPROM. * Always extract r1. */ out->revision = 1; @@ -769,7 +769,7 @@ } switch (out->revision) { -@@ -769,9 +779,8 @@ static int sprom_extract(struct ssb_bus +@@ -769,9 +779,8 @@ static int sprom_extract(struct ssb_bus sprom_extract_r8(out, in); break; default: diff --git a/target/linux/generic/patches-3.9/478-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/patches-3.9/478-mtd-partial_eraseblock_unlock.patch index 0fc4154fa6..134f65715e 100644 --- a/target/linux/generic/patches-3.9/478-mtd-partial_eraseblock_unlock.patch +++ b/target/linux/generic/patches-3.9/478-mtd-partial_eraseblock_unlock.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -330,7 +330,14 @@ static int part_lock(struct mtd_info *mt +@@ -331,7 +331,14 @@ static int part_lock(struct mtd_info *mt static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) { struct mtd_part *part = PART(mtd); diff --git a/target/linux/generic/patches-3.9/831-ledtrig_netdev.patch b/target/linux/generic/patches-3.9/831-ledtrig_netdev.patch index e0e77588bd..0eb3bb1628 100644 --- a/target/linux/generic/patches-3.9/831-ledtrig_netdev.patch +++ b/target/linux/generic/patches-3.9/831-ledtrig_netdev.patch @@ -29,7 +29,7 @@ #include #include #include -@@ -307,8 +306,9 @@ done: +@@ -294,8 +293,9 @@ done: static void netdev_trig_timer(unsigned long arg) { struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; @@ -40,7 +40,7 @@ write_lock(&trigger_data->lock); -@@ -318,7 +318,7 @@ static void netdev_trig_timer(unsigned l +@@ -305,7 +305,7 @@ static void netdev_trig_timer(unsigned l goto no_restart; } diff --git a/target/linux/generic/patches-3.9/903-debloat_direct_io.patch b/target/linux/generic/patches-3.9/903-debloat_direct_io.patch index c4a99a33b4..93082ee0ff 100644 --- a/target/linux/generic/patches-3.9/903-debloat_direct_io.patch +++ b/target/linux/generic/patches-3.9/903-debloat_direct_io.patch @@ -1,6 +1,6 @@ --- a/fs/Kconfig +++ b/fs/Kconfig -@@ -62,6 +62,11 @@ config FILE_LOCKING +@@ -61,6 +61,11 @@ config FILE_LOCKING for filesystems like NFS and for the flock() system call. Disabling this option saves about 11k. -- 2.30.2