From 72f2bc5fc24c8980315f9177db3b391036c4174f Mon Sep 17 00:00:00 2001 From: Changki Kim Date: Wed, 2 Sep 2020 17:54:56 +0900 Subject: [PATCH 01/17] ANDROID: vendor_hooks: Add vendor hooks for key combination When some problems happened in android, we can't use adb command because android can be abnormal state. And we can't use uart because uart pin is not connected in the board. So we need key combination functions for debugging. This function should only use in development environment. In the market, this will be disabled. Bug: 167516783 Signed-off-by: Changki Kim Change-Id: I1cbbc93642fb45da161eee983380e48045153a66 [ Added "#ifdef __GENKSYMS__" around the include < to prevent CRC errors due to visibility of struct trace_eval_map ] Signed-off-by: Todd Kjos --- drivers/android/vendor_hooks.c | 1 + drivers/input/input.c | 5 +++++ include/trace/hooks/debug.h | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 7b4b1abbb537..0d3b4faa7bc7 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -55,3 +55,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_input_handle_event); diff --git a/drivers/input/input.c b/drivers/input/input.c index e2eb9b9b8363..6434e0aec875 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -26,6 +26,10 @@ #include "input-compat.h" #include "input-poller.h" +#ifndef __GENKSYMS__ +#include +#endif + MODULE_AUTHOR("Vojtech Pavlik "); MODULE_DESCRIPTION("Input core"); MODULE_LICENSE("GPL"); @@ -438,6 +442,7 @@ void input_event(struct input_dev *dev, if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); + trace_android_vh_input_handle_event(dev, type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } diff --git a/include/trace/hooks/debug.h b/include/trace/hooks/debug.h index d3e310ec4b2d..d3127643ece8 100644 --- a/include/trace/hooks/debug.h +++ b/include/trace/hooks/debug.h @@ -12,11 +12,19 @@ #if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS) +struct pt_regs; DECLARE_HOOK(android_vh_ipi_stop, TP_PROTO(struct pt_regs *regs), TP_ARGS(regs)) + +struct input_dev; +DECLARE_HOOK(android_vh_input_handle_event, + TP_PROTO(struct input_dev *dev, unsigned int type, + unsigned int code, int value), + TP_ARGS(dev, type, code, value)) #else #define trace_android_vh_ipi_stop(regs) +#define trace_android_vh_input_handle_event(dev, type, code, value) #endif #endif /* _TRACE_HOOK_DEBUG_H */ From a81a69408ba51a8de65734828aa91ba276f8e910 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 9 Sep 2020 08:38:38 +0200 Subject: [PATCH 02/17] Revert "BACKPORT: net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()" This reverts commit 2d5d56df7f19e37483209decf17a43213592e084. Upstream reported that other fixes are required after this, and asked why it is really needed here. So get those answers first before accepting this patch, as we can not take known-buggy patches into the tree. Bug: 167477898 Cc: Hyunsoon Kim Signed-off-by: Greg Kroah-Hartman Change-Id: If795972972fdd17ad85a50f460ce79e00baffb54 --- net/core/dev.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 782c28482b2a..724ae5d84fe3 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5609,13 +5609,12 @@ static void napi_skb_free_stolen_head(struct sk_buff *skb) kmem_cache_free(skbuff_head_cache, skb); } -static gro_result_t napi_skb_finish(struct napi_struct *napi, - struct sk_buff *skb, - gro_result_t ret) +static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb) { switch (ret) { case GRO_NORMAL: - gro_normal_one(napi, skb); + if (netif_receive_skb_internal(skb)) + ret = GRO_DROP; break; case GRO_DROP: @@ -5647,7 +5646,7 @@ gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) skb_gro_reset_offset(skb); - ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb)); + ret = napi_skb_finish(dev_gro_receive(napi, skb), skb); trace_napi_gro_receive_exit(ret); return ret; From e1f9bf0782b76fa37f588e857302b8ca0f37acf5 Mon Sep 17 00:00:00 2001 From: Steffen Klassert Date: Sat, 25 Jan 2020 11:26:42 +0100 Subject: [PATCH 03/17] BACKPORT: net: Add fraglist GRO/GSO feature flags This adds new Fraglist GRO/GSO feature flags. They will be used to configure fraglist GRO/GSO what will be implemented with some followup paches. Signed-off-by: Steffen Klassert Reviewed-by: Willem de Bruijn Signed-off-by: David S. Miller Bug: 167707933 Change-Id: I65a4b9fc631c88cd20c1b101fee70e864c2c4502 (cherry picked from commit 3b33583265ed3b0ae76eddbabf9d038b4076d1a9) [hyunsoon: removed patch in net/ethtool/common.c which is not in android branch] Signed-off-by: Hyunsoon Kim --- include/linux/netdev_features.h | 6 +++++- include/linux/netdevice.h | 1 + include/linux/skbuff.h | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h index 4b19c544c59a..b239507da2a0 100644 --- a/include/linux/netdev_features.h +++ b/include/linux/netdev_features.h @@ -53,8 +53,9 @@ enum { NETIF_F_GSO_ESP_BIT, /* ... ESP with TSO */ NETIF_F_GSO_UDP_BIT, /* ... UFO, deprecated except tuntap */ NETIF_F_GSO_UDP_L4_BIT, /* ... UDP payload GSO (not UFO) */ + NETIF_F_GSO_FRAGLIST_BIT, /* ... Fraglist GSO */ /**/NETIF_F_GSO_LAST = /* last bit, see GSO_MASK */ - NETIF_F_GSO_UDP_L4_BIT, + NETIF_F_GSO_FRAGLIST_BIT, NETIF_F_FCOE_CRC_BIT, /* FCoE CRC32 */ NETIF_F_SCTP_CRC_BIT, /* SCTP checksum offload */ @@ -80,6 +81,7 @@ enum { NETIF_F_GRO_HW_BIT, /* Hardware Generic receive offload */ NETIF_F_HW_TLS_RECORD_BIT, /* Offload TLS record */ + NETIF_F_GRO_FRAGLIST_BIT, /* Fraglist GRO */ /* * Add your fresh new feature above and remember to update @@ -150,6 +152,8 @@ enum { #define NETIF_F_GSO_UDP_L4 __NETIF_F(GSO_UDP_L4) #define NETIF_F_HW_TLS_TX __NETIF_F(HW_TLS_TX) #define NETIF_F_HW_TLS_RX __NETIF_F(HW_TLS_RX) +#define NETIF_F_GRO_FRAGLIST __NETIF_F(GRO_FRAGLIST) +#define NETIF_F_GSO_FRAGLIST __NETIF_F(GSO_FRAGLIST) /* Finds the next feature with the highest number of the range of start till 0. */ diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9c7d93783759..0f85e75b4aec 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -4572,6 +4572,7 @@ static inline bool net_gso_ok(netdev_features_t features, int gso_type) BUILD_BUG_ON(SKB_GSO_ESP != (NETIF_F_GSO_ESP >> NETIF_F_GSO_SHIFT)); BUILD_BUG_ON(SKB_GSO_UDP != (NETIF_F_GSO_UDP >> NETIF_F_GSO_SHIFT)); BUILD_BUG_ON(SKB_GSO_UDP_L4 != (NETIF_F_GSO_UDP_L4 >> NETIF_F_GSO_SHIFT)); + BUILD_BUG_ON(SKB_GSO_FRAGLIST != (NETIF_F_GSO_FRAGLIST >> NETIF_F_GSO_SHIFT)); return (features & feature) == feature; } diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 542d881978ef..3122b9355074 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -593,6 +593,8 @@ enum { SKB_GSO_UDP = 1 << 16, SKB_GSO_UDP_L4 = 1 << 17, + + SKB_GSO_FRAGLIST = 1 << 18, }; #if BITS_PER_LONG > 32 From d106e05d0238f810620511a7292a4484cfef15b7 Mon Sep 17 00:00:00 2001 From: Steffen Klassert Date: Sat, 25 Jan 2020 11:26:43 +0100 Subject: [PATCH 04/17] UPSTREAM: net: Add a netdev software feature set that defaults to off. The previous patch added the NETIF_F_GRO_FRAGLIST feature. This is a software feature that should default to off. Current software features default to on, so add a new feature set that defaults to off. Signed-off-by: Steffen Klassert Reviewed-by: Willem de Bruijn Signed-off-by: David S. Miller Bug: 167707933 Change-Id: Ie56e82a2b2ba3ebd4fded1d865070ddcd311a26a (cherry picked from commit 1a3c998f3a27ab6ecf56bdbb17e27e55fd6d47cd) Signed-off-by: Hyunsoon Kim --- include/linux/netdev_features.h | 3 +++ net/core/dev.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h index b239507da2a0..34d050bb1ae6 100644 --- a/include/linux/netdev_features.h +++ b/include/linux/netdev_features.h @@ -230,6 +230,9 @@ static inline int find_next_netdev_feature(u64 feature, unsigned long start) /* changeable features with no special hardware requirements */ #define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO) +/* Changeable features with no special hardware requirements that defaults to off. */ +#define NETIF_F_SOFT_FEATURES_OFF NETIF_F_GRO_FRAGLIST + #define NETIF_F_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_FILTER | \ NETIF_F_HW_VLAN_CTAG_RX | \ NETIF_F_HW_VLAN_CTAG_TX | \ diff --git a/net/core/dev.c b/net/core/dev.c index 724ae5d84fe3..baf8a180d947 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -9041,7 +9041,7 @@ int register_netdevice(struct net_device *dev) /* Transfer changeable features to wanted_features and enable * software offloads (GSO and GRO). */ - dev->hw_features |= NETIF_F_SOFT_FEATURES; + dev->hw_features |= (NETIF_F_SOFT_FEATURES | NETIF_F_SOFT_FEATURES_OFF); dev->features |= NETIF_F_SOFT_FEATURES; if (dev->netdev_ops->ndo_udp_tunnel_add) { From 02803b1ce4eeb6874d0c14f60b817b52b26aa909 Mon Sep 17 00:00:00 2001 From: Steffen Klassert Date: Sat, 25 Jan 2020 11:26:44 +0100 Subject: [PATCH 05/17] UPSTREAM: net: Support GRO/GSO fraglist chaining. This patch adds the core functions to chain/unchain GSO skbs at the frag_list pointer. This also adds a new GSO type SKB_GSO_FRAGLIST and a is_flist flag to napi_gro_cb which indicates that this flow will be GROed by fraglist chaining. Signed-off-by: Steffen Klassert Reviewed-by: Willem de Bruijn Signed-off-by: David S. Miller Bug: 167707933 Change-Id: I4bb29cfcd13ccb48871070bf94ea5b87160d65d4 (cherry picked from commit 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596) Signed-off-by: Hyunsoon Kim --- include/linux/netdevice.h | 4 +- include/linux/skbuff.h | 2 + net/core/dev.c | 2 +- net/core/skbuff.c | 91 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 2 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 0f85e75b4aec..97c1c5d54d0a 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -2350,7 +2350,8 @@ struct napi_gro_cb { /* Number of gro_receive callbacks this packet already went through */ u8 recursion_counter:4; - /* 1 bit hole */ + /* GRO is done by frag_list pointer chaining. */ + u8 is_flist:1; /* used to support CHECKSUM_COMPLETE for tunneling protocols */ __wsum csum; @@ -2705,6 +2706,7 @@ struct net_device *dev_get_by_napi_id(unsigned int napi_id); int netdev_get_name(struct net *net, char *name, int ifindex); int dev_restart(struct net_device *dev); int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb); +int skb_gro_receive_list(struct sk_buff *p, struct sk_buff *skb); static inline unsigned int skb_gro_offset(const struct sk_buff *skb) { diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 3122b9355074..89301656f985 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -3531,6 +3531,8 @@ void skb_scrub_packet(struct sk_buff *skb, bool xnet); bool skb_gso_validate_network_len(const struct sk_buff *skb, unsigned int mtu); bool skb_gso_validate_mac_len(const struct sk_buff *skb, unsigned int len); struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features); +struct sk_buff *skb_segment_list(struct sk_buff *skb, netdev_features_t features, + unsigned int offset); struct sk_buff *skb_vlan_untag(struct sk_buff *skb); int skb_ensure_writable(struct sk_buff *skb, int write_len); int __skb_vlan_pop(struct sk_buff *skb, u16 *vlan_tci); diff --git a/net/core/dev.c b/net/core/dev.c index baf8a180d947..fb3238c916ab 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3032,7 +3032,7 @@ struct sk_buff *__skb_gso_segment(struct sk_buff *skb, segs = skb_mac_gso_segment(skb, features); - if (unlikely(skb_needs_check(skb, tx_path) && !IS_ERR(segs))) + if (segs != skb && unlikely(skb_needs_check(skb, tx_path) && !IS_ERR(segs))) skb_warn_bad_offload(skb); return segs; diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 126be82a84f7..e53fe52dd764 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3640,6 +3640,97 @@ static inline skb_frag_t skb_head_frag_to_page_desc(struct sk_buff *frag_skb) return head_frag; } +struct sk_buff *skb_segment_list(struct sk_buff *skb, + netdev_features_t features, + unsigned int offset) +{ + struct sk_buff *list_skb = skb_shinfo(skb)->frag_list; + unsigned int tnl_hlen = skb_tnl_header_len(skb); + unsigned int delta_truesize = 0; + unsigned int delta_len = 0; + struct sk_buff *tail = NULL; + struct sk_buff *nskb; + + skb_push(skb, -skb_network_offset(skb) + offset); + + skb_shinfo(skb)->frag_list = NULL; + + do { + nskb = list_skb; + list_skb = list_skb->next; + + if (!tail) + skb->next = nskb; + else + tail->next = nskb; + + tail = nskb; + + delta_len += nskb->len; + delta_truesize += nskb->truesize; + + skb_push(nskb, -skb_network_offset(nskb) + offset); + + __copy_skb_header(nskb, skb); + + skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb)); + skb_copy_from_linear_data_offset(skb, -tnl_hlen, + nskb->data - tnl_hlen, + offset + tnl_hlen); + + if (skb_needs_linearize(nskb, features) && + __skb_linearize(nskb)) + goto err_linearize; + + } while (list_skb); + + skb->truesize = skb->truesize - delta_truesize; + skb->data_len = skb->data_len - delta_len; + skb->len = skb->len - delta_len; + + skb_gso_reset(skb); + + skb->prev = tail; + + if (skb_needs_linearize(skb, features) && + __skb_linearize(skb)) + goto err_linearize; + + skb_get(skb); + + return skb; + +err_linearize: + kfree_skb_list(skb->next); + skb->next = NULL; + return ERR_PTR(-ENOMEM); +} +EXPORT_SYMBOL_GPL(skb_segment_list); + +int skb_gro_receive_list(struct sk_buff *p, struct sk_buff *skb) +{ + if (unlikely(p->len + skb->len >= 65536)) + return -E2BIG; + + if (NAPI_GRO_CB(p)->last == p) + skb_shinfo(p)->frag_list = skb; + else + NAPI_GRO_CB(p)->last->next = skb; + + skb_pull(skb, skb_gro_offset(skb)); + + NAPI_GRO_CB(p)->last = skb; + NAPI_GRO_CB(p)->count++; + p->data_len += skb->len; + p->truesize += skb->truesize; + p->len += skb->len; + + NAPI_GRO_CB(skb)->same_flow = 1; + + return 0; +} +EXPORT_SYMBOL_GPL(skb_gro_receive_list); + /** * skb_segment - Perform protocol segmentation on skb. * @head_skb: buffer to segment From 88ca8b3fc2366ae29fb5379328705cff49f60804 Mon Sep 17 00:00:00 2001 From: Steffen Klassert Date: Sat, 25 Jan 2020 11:26:45 +0100 Subject: [PATCH 06/17] UPSTREAM: udp: Support UDP fraglist GRO/GSO. This patch extends UDP GRO to support fraglist GRO/GSO by using the previously introduced infrastructure. If the feature is enabled, all UDP packets are going to fraglist GRO (local input and forward). After validating the csum, we mark ip_summed as CHECKSUM_UNNECESSARY for fraglist GRO packets to make sure that the csum is not touched. Signed-off-by: Steffen Klassert Reviewed-by: Willem de Bruijn Signed-off-by: David S. Miller Bug: 167707933 Change-Id: I7756cb47212713efde64a246a42c88d0b0f5521a (cherry picked from commit 9fd1ff5d2ac7181844735806b0a703c942365291) Signed-off-by: Hyunsoon Kim --- include/net/udp.h | 2 +- net/ipv4/udp_offload.c | 104 ++++++++++++++++++++++++++++++++--------- net/ipv6/udp_offload.c | 27 ++++++++++- 3 files changed, 107 insertions(+), 26 deletions(-) diff --git a/include/net/udp.h b/include/net/udp.h index fabf507bce5d..e55d5f765807 100644 --- a/include/net/udp.h +++ b/include/net/udp.h @@ -167,7 +167,7 @@ typedef struct sock *(*udp_lookup_t)(struct sk_buff *skb, __be16 sport, __be16 dport); struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb, - struct udphdr *uh, udp_lookup_t lookup); + struct udphdr *uh, struct sock *sk); int udp_gro_complete(struct sk_buff *skb, int nhoff, udp_lookup_t lookup); struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index a3908e55ed89..cfd2b355e960 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -184,6 +184,20 @@ out_unlock: } EXPORT_SYMBOL(skb_udp_tunnel_segment); +static struct sk_buff *__udp_gso_segment_list(struct sk_buff *skb, + netdev_features_t features) +{ + unsigned int mss = skb_shinfo(skb)->gso_size; + + skb = skb_segment_list(skb, features, skb_mac_header_len(skb)); + if (IS_ERR(skb)) + return skb; + + udp_hdr(skb)->len = htons(sizeof(struct udphdr) + mss); + + return skb; +} + struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, netdev_features_t features) { @@ -196,6 +210,9 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, __sum16 check; __be16 newlen; + if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST) + return __udp_gso_segment_list(gso_skb, features); + mss = skb_shinfo(gso_skb)->gso_size; if (gso_skb->len <= sizeof(*uh) + mss) return ERR_PTR(-EINVAL); @@ -354,6 +371,7 @@ static struct sk_buff *udp_gro_receive_segment(struct list_head *head, struct udphdr *uh2; struct sk_buff *p; unsigned int ulen; + int ret = 0; /* requires non zero csum, for symmetry with GSO */ if (!uh->check) { @@ -369,7 +387,6 @@ static struct sk_buff *udp_gro_receive_segment(struct list_head *head, } /* pull encapsulating udp header */ skb_gro_pull(skb, sizeof(struct udphdr)); - skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); list_for_each_entry(p, head, list) { if (!NAPI_GRO_CB(p)->same_flow) @@ -383,14 +400,40 @@ static struct sk_buff *udp_gro_receive_segment(struct list_head *head, continue; } + if (NAPI_GRO_CB(skb)->is_flist != NAPI_GRO_CB(p)->is_flist) { + NAPI_GRO_CB(skb)->flush = 1; + return p; + } + /* Terminate the flow on len mismatch or if it grow "too much". * Under small packet flood GRO count could elsewhere grow a lot * leading to excessive truesize values. * On len mismatch merge the first packet shorter than gso_size, * otherwise complete the GRO packet. */ - if (ulen > ntohs(uh2->len) || skb_gro_receive(p, skb) || - ulen != ntohs(uh2->len) || + if (ulen > ntohs(uh2->len)) { + pp = p; + } else { + if (NAPI_GRO_CB(skb)->is_flist) { + if (!pskb_may_pull(skb, skb_gro_offset(skb))) { + NAPI_GRO_CB(skb)->flush = 1; + return NULL; + } + if ((skb->ip_summed != p->ip_summed) || + (skb->csum_level != p->csum_level)) { + NAPI_GRO_CB(skb)->flush = 1; + return NULL; + } + ret = skb_gro_receive_list(p, skb); + } else { + skb_gro_postpull_rcsum(skb, uh, + sizeof(struct udphdr)); + + ret = skb_gro_receive(p, skb); + } + } + + if (ret || ulen != ntohs(uh2->len) || NAPI_GRO_CB(p)->count >= UDP_GRO_CNT_MAX) pp = p; @@ -401,36 +444,29 @@ static struct sk_buff *udp_gro_receive_segment(struct list_head *head, return NULL; } -INDIRECT_CALLABLE_DECLARE(struct sock *udp6_lib_lookup_skb(struct sk_buff *skb, - __be16 sport, __be16 dport)); struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb, - struct udphdr *uh, udp_lookup_t lookup) + struct udphdr *uh, struct sock *sk) { struct sk_buff *pp = NULL; struct sk_buff *p; struct udphdr *uh2; unsigned int off = skb_gro_offset(skb); int flush = 1; - struct sock *sk; - rcu_read_lock(); - sk = INDIRECT_CALL_INET(lookup, udp6_lib_lookup_skb, - udp4_lib_lookup_skb, skb, uh->source, uh->dest); - if (!sk) - goto out_unlock; + if (skb->dev->features & NETIF_F_GRO_FRAGLIST) + NAPI_GRO_CB(skb)->is_flist = sk ? !udp_sk(sk)->gro_enabled: 1; - if (udp_sk(sk)->gro_enabled) { + if ((sk && udp_sk(sk)->gro_enabled) || NAPI_GRO_CB(skb)->is_flist) { pp = call_gro_receive(udp_gro_receive_segment, head, skb); - rcu_read_unlock(); return pp; } - if (NAPI_GRO_CB(skb)->encap_mark || + if (!sk || NAPI_GRO_CB(skb)->encap_mark || (skb->ip_summed != CHECKSUM_PARTIAL && NAPI_GRO_CB(skb)->csum_cnt == 0 && !NAPI_GRO_CB(skb)->csum_valid) || !udp_sk(sk)->gro_receive) - goto out_unlock; + goto out; /* mark that this skb passed once through the tunnel gro layer */ NAPI_GRO_CB(skb)->encap_mark = 1; @@ -457,8 +493,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb, skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); pp = call_gro_receive_sk(udp_sk(sk)->gro_receive, sk, head, skb); -out_unlock: - rcu_read_unlock(); +out: skb_gro_flush_final(skb, pp, flush); return pp; } @@ -468,8 +503,10 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *udp4_gro_receive(struct list_head *head, struct sk_buff *skb) { struct udphdr *uh = udp_gro_udphdr(skb); + struct sk_buff *pp; + struct sock *sk; - if (unlikely(!uh) || !static_branch_unlikely(&udp_encap_needed_key)) + if (unlikely(!uh)) goto flush; /* Don't bother verifying checksum if we're going to flush anyway. */ @@ -484,7 +521,11 @@ struct sk_buff *udp4_gro_receive(struct list_head *head, struct sk_buff *skb) inet_gro_compute_pseudo); skip: NAPI_GRO_CB(skb)->is_ipv6 = 0; - return udp_gro_receive(head, skb, uh, udp4_lib_lookup_skb); + rcu_read_lock(); + sk = static_branch_unlikely(&udp_encap_needed_key) ? udp4_lib_lookup_skb(skb, uh->source, uh->dest) : NULL; + pp = udp_gro_receive(head, skb, uh, sk); + rcu_read_unlock(); + return pp; flush: NAPI_GRO_CB(skb)->flush = 1; @@ -517,9 +558,7 @@ int udp_gro_complete(struct sk_buff *skb, int nhoff, rcu_read_lock(); sk = INDIRECT_CALL_INET(lookup, udp6_lib_lookup_skb, udp4_lib_lookup_skb, skb, uh->source, uh->dest); - if (sk && udp_sk(sk)->gro_enabled) { - err = udp_gro_complete_segment(skb); - } else if (sk && udp_sk(sk)->gro_complete) { + if (sk && udp_sk(sk)->gro_complete) { skb_shinfo(skb)->gso_type = uh->check ? SKB_GSO_UDP_TUNNEL_CSUM : SKB_GSO_UDP_TUNNEL; @@ -529,6 +568,8 @@ int udp_gro_complete(struct sk_buff *skb, int nhoff, skb->encapsulation = 1; err = udp_sk(sk)->gro_complete(sk, skb, nhoff + sizeof(struct udphdr)); + } else { + err = udp_gro_complete_segment(skb); } rcu_read_unlock(); @@ -544,6 +585,23 @@ INDIRECT_CALLABLE_SCOPE int udp4_gro_complete(struct sk_buff *skb, int nhoff) const struct iphdr *iph = ip_hdr(skb); struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); + if (NAPI_GRO_CB(skb)->is_flist) { + uh->len = htons(skb->len - nhoff); + + skb_shinfo(skb)->gso_type |= (SKB_GSO_FRAGLIST|SKB_GSO_UDP_L4); + skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count; + + if (skb->ip_summed == CHECKSUM_UNNECESSARY) { + if (skb->csum_level < SKB_MAX_CSUM_LEVEL) + skb->csum_level++; + } else { + skb->ip_summed = CHECKSUM_UNNECESSARY; + skb->csum_level = 0; + } + + return 0; + } + if (uh->check) uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr, iph->daddr, 0); diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c index 64b8f05d6735..7a46bd33fa2f 100644 --- a/net/ipv6/udp_offload.c +++ b/net/ipv6/udp_offload.c @@ -115,8 +115,10 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *udp6_gro_receive(struct list_head *head, struct sk_buff *skb) { struct udphdr *uh = udp_gro_udphdr(skb); + struct sk_buff *pp; + struct sock *sk; - if (unlikely(!uh) || !static_branch_unlikely(&udpv6_encap_needed_key)) + if (unlikely(!uh)) goto flush; /* Don't bother verifying checksum if we're going to flush anyway. */ @@ -132,7 +134,11 @@ struct sk_buff *udp6_gro_receive(struct list_head *head, struct sk_buff *skb) skip: NAPI_GRO_CB(skb)->is_ipv6 = 1; - return udp_gro_receive(head, skb, uh, udp6_lib_lookup_skb); + rcu_read_lock(); + sk = static_branch_unlikely(&udpv6_encap_needed_key) ? udp6_lib_lookup_skb(skb, uh->source, uh->dest) : NULL; + pp = udp_gro_receive(head, skb, uh, sk); + rcu_read_unlock(); + return pp; flush: NAPI_GRO_CB(skb)->flush = 1; @@ -144,6 +150,23 @@ INDIRECT_CALLABLE_SCOPE int udp6_gro_complete(struct sk_buff *skb, int nhoff) const struct ipv6hdr *ipv6h = ipv6_hdr(skb); struct udphdr *uh = (struct udphdr *)(skb->data + nhoff); + if (NAPI_GRO_CB(skb)->is_flist) { + uh->len = htons(skb->len - nhoff); + + skb_shinfo(skb)->gso_type |= (SKB_GSO_FRAGLIST|SKB_GSO_UDP_L4); + skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count; + + if (skb->ip_summed == CHECKSUM_UNNECESSARY) { + if (skb->csum_level < SKB_MAX_CSUM_LEVEL) + skb->csum_level++; + } else { + skb->ip_summed = CHECKSUM_UNNECESSARY; + skb->csum_level = 0; + } + + return 0; + } + if (uh->check) uh->check = ~udp_v6_check(skb->len - nhoff, &ipv6h->saddr, &ipv6h->daddr, 0); From 3a3ba4b7ddebaaf49104a1b9399ae57aa258d40f Mon Sep 17 00:00:00 2001 From: Xin Long Date: Mon, 30 Mar 2020 23:31:45 +0800 Subject: [PATCH 07/17] UPSTREAM: udp: initialize is_flist with 0 in udp_gro_receive Without NAPI_GRO_CB(skb)->is_flist initialized, when the dev doesn't support NETIF_F_GRO_FRAGLIST, is_flist can still be set and fraglist will be used in udp_gro_receive(). So fix it by initializing is_flist with 0 in udp_gro_receive. Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.") Signed-off-by: Xin Long Acked-by: Steffen Klassert Signed-off-by: David S. Miller Bug: 167707933 Change-Id: Icd2977dfb7506ce0f83d88f52184aa282bc2cac3 (cherry picked from commit bde1b56f898ca8112912d7b36e55e1543b3be0cf) Signed-off-by: Hyunsoon Kim --- net/ipv4/udp_offload.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index cfd2b355e960..9455b0a0776b 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -453,6 +453,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb, unsigned int off = skb_gro_offset(skb); int flush = 1; + NAPI_GRO_CB(skb)->is_flist = 0; if (skb->dev->features & NETIF_F_GRO_FRAGLIST) NAPI_GRO_CB(skb)->is_flist = sk ? !udp_sk(sk)->gro_enabled: 1; From 1869fba86a8f196715887133a040e6d3ded7ac6e Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Tue, 8 Sep 2020 20:26:36 -0700 Subject: [PATCH 08/17] ANDROID: ABI: update allowed list for QCOM Leaf changes summary: 2 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable 2 Added functions: [A] 'function int led_classdev_flash_register_ext(device*, led_classdev_flash*, led_init_data*)' [A] 'function void led_classdev_flash_unregister(led_classdev_flash*)' Bug: 168090628 Change-Id: I4006604af3341a67a253ca4184ed9daff2990cba Signed-off-by: Subbaraman Narayanamurthy --- android/abi_gki_aarch64.xml | 2133 ++++++++++++++++++---------------- android/abi_gki_aarch64_qcom | 2 + 2 files changed, 1143 insertions(+), 992 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index a263c39a0a40..cd574f3cb18c 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -2145,6 +2145,8 @@ + + @@ -5037,258 +5039,258 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5304,38 +5306,38 @@ - + - + - + - + - + - + - - + + - + - + - + - + @@ -11205,23 +11207,6 @@ - - - - - - - - - - - - - - - - - @@ -14033,28 +14018,28 @@ - + - + - + - + - + - + - + - + - + @@ -14158,12 +14143,12 @@ - + - + - + @@ -14209,6 +14194,23 @@ + + + + + + + + + + + + + + + + + @@ -14217,12 +14219,12 @@ - + - + - + @@ -14345,12 +14347,12 @@ - + - + - + @@ -14361,12 +14363,12 @@ - + - + - + @@ -17281,7 +17283,7 @@ - + @@ -18050,23 +18052,23 @@ - + - + - + - + - + - + - + @@ -20289,32 +20291,32 @@ - + - + - + - + - + - + - + - + - + - + @@ -22041,7 +22043,7 @@ - + @@ -26282,7 +26284,7 @@ - + @@ -26300,7 +26302,7 @@ - + @@ -36502,6 +36504,14 @@ + + + + + + + + @@ -36512,6 +36522,7 @@ + @@ -37107,7 +37118,7 @@ - + @@ -37493,7 +37504,7 @@ - + @@ -37516,7 +37527,7 @@ - + @@ -41224,9 +41235,9 @@ - - - + + + @@ -42008,7 +42019,7 @@ - + @@ -42028,7 +42039,7 @@ - + @@ -42631,13 +42642,13 @@ - + - + - + @@ -42663,7 +42674,7 @@ - + @@ -44262,7 +44273,7 @@ - + @@ -44324,7 +44335,7 @@ - + @@ -44631,6 +44642,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -45782,7 +45883,7 @@ - + @@ -46268,7 +46369,7 @@ - + @@ -46305,7 +46406,7 @@ - + @@ -46516,7 +46617,7 @@ - + @@ -47481,10 +47582,10 @@ - + - + @@ -50916,7 +51017,7 @@ - + @@ -51579,7 +51680,7 @@ - + @@ -53285,7 +53386,7 @@ - + @@ -53998,6 +54099,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -54023,10 +54198,10 @@ - + - + @@ -54055,6 +54230,8 @@ + + @@ -54064,7 +54241,7 @@ - + @@ -54075,24 +54252,24 @@ - + - + - + - + - + @@ -54102,7 +54279,7 @@ - + @@ -54111,11 +54288,11 @@ - + - + @@ -54648,14 +54825,6 @@ - - - - - - - - @@ -55317,12 +55486,12 @@ - + - + @@ -55406,12 +55575,12 @@ - + - + - + @@ -55619,7 +55788,7 @@ - + @@ -55633,7 +55802,7 @@ - + @@ -55681,7 +55850,7 @@ - + @@ -55691,7 +55860,7 @@ - + @@ -55737,37 +55906,37 @@ - + - + - + - + - + - + - + @@ -55976,26 +56145,26 @@ - + - + - + - + - + - + - + - + @@ -56181,7 +56350,7 @@ - + @@ -56191,7 +56360,7 @@ - + @@ -57773,12 +57942,6 @@ - - - - - - @@ -57786,7 +57949,7 @@ - + @@ -57799,13 +57962,19 @@ - + - + + + + + + + @@ -57817,13 +57986,13 @@ - + - + @@ -57832,7 +58001,7 @@ - + @@ -57842,7 +58011,7 @@ - + @@ -57856,7 +58025,7 @@ - + @@ -57872,7 +58041,7 @@ - + @@ -57903,7 +58072,7 @@ - + @@ -57912,7 +58081,7 @@ - + @@ -57927,11 +58096,11 @@ - + - + @@ -58696,7 +58865,7 @@ - + @@ -58723,7 +58892,7 @@ - + @@ -59189,23 +59358,23 @@ - + - + - + - + - + - + - + @@ -61080,6 +61249,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -62424,6 +62616,7 @@ + @@ -62630,12 +62823,12 @@ - + - + @@ -62643,7 +62836,7 @@ - + @@ -62651,7 +62844,7 @@ - + @@ -62683,7 +62876,7 @@ - + @@ -62701,7 +62894,7 @@ - + @@ -62718,12 +62911,12 @@ - + - + @@ -62750,7 +62943,7 @@ - + @@ -63499,7 +63692,7 @@ - + @@ -63583,7 +63776,7 @@ - + @@ -66305,7 +66498,7 @@ - + @@ -66316,7 +66509,7 @@ - + @@ -69814,41 +70007,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -69881,38 +70039,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -69955,10 +70081,8 @@ - - @@ -70086,7 +70210,7 @@ - + @@ -70160,9 +70284,9 @@ - + - + @@ -70681,7 +70805,7 @@ - + @@ -71325,7 +71449,7 @@ - + @@ -71741,10 +71865,10 @@ - + - + @@ -72540,11 +72664,11 @@ - + - + @@ -73382,17 +73506,17 @@ - - - + + + - - + + - - + + @@ -78897,23 +79021,6 @@ - - - - - - - - - - - - - - - - - @@ -80869,7 +80976,7 @@ - + @@ -82706,23 +82813,6 @@ - - - - - - - - - - - - - - - - - @@ -83554,7 +83644,7 @@ - + @@ -84283,7 +84373,7 @@ - + @@ -85229,6 +85319,23 @@ + + + + + + + + + + + + + + + + + @@ -86492,7 +86599,7 @@ - + @@ -86564,7 +86671,7 @@ - + @@ -86578,7 +86685,7 @@ - + @@ -86589,12 +86696,12 @@ - + - + - + @@ -86633,7 +86740,7 @@ - + @@ -87003,23 +87110,6 @@ - - - - - - - - - - - - - - - - - @@ -87269,7 +87359,7 @@ - + @@ -87341,10 +87431,10 @@ - + - + @@ -87778,13 +87868,13 @@ - + - + @@ -87980,6 +88070,23 @@ + + + + + + + + + + + + + + + + + @@ -88742,7 +88849,7 @@ - + @@ -88820,23 +88927,6 @@ - - - - - - - - - - - - - - - - - @@ -89696,7 +89786,7 @@ - + @@ -91430,7 +91520,7 @@ - + @@ -92561,7 +92651,7 @@ - + @@ -92579,7 +92669,7 @@ - + @@ -93893,7 +93983,7 @@ - + @@ -93914,7 +94004,7 @@ - + @@ -96126,7 +96216,7 @@ - + @@ -96159,7 +96249,7 @@ - + @@ -100382,7 +100472,7 @@ - + @@ -101625,7 +101715,24 @@ - + + + + + + + + + + + + + + + + + + @@ -102401,7 +102508,7 @@ - + @@ -104057,7 +104164,7 @@ - + @@ -104068,7 +104175,7 @@ - + @@ -104146,7 +104253,7 @@ - + @@ -104163,12 +104270,12 @@ - + - + @@ -104402,14 +104509,6 @@ - - - - - - - - @@ -104559,6 +104658,23 @@ + + + + + + + + + + + + + + + + + @@ -104630,10 +104746,10 @@ - + - + @@ -105002,209 +105118,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -105232,145 +105148,134 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - @@ -105543,13 +105448,6 @@ - - - - - - - @@ -105557,10 +105455,6 @@ - - - - @@ -105855,28 +105749,28 @@ - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - + + @@ -105900,7 +105794,7 @@ - + @@ -105909,7 +105803,7 @@ - + @@ -106088,7 +105982,7 @@ - + @@ -106139,7 +106033,7 @@ - + @@ -108270,7 +108164,7 @@ - + @@ -108589,26 +108483,26 @@ - + - + - + - + @@ -109254,47 +109148,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -110143,10 +109996,10 @@ - + - + @@ -110315,7 +110168,7 @@ - + @@ -110325,7 +110178,7 @@ - + @@ -111023,52 +110876,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111109,84 +110962,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -111209,12 +110984,12 @@ - + - + - + @@ -111279,7 +111054,85 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -111287,7 +111140,7 @@ - + @@ -112423,10 +112276,10 @@ - + - + @@ -112448,10 +112301,10 @@ - + - + @@ -112629,7 +112482,7 @@ - + @@ -112663,14 +112516,14 @@ - + - + @@ -112683,7 +112536,7 @@ - + @@ -113007,10 +112860,10 @@ - + - + @@ -113018,12 +112871,12 @@ - + - + - + @@ -113044,7 +112897,7 @@ - + @@ -113063,6 +112916,7 @@ + @@ -113085,6 +112939,23 @@ + + + + + + + + + + + + + + + + + @@ -113532,15 +113403,15 @@ - + - + - + - + @@ -113563,7 +113434,7 @@ - + @@ -113950,50 +113821,245 @@ - + + + + + + + + + + + + + - + + + + - - - - - - - - - - - - + - + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -114004,7 +114070,7 @@ - + @@ -114012,11 +114078,11 @@ - + - + - + @@ -114025,12 +114091,12 @@ - + - + @@ -114041,7 +114107,7 @@ - + @@ -114069,7 +114135,7 @@ - + @@ -114088,7 +114154,7 @@ - + @@ -114099,7 +114165,7 @@ - + @@ -114107,7 +114173,7 @@ - + @@ -114121,7 +114187,7 @@ - + @@ -114129,8 +114195,18 @@ - + + + + + + + + + + + @@ -114202,6 +114278,17 @@ + + + + + + + + + + + @@ -117305,7 +117392,7 @@ - + @@ -117317,7 +117404,7 @@ - + @@ -119584,7 +119671,23 @@ - + + + + + + + + + + + + + + + + + @@ -119693,7 +119796,7 @@ - + @@ -119726,7 +119829,7 @@ - + @@ -120211,6 +120314,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -120324,7 +120465,7 @@ - + @@ -120332,7 +120473,7 @@ - + @@ -120346,7 +120487,7 @@ - + @@ -120354,7 +120495,7 @@ - + @@ -120362,7 +120503,15 @@ - + + + + + + + + + @@ -120470,15 +120619,15 @@ - + - + - + - + @@ -120553,7 +120702,7 @@ - + @@ -120622,7 +120771,7 @@ - + @@ -120633,12 +120782,12 @@ - + - + - + @@ -120785,7 +120934,7 @@ - + @@ -121590,7 +121739,7 @@ - + @@ -121650,7 +121799,7 @@ - + @@ -121667,7 +121816,7 @@ - + @@ -121676,15 +121825,15 @@ - + - + - + - + @@ -121693,7 +121842,7 @@ - + @@ -121701,7 +121850,7 @@ - + @@ -121709,7 +121858,7 @@ - + @@ -121818,13 +121967,13 @@ - + - + @@ -123550,7 +123699,7 @@ - + @@ -123755,10 +123904,10 @@ - + - + @@ -123777,10 +123926,10 @@ - + - + @@ -124627,7 +124776,7 @@ - + diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 4937eec64a99..ab8314462433 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1289,6 +1289,8 @@ kvmalloc_node kzfree led_blink_set + led_classdev_flash_register_ext + led_classdev_flash_unregister led_classdev_register_ext led_classdev_unregister led_get_default_pattern From 54d9896ccd44728373d40a8b0501f5e02ebb3f4f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 9 Sep 2020 17:06:18 +0000 Subject: [PATCH 09/17] Revert "Revert "BACKPORT: net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()"" This reverts commit a81a69408ba51a8de65734828aa91ba276f8e910 as it is needed, and is in the upstream 5.4.y tree now. Bug: 167477898 Change-Id: Ica5a915027546a7f6f655c336db2489897b007f0 Cc: Hyunsoon Kim Signed-off-by: Greg Kroah-Hartman --- net/core/dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index fb3238c916ab..bfb7bf0f2847 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5609,12 +5609,13 @@ static void napi_skb_free_stolen_head(struct sk_buff *skb) kmem_cache_free(skbuff_head_cache, skb); } -static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb) +static gro_result_t napi_skb_finish(struct napi_struct *napi, + struct sk_buff *skb, + gro_result_t ret) { switch (ret) { case GRO_NORMAL: - if (netif_receive_skb_internal(skb)) - ret = GRO_DROP; + gro_normal_one(napi, skb); break; case GRO_DROP: @@ -5646,7 +5647,7 @@ gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) skb_gro_reset_offset(skb); - ret = napi_skb_finish(dev_gro_receive(napi, skb), skb); + ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb)); trace_napi_gro_receive_exit(ret); return ret; From 415c56cf5315e100040331c45a4937057af8a803 Mon Sep 17 00:00:00 2001 From: Matthias Maennich Date: Wed, 9 Sep 2020 21:30:51 +0100 Subject: [PATCH 10/17] ANDROID: Address flaky behaviour in genksyms affecting CRC stability. Commit 1278a5bf16e7 ("ANDROID: ABI: Added symbols for allwinner") introduced ehci_* symbols to the symbol list. Due to a bug in genksyms, the CRC of those is not resilient to whether other symbols are exported as well. In particular, the CRC changes with the export/trimming of ehci_handshake. Add an artificial symbol list to contain ehci_handshake to make this stable. Also update the ABI representation accordingly: 1 Added function: [A] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)' Bug: 167230325 Signed-off-by: Matthias Maennich Change-Id: I58d3a93f49e70a66f34b66f9f8784b9c19c5a58b --- android/abi_gki_aarch64.xml | 2057 ++++++++++++++++++--------- android/abi_gki_aarch64_workarounds | 3 + build.config.gki.aarch64 | 1 + 3 files changed, 1407 insertions(+), 654 deletions(-) create mode 100644 android/abi_gki_aarch64_workarounds diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index cd574f3cb18c..0e226a9b0df5 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -1427,6 +1427,7 @@ + @@ -11207,6 +11208,23 @@ + + + + + + + + + + + + + + + + + @@ -14194,23 +14212,6 @@ - - - - - - - - - - - - - - - - - @@ -17283,7 +17284,7 @@ - + @@ -30602,6 +30603,23 @@ + + + + + + + + + + + + + + + + + @@ -32165,7 +32183,7 @@ - + @@ -32186,7 +32204,7 @@ - + @@ -32586,7 +32604,7 @@ - + @@ -33570,7 +33588,7 @@ - + @@ -33828,10 +33846,10 @@ - + - + @@ -34837,7 +34855,7 @@ - + @@ -36504,22 +36522,6 @@ - - - - - - - - - - - - - - - - @@ -37118,7 +37120,7 @@ - + @@ -37504,7 +37506,7 @@ - + @@ -37527,7 +37529,7 @@ - + @@ -42019,7 +42021,7 @@ - + @@ -42039,7 +42041,7 @@ - + @@ -42642,13 +42644,13 @@ - + - + - + @@ -42674,7 +42676,7 @@ - + @@ -44273,7 +44275,7 @@ - + @@ -44335,7 +44337,7 @@ - + @@ -45883,7 +45885,7 @@ - + @@ -46369,7 +46371,7 @@ - + @@ -46406,7 +46408,7 @@ - + @@ -46617,7 +46619,7 @@ - + @@ -47582,10 +47584,10 @@ - + - + @@ -48956,7 +48958,7 @@ - + @@ -48991,7 +48993,7 @@ - + @@ -49308,10 +49310,10 @@ - + - + @@ -51017,7 +51019,7 @@ - + @@ -51680,7 +51682,7 @@ - + @@ -53386,7 +53388,7 @@ - + @@ -54099,80 +54101,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -54198,10 +54126,10 @@ - + - + @@ -54230,8 +54158,6 @@ - - @@ -54241,7 +54167,7 @@ - + @@ -54825,6 +54751,14 @@ + + + + + + + + @@ -54842,8 +54776,8 @@ - - + + @@ -54871,6 +54805,20 @@ + + + + + + + + + + + + + + @@ -61249,29 +61197,6 @@ - - - - - - - - - - - - - - - - - - - - - - - @@ -62443,7 +62368,7 @@ - + @@ -62452,7 +62377,7 @@ - + @@ -62616,7 +62541,6 @@ - @@ -70007,6 +69931,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -70039,6 +69998,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -70081,8 +70072,10 @@ + + @@ -70284,9 +70277,9 @@ - + - + @@ -70805,7 +70798,7 @@ - + @@ -71449,7 +71442,7 @@ - + @@ -72664,11 +72657,11 @@ - + - + @@ -79021,6 +79014,23 @@ + + + + + + + + + + + + + + + + + @@ -81648,6 +81658,739 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -82813,6 +83556,23 @@ + + + + + + + + + + + + + + + + + @@ -85319,23 +86079,6 @@ - - - - - - - - - - - - - - - - - @@ -86025,14 +86768,6 @@ - - - - - - - - @@ -86599,23 +87334,6 @@ - - - - - - - - - - - - - - - - - @@ -86685,7 +87403,7 @@ - + @@ -86914,7 +87632,7 @@ - + @@ -87099,10 +87817,10 @@ - + - + @@ -87110,6 +87828,23 @@ + + + + + + + + + + + + + + + + + @@ -87431,10 +88166,10 @@ - + - + @@ -87621,7 +88356,7 @@ - + @@ -87669,7 +88404,7 @@ - + @@ -87854,7 +88589,7 @@ - + @@ -87866,7 +88601,7 @@ - + @@ -88022,7 +88757,7 @@ - + @@ -88070,23 +88805,6 @@ - - - - - - - - - - - - - - - - - @@ -88153,7 +88871,7 @@ - + @@ -88168,7 +88886,7 @@ - + @@ -88227,7 +88945,7 @@ - + @@ -88927,7 +89645,24 @@ - + + + + + + + + + + + + + + + + + + @@ -89592,7 +90327,7 @@ - + @@ -89640,7 +90375,7 @@ - + @@ -90350,7 +91085,7 @@ - + @@ -90772,7 +91507,7 @@ - + @@ -90865,6 +91600,14 @@ + + + + + + + + @@ -91520,7 +92263,7 @@ - + @@ -91554,7 +92297,7 @@ - + @@ -93804,10 +94547,10 @@ - + - + @@ -93983,7 +94726,7 @@ - + @@ -94004,7 +94747,7 @@ - + @@ -96047,10 +96790,10 @@ - + - + @@ -96216,7 +96959,7 @@ - + @@ -96249,7 +96992,7 @@ - + @@ -100472,7 +101215,7 @@ - + @@ -101701,7 +102444,7 @@ - + @@ -101732,7 +102475,7 @@ - + @@ -101992,7 +102735,7 @@ - + @@ -102508,7 +103251,7 @@ - + @@ -102792,7 +103535,7 @@ - + @@ -103030,7 +103773,7 @@ - + @@ -103075,7 +103818,7 @@ - + @@ -103425,10 +104168,10 @@ - + - + @@ -104158,7 +104901,7 @@ - + @@ -104167,7 +104910,7 @@ - + @@ -104270,12 +105013,55 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -104350,6 +105136,25 @@ + + + + + + + + + + + + + + + + + + + @@ -104509,6 +105314,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -104520,6 +105376,25 @@ + + + + + + + + + + + + + + + + + + + @@ -104658,23 +105533,6 @@ - - - - - - - - - - - - - - - - - @@ -104728,7 +105586,7 @@ - + @@ -104746,10 +105604,10 @@ - + - + @@ -104768,7 +105626,7 @@ - + @@ -104798,7 +105656,7 @@ - + @@ -104888,7 +105746,7 @@ - + @@ -105121,7 +105979,7 @@ - + @@ -105129,7 +105987,7 @@ - + @@ -105527,7 +106385,7 @@ - + @@ -105583,7 +106441,7 @@ - + @@ -106011,7 +106869,7 @@ - + @@ -106022,7 +106880,7 @@ - + @@ -106861,7 +107719,7 @@ - + @@ -106897,7 +107755,7 @@ - + @@ -107323,7 +108181,7 @@ - + @@ -107403,7 +108261,7 @@ - + @@ -107540,7 +108398,7 @@ - + @@ -107603,7 +108461,7 @@ - + @@ -108186,7 +109044,7 @@ - + @@ -108373,6 +109231,17 @@ + + + + + + + + + + + @@ -108435,13 +109304,24 @@ + + + + + + + + + + + - + @@ -109126,7 +110006,7 @@ - + @@ -109148,6 +110028,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -109996,10 +110917,10 @@ - + - + @@ -110168,7 +111089,7 @@ - + @@ -110178,7 +111099,7 @@ - + @@ -110876,7 +111797,7 @@ - + @@ -110884,7 +111805,7 @@ - + @@ -110892,7 +111813,7 @@ - + @@ -110900,7 +111821,7 @@ - + @@ -110908,7 +111829,7 @@ - + @@ -110916,7 +111837,7 @@ - + @@ -110962,6 +111883,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -111054,85 +112053,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -111140,7 +112061,7 @@ - + @@ -111364,7 +112285,7 @@ - + @@ -111373,7 +112294,7 @@ - + @@ -112124,62 +113045,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -112276,10 +113141,10 @@ - + - + @@ -112301,10 +113166,10 @@ - + - + @@ -112457,8 +113322,6 @@ - - @@ -112643,7 +113506,7 @@ - + @@ -112831,7 +113694,7 @@ - + @@ -112860,10 +113723,10 @@ - + - + @@ -112871,7 +113734,7 @@ - + @@ -112897,7 +113760,7 @@ - + @@ -112916,7 +113779,6 @@ - @@ -112939,23 +113801,6 @@ - - - - - - - - - - - - - - - - - @@ -113067,7 +113912,7 @@ - + @@ -113180,7 +114025,7 @@ - + @@ -113403,7 +114248,7 @@ - + @@ -113434,7 +114279,7 @@ - + @@ -114021,7 +114866,7 @@ - + @@ -114040,10 +114885,10 @@ - + - + @@ -114051,7 +114896,7 @@ - + @@ -117392,7 +118237,7 @@ - + @@ -117404,7 +118249,7 @@ - + @@ -118920,7 +119765,7 @@ - + @@ -118928,15 +119773,7 @@ - - - - - - - - - + @@ -118950,17 +119787,6 @@ - - - - - - - - - - - @@ -119649,7 +120475,6 @@ - @@ -119671,30 +120496,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -119791,10 +120592,10 @@ - + - + @@ -120314,44 +121115,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -120465,7 +121228,7 @@ - + @@ -120473,7 +121236,7 @@ - + @@ -120495,7 +121258,7 @@ - + @@ -120503,15 +121266,7 @@ - - - - - - - - - + @@ -120619,17 +121374,6 @@ - - - - - - - - - - - @@ -120771,7 +121515,7 @@ - + @@ -120782,7 +121526,7 @@ - + @@ -120804,13 +121548,13 @@ - + - + @@ -120994,13 +121738,13 @@ - + - + @@ -121736,19 +122480,19 @@ - + - + - + - + @@ -121760,7 +122504,7 @@ - + @@ -121799,7 +122543,7 @@ - + @@ -121816,7 +122560,7 @@ - + @@ -121825,18 +122569,18 @@ - + - + - + - + @@ -121850,7 +122594,7 @@ - + @@ -121858,7 +122602,7 @@ - + @@ -121866,7 +122610,7 @@ - + @@ -121889,7 +122633,7 @@ - + @@ -121967,13 +122711,13 @@ - + - + @@ -122617,6 +123361,14 @@ + + + + + + + + @@ -122847,7 +123599,7 @@ - + @@ -123015,7 +123767,7 @@ - + @@ -123086,9 +123838,6 @@ - - - @@ -123816,10 +124565,10 @@ - + - + @@ -123904,10 +124653,10 @@ - + - + @@ -123926,10 +124675,10 @@ - + - + @@ -125990,7 +126739,7 @@ - + @@ -126358,7 +127107,7 @@ - + @@ -126578,7 +127327,7 @@ - + @@ -126686,7 +127435,7 @@ - + @@ -126702,6 +127451,6 @@ diff --git a/android/abi_gki_aarch64_workarounds b/android/abi_gki_aarch64_workarounds new file mode 100644 index 000000000000..3e4b6d16c687 --- /dev/null +++ b/android/abi_gki_aarch64_workarounds @@ -0,0 +1,3 @@ +[abi_whitelist] + # b/167230325 + ehci_handshake diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64 index d80fb6a2ddbf..3a875c99c702 100644 --- a/build.config.gki.aarch64 +++ b/build.config.gki.aarch64 @@ -17,6 +17,7 @@ android/abi_gki_aarch64_qcom android/abi_gki_aarch64_sunxi android/abi_gki_aarch64_unisoc android/abi_gki_aarch64_vivo +android/abi_gki_aarch64_workarounds " TRIM_NONLISTED_KMI=1 KMI_SYMBOL_LIST_ADD_ONLY=1 From dea54268fb73a7020a35057f588c13748810650d Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Fri, 21 Aug 2020 14:25:44 +0200 Subject: [PATCH 11/17] FROMGIT: binder: print warnings when detecting oneway spamming. The most common cause of the binder transaction buffer filling up is a client rapidly firing oneway transactions into a process, before it has a chance to handle them. Yet the root cause of this is often hard to debug, because either the system or the app will stop, and by that time binder debug information we dump in bugreports is no longer relevant. This change warns as soon as a process dips below 80% of its oneway space (less than 100kB available in the configuration), when any one process is responsible for either more than 50 transactions, or more than 50% of the oneway space. Signed-off-by: Martijn Coenen Signed-off-by: Martijn Coenen Acked-by: Todd Kjos Link: https://lore.kernel.org/r/20200821122544.1277051-1-maco@android.com Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 261e7818f06ec51e488e007f787ccd7e77272918 git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/ char-misc-next) Signed-off-by: Martijn Coenen Bug: 147795659 Change-Id: Idc2b03ddc779880ca4716fdae47a70df43211f25 --- drivers/android/binder.c | 2 +- drivers/android/binder_alloc.c | 55 +++++++++++++++++++++++-- drivers/android/binder_alloc.h | 5 ++- drivers/android/binder_alloc_selftest.c | 2 +- 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 4d8ae842041d..02df51ede095 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -3306,7 +3306,7 @@ static void binder_transaction(struct binder_proc *proc, t->buffer = binder_alloc_new_buf(&target_proc->alloc, tr->data_size, tr->offsets_size, extra_buffers_size, - !reply && (t->flags & TF_ONE_WAY)); + !reply && (t->flags & TF_ONE_WAY), current->tgid); if (IS_ERR(t->buffer)) { /* * -ESRCH indicates VMA cleared. The target is dying. diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index 2048ba6c8b08..f637998e3f69 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -339,12 +339,50 @@ static inline struct vm_area_struct *binder_alloc_get_vma( return vma; } +static void debug_low_async_space_locked(struct binder_alloc *alloc, int pid) +{ + /* + * Find the amount and size of buffers allocated by the current caller; + * The idea is that once we cross the threshold, whoever is responsible + * for the low async space is likely to try to send another async txn, + * and at some point we'll catch them in the act. This is more efficient + * than keeping a map per pid. + */ + struct rb_node *n = alloc->free_buffers.rb_node; + struct binder_buffer *buffer; + size_t total_alloc_size = 0; + size_t num_buffers = 0; + + for (n = rb_first(&alloc->allocated_buffers); n != NULL; + n = rb_next(n)) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + if (buffer->pid != pid) + continue; + if (!buffer->async_transaction) + continue; + total_alloc_size += binder_alloc_buffer_size(alloc, buffer) + + sizeof(struct binder_buffer); + num_buffers++; + } + + /* + * Warn if this pid has more than 50 transactions, or more than 50% of + * async space (which is 25% of total buffer size). + */ + if (num_buffers > 50 || total_alloc_size > alloc->buffer_size / 4) { + binder_alloc_debug(BINDER_DEBUG_USER_ERROR, + "%d: pid %d spamming oneway? %zd buffers allocated for a total size of %zd\n", + alloc->pid, pid, num_buffers, total_alloc_size); + } +} + static struct binder_buffer *binder_alloc_new_buf_locked( struct binder_alloc *alloc, size_t data_size, size_t offsets_size, size_t extra_buffers_size, - int is_async) + int is_async, + int pid) { struct rb_node *n = alloc->free_buffers.rb_node; struct binder_buffer *buffer; @@ -487,11 +525,20 @@ static struct binder_buffer *binder_alloc_new_buf_locked( buffer->offsets_size = offsets_size; buffer->async_transaction = is_async; buffer->extra_buffers_size = extra_buffers_size; + buffer->pid = pid; if (is_async) { alloc->free_async_space -= size + sizeof(struct binder_buffer); binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC, "%d: binder_alloc_buf size %zd async free %zd\n", alloc->pid, size, alloc->free_async_space); + if (alloc->free_async_space < alloc->buffer_size / 10) { + /* + * Start detecting spammers once we have less than 20% + * of async space left (which is less than 10% of total + * buffer size). + */ + debug_low_async_space_locked(alloc, pid); + } } return buffer; @@ -509,6 +556,7 @@ err_alloc_buf_struct_failed: * @offsets_size: user specified buffer offset * @extra_buffers_size: size of extra space for meta-data (eg, security context) * @is_async: buffer for async transaction + * @pid: pid to attribute allocation to (used for debugging) * * Allocate a new buffer given the requested sizes. Returns * the kernel version of the buffer pointer. The size allocated @@ -521,13 +569,14 @@ struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc, size_t data_size, size_t offsets_size, size_t extra_buffers_size, - int is_async) + int is_async, + int pid) { struct binder_buffer *buffer; mutex_lock(&alloc->mutex); buffer = binder_alloc_new_buf_locked(alloc, data_size, offsets_size, - extra_buffers_size, is_async); + extra_buffers_size, is_async, pid); mutex_unlock(&alloc->mutex); return buffer; } diff --git a/drivers/android/binder_alloc.h b/drivers/android/binder_alloc.h index db9c1b984695..55d8b4106766 100644 --- a/drivers/android/binder_alloc.h +++ b/drivers/android/binder_alloc.h @@ -32,6 +32,7 @@ struct binder_transaction; * @offsets_size: size of array of offsets * @extra_buffers_size: size of space for other objects (like sg lists) * @user_data: user pointer to base of buffer space + * @pid: pid to attribute the buffer to (caller) * * Bookkeeping structure for binder transaction buffers */ @@ -51,6 +52,7 @@ struct binder_buffer { size_t offsets_size; size_t extra_buffers_size; void __user *user_data; + int pid; }; /** @@ -117,7 +119,8 @@ extern struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc, size_t data_size, size_t offsets_size, size_t extra_buffers_size, - int is_async); + int is_async, + int pid); extern void binder_alloc_init(struct binder_alloc *alloc); extern int binder_alloc_shrinker_init(void); extern void binder_alloc_vma_close(struct binder_alloc *alloc); diff --git a/drivers/android/binder_alloc_selftest.c b/drivers/android/binder_alloc_selftest.c index 4151d9938255..c2b323bc3b3a 100644 --- a/drivers/android/binder_alloc_selftest.c +++ b/drivers/android/binder_alloc_selftest.c @@ -119,7 +119,7 @@ static void binder_selftest_alloc_buf(struct binder_alloc *alloc, int i; for (i = 0; i < BUFFER_NUM; i++) { - buffers[i] = binder_alloc_new_buf(alloc, sizes[i], 0, 0, 0); + buffers[i] = binder_alloc_new_buf(alloc, sizes[i], 0, 0, 0, 0); if (IS_ERR(buffers[i]) || !check_buffer_pages_allocated(alloc, buffers[i], sizes[i])) { From a52bcdb85fc4c73cb4d8c054092dc8a803e76d8c Mon Sep 17 00:00:00 2001 From: Haitao Shan Date: Wed, 9 Sep 2020 16:21:38 -0700 Subject: [PATCH 12/17] ANDROID: Setting up GS before calling __restore_processor_state. Android Common Kernel compiled by clang with Shadow Call Stack will use GS segment. However, __restore_processor_state is called when system wakes up from S3 and at the moment GS is not restored yet. This is a hack by copying a small code snippet(setting gs base) from __restore_processor_state to restore_processor_state. It prepares GS before __restore_processor_state is called. At the same time, restore_processor_state is still small enough so that SCS is not on, as SCS seems to be on only for large functions. Bug: 166163480 Change-Id: I3bfe4ac61dee876da57de6578c9a7f01431a1743 Signed-off-by: Haitao Shan --- arch/x86/power/cpu.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c index 915bb1639763..14863ad89f81 100644 --- a/arch/x86/power/cpu.c +++ b/arch/x86/power/cpu.c @@ -268,6 +268,19 @@ static void notrace __restore_processor_state(struct saved_context *ctxt) /* Needed by apm.c */ void notrace restore_processor_state(void) { +#ifdef __clang__ + // The following code snippet is copied from __restore_processor_state. + // Its purpose is to prepare GS segment before the function is called. + // Since the function is compiled with SCS on, it will use GS at its + // entry. + // TODO: Hack to be removed later when compiler bug is fixed. +#ifdef CONFIG_X86_64 + wrmsrl(MSR_GS_BASE, saved_context.kernelmode_gs_base); +#else + loadsegment(fs, __KERNEL_PERCPU); + loadsegment(gs, __KERNEL_STACK_CANARY); +#endif +#endif __restore_processor_state(&saved_context); } #ifdef CONFIG_X86_32 From bb168ca1805b33289aae802a940551dec93a24d3 Mon Sep 17 00:00:00 2001 From: Changki Kim Date: Fri, 11 Sep 2020 11:37:52 +0900 Subject: [PATCH 13/17] Revert "ANDROID: vendor_hooks: Add vendor hooks for key combination" This reverts commit 72f2bc5fc24c8980315f9177db3b391036c4174f. You can use input_handle_event instead of this vendor hook. Change-Id: I8c6c5705f07181710c99a01239d75ecf43f9c5bf Signed-off-by: Changki Kim --- drivers/android/vendor_hooks.c | 1 - drivers/input/input.c | 5 ----- include/trace/hooks/debug.h | 8 -------- 3 files changed, 14 deletions(-) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 0d3b4faa7bc7..7b4b1abbb537 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -55,4 +55,3 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_input_handle_event); diff --git a/drivers/input/input.c b/drivers/input/input.c index 6434e0aec875..e2eb9b9b8363 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -26,10 +26,6 @@ #include "input-compat.h" #include "input-poller.h" -#ifndef __GENKSYMS__ -#include -#endif - MODULE_AUTHOR("Vojtech Pavlik "); MODULE_DESCRIPTION("Input core"); MODULE_LICENSE("GPL"); @@ -442,7 +438,6 @@ void input_event(struct input_dev *dev, if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); - trace_android_vh_input_handle_event(dev, type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } diff --git a/include/trace/hooks/debug.h b/include/trace/hooks/debug.h index d3127643ece8..99ae33889b0d 100644 --- a/include/trace/hooks/debug.h +++ b/include/trace/hooks/debug.h @@ -11,20 +11,12 @@ #include #if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS) - struct pt_regs; DECLARE_HOOK(android_vh_ipi_stop, TP_PROTO(struct pt_regs *regs), TP_ARGS(regs)) - -struct input_dev; -DECLARE_HOOK(android_vh_input_handle_event, - TP_PROTO(struct input_dev *dev, unsigned int type, - unsigned int code, int value), - TP_ARGS(dev, type, code, value)) #else #define trace_android_vh_ipi_stop(regs) -#define trace_android_vh_input_handle_event(dev, type, code, value) #endif #endif /* _TRACE_HOOK_DEBUG_H */ From 8a8be5c0134ef431c058aacc78b5d8cd27f7ed28 Mon Sep 17 00:00:00 2001 From: Liangcai Fan Date: Mon, 14 Sep 2020 11:25:05 +0800 Subject: [PATCH 14/17] ANDROID: ABI: add already existing symbols of mali_gondul.ko to unisoc Bug: 160255258 Change-Id: I891eab1de6d3f0973501ee1199566978475fafff Signed-off-by: Liangcai Fan --- android/abi_gki_aarch64_unisoc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc index e5e7c37c46e0..a743719eb889 100644 --- a/android/abi_gki_aarch64_unisoc +++ b/android/abi_gki_aarch64_unisoc @@ -2487,3 +2487,13 @@ # required by sprd_sip_svc.ko __arm_smccc_smc + +# required by mali_gondul.ko + bpf_trace_run5 + ktime_get_raw + of_machine_is_compatible + _totalram_pages + trace_output_call + trace_print_array_seq + trace_print_flags_seq + vmf_insert_pfn_prot From bad091cc4bf33d4eb8086f5761311ceba1e71283 Mon Sep 17 00:00:00 2001 From: Changki Kim Date: Fri, 4 Sep 2020 15:47:31 +0900 Subject: [PATCH 15/17] ANDROID: vendor_hooks: Add vendor hooks for getting printk messages When sudden reset by watchdog occurs, kernel log is very helpful. But the log has saved structure type in log_buf. So we want to collect the log on runtime to string format at other reserved memory. Bug: 167766040 Change-Id: Ic9686acc7c284e2ab81395fb9cc076fafe142bf9 Signed-off-by: Changki Kim --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/debug.h | 5 +++++ kernel/printk/printk.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 7b4b1abbb537..2ed3b8b2bccf 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -55,3 +55,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_store); diff --git a/include/trace/hooks/debug.h b/include/trace/hooks/debug.h index 99ae33889b0d..392525e806d4 100644 --- a/include/trace/hooks/debug.h +++ b/include/trace/hooks/debug.h @@ -15,8 +15,13 @@ struct pt_regs; DECLARE_HOOK(android_vh_ipi_stop, TP_PROTO(struct pt_regs *regs), TP_ARGS(regs)) + +DECLARE_HOOK(android_vh_printk_store, + TP_PROTO(int facility, int level), + TP_ARGS(facility, level)) #else #define trace_android_vh_ipi_stop(regs) +#define trace_android_vh_printk_store(facility, level) #endif #endif /* _TRACE_HOOK_DEBUG_H */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 971197f5d8ee..36ad47c35dd7 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -55,6 +55,8 @@ #include #define CREATE_TRACE_POINTS #include +#undef CREATE_TRACE_POINTS +#include #include "console_cmdline.h" #include "braille.h" @@ -2007,6 +2009,7 @@ asmlinkage int vprintk_emit(int facility, int level, pending_output = (curr_log_seq != log_next_seq); logbuf_unlock_irqrestore(flags); + trace_android_vh_printk_store(facility, level); /* If called from the scheduler, we can not call up(). */ if (!in_sched && pending_output) { /* From 45adb8186ecfcc9ea551274493969d864c73a57c Mon Sep 17 00:00:00 2001 From: Giuliano Procida Date: Mon, 14 Sep 2020 11:31:02 +0100 Subject: [PATCH 16/17] ANDROID: ABI: refresh with latest libabigail 94f5d4ae This is a one-off change that updates the type ids of anonymous structs and unions to a more stable id. Bug: 163532421 Change-Id: I2ae8b1fa19fab489412fca3f83fa9e2c7361c2b7 Signed-off-by: Giuliano Procida --- android/abi_gki_aarch64.xml | 4369 ++++++++++------------------------- 1 file changed, 1216 insertions(+), 3153 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 0e226a9b0df5..e41f5234a571 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -4397,7 +4397,7 @@ - + @@ -4411,7 +4411,7 @@ - + @@ -4516,7 +4516,7 @@ - + @@ -4567,7 +4567,7 @@ - + @@ -4821,7 +4821,7 @@ - + @@ -4970,7 +4970,7 @@ - + @@ -4993,14 +4993,14 @@ - + - - + + @@ -5042,19 +5042,19 @@ - + - + - + - + @@ -5183,7 +5183,7 @@ - + @@ -5201,16 +5201,16 @@ - + - + - + @@ -5264,18 +5264,7 @@ - - - - - - - - - - - - + @@ -5283,10 +5272,10 @@ - + - + @@ -5307,7 +5296,7 @@ - + @@ -5317,7 +5306,7 @@ - + @@ -5688,10 +5677,10 @@ - + - + @@ -5704,12 +5693,12 @@ - + - + - + @@ -5722,10 +5711,10 @@ - + - + @@ -5858,7 +5847,7 @@ - + @@ -5980,7 +5969,7 @@ - + @@ -5989,7 +5978,7 @@ - + @@ -6014,21 +6003,21 @@ - + - + - + - + @@ -6074,7 +6063,7 @@ - + @@ -6146,7 +6135,7 @@ - + @@ -6167,7 +6156,7 @@ - + @@ -6179,7 +6168,7 @@ - + @@ -6784,8 +6773,8 @@ - - + + @@ -6797,13 +6786,13 @@ - + - + @@ -6814,8 +6803,8 @@ - - + + @@ -6862,10 +6851,10 @@ - + - + @@ -6874,7 +6863,7 @@ - + @@ -7108,13 +7097,13 @@ - + - + - + @@ -7234,8 +7223,8 @@ - - + + @@ -7243,21 +7232,21 @@ - + - + - + - + @@ -7363,7 +7352,7 @@ - + @@ -7380,7 +7369,7 @@ - + @@ -7391,7 +7380,7 @@ - + @@ -7405,13 +7394,13 @@ - + - + @@ -7601,7 +7590,7 @@ - + @@ -7643,14 +7632,14 @@ - - + + - + @@ -7768,28 +7757,28 @@ - - + + - - + + - - + + - - + + @@ -7806,8 +7795,8 @@ - - + + @@ -8310,7 +8299,7 @@ - + @@ -8417,22 +8406,22 @@ - + - + - + - + @@ -8851,7 +8840,7 @@ - + @@ -8911,21 +8900,21 @@ - + - + - + - + - + - + @@ -8945,7 +8934,7 @@ - + @@ -8953,7 +8942,7 @@ - + @@ -8965,7 +8954,7 @@ - + @@ -8993,7 +8982,7 @@ - + @@ -9253,7 +9242,7 @@ - + @@ -9270,7 +9259,7 @@ - + @@ -9282,7 +9271,7 @@ - + @@ -9309,10 +9298,10 @@ - + - + @@ -9321,12 +9310,12 @@ - + - + @@ -9334,7 +9323,7 @@ - + @@ -9346,7 +9335,7 @@ - + @@ -9365,7 +9354,7 @@ - + @@ -9382,7 +9371,7 @@ - + @@ -9643,8 +9632,8 @@ - - + + @@ -9673,8 +9662,8 @@ - - + + @@ -9809,10 +9798,10 @@ - + - + @@ -9821,10 +9810,10 @@ - + - + @@ -9840,28 +9829,28 @@ - + - + - + - + - + - + - + - + @@ -9869,7 +9858,7 @@ - + @@ -9893,7 +9882,7 @@ - + @@ -9904,7 +9893,7 @@ - + @@ -9922,26 +9911,26 @@ - + - + - + - + - + - + @@ -9952,7 +9941,7 @@ - + @@ -9960,7 +9949,7 @@ - + @@ -9968,7 +9957,7 @@ - + @@ -9979,8 +9968,8 @@ - - + + @@ -10002,7 +9991,7 @@ - + @@ -10024,7 +10013,7 @@ - + @@ -10085,7 +10074,7 @@ - + @@ -10156,7 +10145,7 @@ - + @@ -10802,8 +10791,8 @@ - - + + @@ -11112,7 +11101,7 @@ - + @@ -11183,7 +11172,7 @@ - + @@ -11208,37 +11197,20 @@ - - - - - - - - - - - - - - - - - - + - + - + - + @@ -11352,7 +11324,7 @@ - + @@ -11370,7 +11342,7 @@ - + @@ -11553,13 +11525,13 @@ - + - + @@ -11620,7 +11592,7 @@ - + @@ -11815,10 +11787,10 @@ - + - + @@ -12185,10 +12157,10 @@ - + - + @@ -12233,15 +12205,15 @@ - + - + - + - + @@ -12249,7 +12221,7 @@ - + @@ -14036,7 +14008,7 @@ - + @@ -14044,7 +14016,7 @@ - + @@ -14052,15 +14024,15 @@ - + - + - + @@ -14074,7 +14046,7 @@ - + @@ -14088,7 +14060,7 @@ - + @@ -14102,7 +14074,7 @@ - + @@ -14110,7 +14082,7 @@ - + @@ -14118,7 +14090,7 @@ - + @@ -14126,7 +14098,7 @@ - + @@ -14137,7 +14109,7 @@ - + @@ -14145,7 +14117,7 @@ - + @@ -14153,15 +14125,15 @@ - + - + - + @@ -14169,7 +14141,7 @@ - + @@ -14177,7 +14149,7 @@ - + @@ -14185,7 +14157,7 @@ - + @@ -14193,7 +14165,7 @@ - + @@ -14201,7 +14173,7 @@ - + @@ -14209,10 +14181,27 @@ - + - + + + + + + + + + + + + + + + + + + @@ -14220,7 +14209,7 @@ - + @@ -14228,9 +14217,9 @@ - + - + @@ -14240,21 +14229,21 @@ - + - + - + - + - + @@ -14263,12 +14252,12 @@ - + - + @@ -14284,7 +14273,7 @@ - + @@ -14297,7 +14286,7 @@ - + @@ -14308,7 +14297,7 @@ - + @@ -14316,7 +14305,7 @@ - + @@ -14326,37 +14315,48 @@ - + - + - + - + - + + + + + + + + + + + + - + - + - + @@ -14364,7 +14364,7 @@ - + @@ -14372,15 +14372,15 @@ - + - + - + @@ -14391,15 +14391,15 @@ - + - + - + @@ -14407,7 +14407,7 @@ - + @@ -14415,7 +14415,7 @@ - + @@ -14874,10 +14874,10 @@ - + - + @@ -15234,15 +15234,7 @@ - - - - - - - - - + @@ -15325,14 +15317,6 @@ - - - - - - - - @@ -16037,7 +16021,7 @@ - + @@ -16045,7 +16029,7 @@ - + @@ -16250,21 +16234,7 @@ - - - - - - - - - - - - - - @@ -16279,39 +16249,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -16406,7 +16343,7 @@ - + @@ -16508,7 +16445,7 @@ - + @@ -16584,7 +16521,7 @@ - + @@ -16614,7 +16551,7 @@ - + @@ -16787,14 +16724,6 @@ - - - - - - - - @@ -16969,7 +16898,7 @@ - + @@ -16977,7 +16906,7 @@ - + @@ -16985,23 +16914,15 @@ - - - - - - - - - + - + - + @@ -17011,8 +16932,8 @@ - - + + @@ -17371,7 +17292,7 @@ - + @@ -17656,7 +17577,7 @@ - + @@ -17742,7 +17663,7 @@ - + @@ -18053,7 +17974,7 @@ - + @@ -18061,10 +17982,10 @@ - + - + @@ -18074,18 +17995,18 @@ - + - + - + - + @@ -18164,10 +18085,10 @@ - + - + @@ -18190,8 +18111,8 @@ - - + + @@ -18199,8 +18120,8 @@ - - + + @@ -18208,8 +18129,8 @@ - - + + @@ -18232,14 +18153,14 @@ - - + + - - + + @@ -18247,8 +18168,8 @@ - - + + @@ -18259,8 +18180,8 @@ - - + + @@ -18512,7 +18433,7 @@ - + @@ -18545,7 +18466,7 @@ - + @@ -18558,9 +18479,9 @@ - + - + @@ -18570,20 +18491,20 @@ - + - + - + - + @@ -18741,7 +18662,7 @@ - + @@ -18779,7 +18700,7 @@ - + @@ -18787,7 +18708,7 @@ - + @@ -18825,7 +18746,7 @@ - + @@ -18839,7 +18760,7 @@ - + @@ -18850,7 +18771,7 @@ - + @@ -18870,7 +18791,7 @@ - + @@ -18878,7 +18799,7 @@ - + @@ -18976,7 +18897,7 @@ - + @@ -19440,7 +19361,7 @@ - + @@ -19640,7 +19561,7 @@ - + @@ -19771,9 +19692,26 @@ + + + + + + + + + + + + + + + + + - + @@ -19781,7 +19719,7 @@ - + @@ -19789,7 +19727,7 @@ - + @@ -19850,7 +19788,7 @@ - + @@ -19863,7 +19801,7 @@ - + @@ -19879,9 +19817,9 @@ - + - + @@ -19892,7 +19830,7 @@ - + @@ -19911,47 +19849,30 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + @@ -19998,7 +19919,7 @@ - + @@ -20286,8 +20207,8 @@ - - + + @@ -21266,7 +21187,7 @@ - + @@ -21274,7 +21195,7 @@ - + @@ -21831,8 +21752,8 @@ - - + + @@ -22044,7 +21965,7 @@ - + @@ -22788,7 +22709,7 @@ - + @@ -22846,15 +22767,15 @@ - + - + - + @@ -23227,12 +23148,12 @@ - + - + @@ -24033,7 +23954,7 @@ - + @@ -24222,7 +24143,7 @@ - + @@ -24836,12 +24757,12 @@ - + - + @@ -28959,8 +28880,8 @@ - - + + @@ -29001,8 +28922,8 @@ - - + + @@ -29019,8 +28940,8 @@ - - + + @@ -29069,8 +28990,8 @@ - - + + @@ -29105,8 +29026,8 @@ - - + + @@ -29122,8 +29043,8 @@ - - + + @@ -29151,8 +29072,8 @@ - - + + @@ -29168,8 +29089,8 @@ - - + + @@ -29638,13 +29559,13 @@ - + - + @@ -30603,23 +30524,6 @@ - - - - - - - - - - - - - - - - - @@ -32183,7 +32087,7 @@ - + @@ -32204,7 +32108,7 @@ - + @@ -32604,7 +32508,7 @@ - + @@ -33588,7 +33492,7 @@ - + @@ -33846,10 +33750,10 @@ - + - + @@ -34855,7 +34759,7 @@ - + @@ -36522,6 +36426,14 @@ + + + + + + + + @@ -37036,7 +36948,7 @@ - + @@ -37120,41 +37032,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -37381,10 +37258,10 @@ - + - + @@ -37453,10 +37330,10 @@ - + - + @@ -37498,18 +37375,18 @@ - + - + - + - + - + @@ -37529,7 +37406,7 @@ - + @@ -37806,7 +37683,7 @@ - + @@ -39603,7 +39480,7 @@ - + @@ -39695,7 +39572,7 @@ - + @@ -40684,7 +40561,7 @@ - + @@ -40703,7 +40580,7 @@ - + @@ -41237,9 +41114,9 @@ - - - + + + @@ -41991,7 +41868,7 @@ - + @@ -42016,21 +41893,21 @@ - + - + - + - + - + - + @@ -42041,7 +41918,7 @@ - + @@ -42049,7 +41926,7 @@ - + @@ -42063,7 +41940,7 @@ - + @@ -42159,167 +42036,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -42537,7 +42253,7 @@ - + @@ -42625,9 +42341,9 @@ - + - + @@ -42639,18 +42355,18 @@ - + - + - + - + @@ -42676,7 +42392,7 @@ - + @@ -42702,7 +42418,7 @@ - + @@ -44275,11 +43991,11 @@ - + - + - + @@ -44288,12 +44004,12 @@ - + - + @@ -44304,7 +44020,7 @@ - + @@ -44312,13 +44028,13 @@ - + - + @@ -44332,14 +44048,6 @@ - - - - - - - - @@ -44582,7 +44290,7 @@ - + @@ -44590,7 +44298,7 @@ - + @@ -44598,7 +44306,7 @@ - + @@ -45599,10 +45307,10 @@ - + - + @@ -45698,10 +45406,10 @@ - + - + @@ -45885,7 +45593,7 @@ - + @@ -46104,7 +45812,7 @@ - + @@ -46250,7 +45958,7 @@ - + @@ -46305,7 +46013,7 @@ - + @@ -46368,10 +46076,10 @@ - + - + @@ -46383,7 +46091,7 @@ - + @@ -46408,7 +46116,7 @@ - + @@ -46427,7 +46135,7 @@ - + @@ -46612,35 +46320,13 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - @@ -47584,10 +47270,10 @@ - + - + @@ -48097,10 +47783,10 @@ - + - + @@ -48208,7 +47894,7 @@ - + @@ -48224,7 +47910,7 @@ - + @@ -48232,13 +47918,13 @@ - + - + - + @@ -48246,7 +47932,7 @@ - + @@ -48730,10 +48416,10 @@ - + - + @@ -48788,7 +48474,7 @@ - + @@ -48797,7 +48483,7 @@ - + @@ -48831,7 +48517,7 @@ - + @@ -48854,7 +48540,7 @@ - + @@ -48958,7 +48644,7 @@ - + @@ -48967,7 +48653,7 @@ - + @@ -48993,7 +48679,7 @@ - + @@ -49015,7 +48701,7 @@ - + @@ -49024,7 +48710,7 @@ - + @@ -49035,7 +48721,7 @@ - + @@ -49094,10 +48780,10 @@ - + - + @@ -49276,7 +48962,7 @@ - + @@ -49294,7 +48980,7 @@ - + @@ -49310,10 +48996,10 @@ - + - + @@ -49344,13 +49030,13 @@ - + - + @@ -49471,15 +49157,15 @@ - + - + - + - + @@ -49492,26 +49178,26 @@ - + - + - + - + - + - + - + @@ -49519,7 +49205,7 @@ - + @@ -49529,10 +49215,10 @@ - + - + @@ -49620,13 +49306,13 @@ - + - + @@ -49679,13 +49365,13 @@ - + - + @@ -51019,10 +50705,10 @@ - + - + @@ -51034,7 +50720,7 @@ - + @@ -51682,7 +51368,7 @@ - + @@ -51690,7 +51376,7 @@ - + @@ -51698,7 +51384,7 @@ - + @@ -51996,7 +51682,7 @@ - + @@ -52088,7 +51774,7 @@ - + @@ -52106,7 +51792,7 @@ - + @@ -52139,7 +51825,7 @@ - + @@ -52157,7 +51843,7 @@ - + @@ -52383,7 +52069,7 @@ - + @@ -53383,183 +53069,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -54101,20 +53610,6 @@ - - - - - - - - - - - - - - @@ -54126,15 +53621,15 @@ - + - + - + @@ -54143,7 +53638,7 @@ - + @@ -54751,7 +54246,7 @@ - + @@ -54776,8 +54271,8 @@ - - + + @@ -54805,20 +54300,6 @@ - - - - - - - - - - - - - - @@ -55523,25 +55004,6 @@ - - - - - - - - - - - - - - - - - - - @@ -55558,15 +55020,15 @@ - + - + - + @@ -56093,28 +55555,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -57626,17 +57066,6 @@ - - - - - - - - - - - @@ -58544,7 +57973,7 @@ - + @@ -58562,7 +57991,7 @@ - + @@ -58589,7 +58018,7 @@ - + @@ -58810,13 +58239,13 @@ - + - + - + @@ -58840,7 +58269,7 @@ - + @@ -58858,13 +58287,13 @@ - + - + @@ -58873,7 +58302,7 @@ - + @@ -58882,11 +58311,11 @@ - + - + @@ -58895,7 +58324,7 @@ - + @@ -59049,7 +58478,7 @@ - + @@ -59087,244 +58516,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -59421,7 +58612,7 @@ - + @@ -59432,8 +58623,8 @@ - - + + @@ -59444,7 +58635,7 @@ - + @@ -59528,7 +58719,7 @@ - + @@ -59685,7 +58876,7 @@ - + @@ -59920,7 +59111,7 @@ - + @@ -60107,7 +59298,7 @@ - + @@ -60143,7 +59334,7 @@ - + @@ -60282,7 +59473,7 @@ - + @@ -60486,10 +59677,10 @@ - + - + @@ -60560,13 +59751,13 @@ - + - + - + @@ -60575,10 +59766,10 @@ - + - + @@ -60586,7 +59777,7 @@ - + @@ -60594,7 +59785,7 @@ - + @@ -60602,7 +59793,7 @@ - + @@ -60805,8 +59996,8 @@ - - + + @@ -60814,13 +60005,13 @@ - + - + @@ -60831,18 +60022,18 @@ - + - + - + - + @@ -60870,13 +60061,13 @@ - + - + @@ -61134,7 +60325,7 @@ - + @@ -61279,7 +60470,7 @@ - + @@ -61323,7 +60514,7 @@ - + @@ -61806,12 +60997,12 @@ - + - + - + @@ -61821,13 +61012,13 @@ - + - + @@ -62000,7 +61191,7 @@ - + @@ -62360,7 +61551,7 @@ - + @@ -62368,7 +61559,7 @@ - + @@ -62377,7 +61568,7 @@ - + @@ -63565,15 +62756,15 @@ - + - + - + @@ -63584,7 +62775,7 @@ - + @@ -63592,7 +62783,7 @@ - + @@ -63600,15 +62791,15 @@ - + - + - + @@ -63616,7 +62807,7 @@ - + @@ -63624,7 +62815,7 @@ - + @@ -63632,7 +62823,7 @@ - + @@ -63646,7 +62837,7 @@ - + @@ -63657,7 +62848,7 @@ - + @@ -63665,7 +62856,7 @@ - + @@ -63673,7 +62864,7 @@ - + @@ -63681,7 +62872,7 @@ - + @@ -63689,7 +62880,7 @@ - + @@ -63700,7 +62891,7 @@ - + @@ -63708,7 +62899,7 @@ - + @@ -63817,12 +63008,7 @@ - - - - - - + @@ -63905,7 +63091,7 @@ - + @@ -65725,7 +64911,7 @@ - + @@ -66422,7 +65608,7 @@ - + @@ -66433,7 +65619,7 @@ - + @@ -68804,18 +67990,18 @@ - + - + - + - + - + @@ -68823,7 +68009,7 @@ - + @@ -69202,20 +68388,6 @@ - - - - - - - - - - - - - - @@ -70184,14 +69356,6 @@ - - - - - - - - @@ -70203,20 +69367,6 @@ - - - - - - - - - - - - - - @@ -70959,7 +70109,7 @@ - + @@ -70967,7 +70117,7 @@ - + @@ -71858,10 +71008,10 @@ - + - + @@ -71914,10 +71064,10 @@ - + - + @@ -72525,7 +71675,7 @@ - + @@ -72539,7 +71689,7 @@ - + @@ -72579,10 +71729,10 @@ - + - + @@ -73306,19 +72456,19 @@ - + - + - + - + - + @@ -73326,7 +72476,7 @@ - + @@ -73337,7 +72487,7 @@ - + @@ -73345,7 +72495,7 @@ - + @@ -73356,7 +72506,7 @@ - + @@ -73365,7 +72515,7 @@ - + @@ -73971,7 +73121,7 @@ - + @@ -74018,7 +73168,7 @@ - + @@ -74278,7 +73428,7 @@ - + @@ -75638,7 +74788,7 @@ - + @@ -75659,7 +74809,7 @@ - + @@ -77061,12 +76211,7 @@ - - - - - - + @@ -78550,6 +77695,17 @@ + + + + + + + + + + + @@ -79014,23 +78170,6 @@ - - - - - - - - - - - - - - - - - @@ -83548,31 +82687,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -84404,7 +83518,7 @@ - + @@ -85133,7 +84247,7 @@ - + @@ -85143,7 +84257,7 @@ - + @@ -85455,13 +84569,13 @@ - + - + @@ -85530,7 +84644,7 @@ - + @@ -85556,7 +84670,7 @@ - + @@ -85564,14 +84678,6 @@ - - - - - - - - @@ -86242,7 +85348,7 @@ - + @@ -86261,7 +85367,7 @@ - + @@ -86365,168 +85471,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -87043,6 +85988,16 @@ + + + + + + + + + + @@ -87334,7 +86289,15 @@ - + + + + + + + + + @@ -87389,50 +86352,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -87458,14 +86377,6 @@ - - - - - - - - @@ -87610,45 +86521,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -87801,7 +86673,7 @@ - + @@ -87817,10 +86689,10 @@ - + - + @@ -87828,40 +86700,23 @@ - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -87875,7 +86730,7 @@ - + @@ -87895,9 +86750,9 @@ - + - + @@ -87983,7 +86838,7 @@ - + @@ -88094,92 +86949,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -88201,25 +86970,6 @@ - - - - - - - - - - - - - - - - - - - @@ -88356,7 +87106,7 @@ - + @@ -88404,7 +87154,7 @@ - + @@ -88589,7 +87339,7 @@ - + @@ -88601,15 +87351,15 @@ - + - + - + - + @@ -88626,7 +87376,7 @@ - + @@ -88757,7 +87507,7 @@ - + @@ -88805,6 +87555,23 @@ + + + + + + + + + + + + + + + + + @@ -88871,7 +87638,7 @@ - + @@ -88886,7 +87653,7 @@ - + @@ -88939,25 +87706,46 @@ - - + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + @@ -89202,16 +87990,16 @@ - - + + - - + + @@ -89336,7 +88124,7 @@ - + @@ -89645,34 +88433,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -90198,7 +88958,7 @@ - + @@ -90236,7 +88996,7 @@ - + @@ -90327,7 +89087,7 @@ - + @@ -90375,15 +89135,15 @@ - + - + - + @@ -90521,9 +89281,9 @@ - + - + @@ -90548,7 +89308,7 @@ - + @@ -90557,7 +89317,7 @@ - + @@ -91085,17 +89845,6 @@ - - - - - - - - - - - @@ -91507,7 +90256,7 @@ - + @@ -91600,14 +90349,6 @@ - - - - - - - - @@ -92267,7 +91008,7 @@ - + @@ -92287,7 +91028,7 @@ - + @@ -92297,7 +91038,7 @@ - + @@ -92679,7 +91420,7 @@ - + @@ -93168,7 +91909,7 @@ - + @@ -93394,7 +92135,7 @@ - + @@ -93412,7 +92153,7 @@ - + @@ -94126,10 +92867,10 @@ - + - + @@ -94157,7 +92898,7 @@ - + @@ -94195,7 +92936,7 @@ - + @@ -94216,7 +92957,7 @@ - + @@ -94240,7 +92981,7 @@ - + @@ -94248,7 +92989,7 @@ - + @@ -94547,15 +93288,15 @@ - + - + - + @@ -94569,7 +93310,7 @@ - + @@ -94595,7 +93336,7 @@ - + @@ -94619,15 +93360,15 @@ - + - + - + @@ -94726,7 +93467,7 @@ - + @@ -94747,12 +93488,12 @@ - + - + @@ -94769,7 +93510,7 @@ - + @@ -95071,7 +93812,7 @@ - + @@ -95135,7 +93876,7 @@ - + @@ -95899,34 +94640,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -96695,7 +95408,7 @@ - + @@ -96742,7 +95455,7 @@ - + @@ -96790,10 +95503,10 @@ - + - + @@ -96906,8 +95619,8 @@ - - + + @@ -97031,7 +95744,7 @@ - + @@ -97214,7 +95927,7 @@ - + @@ -97684,7 +96397,7 @@ - + @@ -97889,8 +96602,8 @@ - - + + @@ -98177,13 +96890,13 @@ - + - + - + @@ -98225,7 +96938,7 @@ - + @@ -98235,7 +96948,7 @@ - + @@ -98243,7 +96956,7 @@ - + @@ -99639,8 +98352,8 @@ - - + + @@ -99656,7 +98369,7 @@ - + @@ -99761,16 +98474,16 @@ - + - + - + @@ -99797,7 +98510,7 @@ - + @@ -99805,7 +98518,7 @@ - + @@ -99813,7 +98526,7 @@ - + @@ -99827,7 +98540,7 @@ - + @@ -99843,7 +98556,7 @@ - + @@ -99882,23 +98595,23 @@ - + - + - + - + @@ -99908,7 +98621,7 @@ - + @@ -99918,7 +98631,7 @@ - + @@ -99937,10 +98650,10 @@ - + - + @@ -100063,7 +98776,7 @@ - + @@ -100075,7 +98788,7 @@ - + @@ -100106,7 +98819,7 @@ - + @@ -100118,7 +98831,7 @@ - + @@ -100169,10 +98882,10 @@ - + - + @@ -100201,7 +98914,7 @@ - + @@ -100209,7 +98922,7 @@ - + @@ -100656,7 +99369,7 @@ - + @@ -100670,7 +99383,7 @@ - + @@ -101058,7 +99771,7 @@ - + @@ -102342,7 +101055,7 @@ - + @@ -102350,7 +101063,7 @@ - + @@ -102358,7 +101071,7 @@ - + @@ -102366,7 +101079,7 @@ - + @@ -102380,15 +101093,15 @@ - + - + - + - + @@ -102396,7 +101109,7 @@ - + @@ -102444,51 +101157,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -102735,7 +101403,7 @@ - + @@ -103535,7 +102203,7 @@ - + @@ -103773,7 +102441,7 @@ - + @@ -103818,7 +102486,7 @@ - + @@ -104168,10 +102836,10 @@ - + - + @@ -104901,16 +103569,16 @@ - + - + - + @@ -104918,7 +103586,7 @@ - + @@ -104996,88 +103664,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -105136,25 +103722,6 @@ - - - - - - - - - - - - - - - - - - - @@ -105226,8 +103793,8 @@ - - + + @@ -105314,57 +103881,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -105376,25 +103892,6 @@ - - - - - - - - - - - - - - - - - - - @@ -105497,7 +103994,7 @@ - + @@ -105533,7 +104030,7 @@ - + @@ -105586,12 +104083,12 @@ - + - + @@ -105604,12 +104101,12 @@ - + - + - + @@ -105626,15 +104123,15 @@ - + - + - + @@ -105656,7 +104153,7 @@ - + @@ -105746,23 +104243,6 @@ - - - - - - - - - - - - - - - - - @@ -105973,32 +104453,13 @@ - + - - - - - - - - - - - - - - - - - - - - + @@ -106038,7 +104499,7 @@ - + @@ -106082,7 +104543,7 @@ - + @@ -106143,14 +104604,14 @@ - - - + + + - - - + + + @@ -106264,46 +104725,46 @@ - - + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + - - + + - - - - + + + + @@ -106377,15 +104838,15 @@ - + - + - + @@ -106441,7 +104902,7 @@ - + @@ -106636,9 +105097,9 @@ - + - + @@ -106834,6 +105295,17 @@ + + + + + + + + + + + @@ -106869,7 +105341,7 @@ - + @@ -106880,7 +105352,7 @@ - + @@ -107049,20 +105521,6 @@ - - - - - - - - - - - - - - @@ -107529,13 +105987,13 @@ - + - + - + @@ -107644,7 +106102,7 @@ - + @@ -107655,7 +106113,7 @@ - + @@ -107666,7 +106124,7 @@ - + @@ -107708,7 +106166,7 @@ - + @@ -107717,9 +106175,9 @@ - + - + @@ -107735,10 +106193,10 @@ - + - + @@ -107755,7 +106213,7 @@ - + @@ -108039,10 +106497,10 @@ - + - + @@ -108181,7 +106639,7 @@ - + @@ -108261,15 +106719,15 @@ - + - + - + @@ -108398,7 +106856,7 @@ - + @@ -108461,7 +106919,7 @@ - + @@ -108680,7 +107138,7 @@ - + @@ -108709,7 +107167,7 @@ - + @@ -108968,10 +107426,10 @@ - + - + @@ -109036,25 +107494,6 @@ - - - - - - - - - - - - - - - - - - - @@ -109231,18 +107670,7 @@ - - - - - - - - - - - - + @@ -109250,26 +107678,7 @@ - - - - - - - - - - - - - - - - - - - - + @@ -109277,7 +107686,7 @@ - + @@ -109304,24 +107713,13 @@ - - - - - - - - - - - - + @@ -109844,7 +108242,7 @@ - + @@ -109936,7 +108334,7 @@ - + @@ -110006,7 +108404,7 @@ - + @@ -110014,7 +108412,7 @@ - + @@ -110028,7 +108426,7 @@ - + @@ -110036,7 +108434,7 @@ - + @@ -110044,32 +108442,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -110502,7 +108875,7 @@ - + @@ -110917,30 +109290,30 @@ - + - + - + - + - + - + - + - + - + @@ -110948,27 +109321,12 @@ - + - - - - - - - - - - - - - - - - + @@ -111089,7 +109447,7 @@ - + @@ -111099,7 +109457,7 @@ - + @@ -111797,7 +110155,7 @@ - + @@ -111805,23 +110163,23 @@ - + - + - + - + - + @@ -111829,7 +110187,7 @@ - + @@ -111837,7 +110195,7 @@ - + @@ -111883,15 +110241,15 @@ - + - + - + @@ -111899,15 +110257,15 @@ - + - + - + @@ -111915,7 +110273,7 @@ - + @@ -111923,7 +110281,7 @@ - + @@ -111934,7 +110292,7 @@ - + @@ -111945,7 +110303,7 @@ - + @@ -111953,7 +110311,7 @@ - + @@ -111983,7 +110341,7 @@ - + @@ -112053,7 +110411,7 @@ - + @@ -112061,7 +110419,7 @@ - + @@ -112190,7 +110548,7 @@ - + @@ -112231,61 +110589,46 @@ - + - + - + - + - + - + - + - - - - - - + - - - - - - - - - - - + - + - + @@ -112294,40 +110637,30 @@ - + - + - + - + - + - + - + - - - - - - - - - - - + @@ -112335,21 +110668,6 @@ - - - - - - - - - - - - - - - @@ -112387,7 +110705,7 @@ - + @@ -112405,7 +110723,7 @@ - + @@ -112609,10 +110927,10 @@ - + - + @@ -112738,13 +111056,13 @@ - + - + @@ -112912,8 +111230,8 @@ - - + + @@ -113045,6 +111363,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -113141,10 +111515,10 @@ - + - + @@ -113166,10 +111540,10 @@ - + - + @@ -113322,6 +111696,8 @@ + + @@ -113506,17 +111882,6 @@ - - - - - - - - - - - @@ -113694,14 +112059,6 @@ - - - - - - - - @@ -113723,10 +112080,10 @@ - + - + @@ -113734,14 +112091,6 @@ - - - - - - - - @@ -113760,25 +112109,6 @@ - - - - - - - - - - - - - - - - - - - @@ -113909,10 +112239,10 @@ - + - + @@ -113927,7 +112257,7 @@ - + @@ -114025,7 +112355,7 @@ - + @@ -114248,9 +112578,9 @@ - + - + @@ -114271,22 +112601,6 @@ - - - - - - - - - - - - - - - - @@ -114866,140 +113180,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -115007,37 +113188,15 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -115179,7 +113338,7 @@ - + @@ -115477,7 +113636,7 @@ - + @@ -116665,10 +114824,10 @@ - + - + @@ -116697,7 +114856,7 @@ - + @@ -117289,7 +115448,7 @@ - + @@ -118237,7 +116396,7 @@ - + @@ -118249,7 +116408,7 @@ - + @@ -119765,7 +117924,7 @@ - + @@ -119773,7 +117932,15 @@ - + + + + + + + + + @@ -120592,45 +118759,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120644,12 +118811,12 @@ - + - + @@ -120660,7 +118827,7 @@ - + @@ -120674,7 +118841,7 @@ - + @@ -120688,12 +118855,7 @@ - - - - - - + @@ -120707,87 +118869,73 @@ - + - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120801,7 +118949,7 @@ - + @@ -120809,7 +118957,7 @@ - + @@ -120834,7 +118982,7 @@ - + @@ -120865,7 +119013,7 @@ - + @@ -120885,7 +119033,7 @@ - + @@ -120902,7 +119050,7 @@ - + @@ -120913,23 +119061,7 @@ - - - - - - - - - - - - - - - - - + @@ -120937,7 +119069,7 @@ - + @@ -120945,7 +119077,7 @@ - + @@ -120953,7 +119085,7 @@ - + @@ -120967,7 +119099,7 @@ - + @@ -120975,7 +119107,7 @@ - + @@ -120986,7 +119118,7 @@ - + @@ -121011,7 +119143,7 @@ - + @@ -121228,7 +119360,7 @@ - + @@ -121236,7 +119368,7 @@ - + @@ -121250,15 +119382,15 @@ - + - + - + - + @@ -121266,23 +119398,6 @@ - - - - - - - - - - - - - - - - - @@ -121455,7 +119570,7 @@ - + @@ -121464,7 +119579,7 @@ - + @@ -121515,25 +119630,6 @@ - - - - - - - - - - - - - - - - - - - @@ -121548,13 +119644,13 @@ - + - + @@ -121678,9 +119774,9 @@ - + - + @@ -121738,13 +119834,13 @@ - + - + @@ -121779,23 +119875,6 @@ - - - - - - - - - - - - - - - - - @@ -122480,31 +120559,31 @@ - + - + - + - + - + - + - + @@ -122515,7 +120594,7 @@ - + @@ -122526,7 +120605,7 @@ - + @@ -122543,7 +120622,7 @@ - + @@ -122560,7 +120639,7 @@ - + @@ -122569,24 +120648,24 @@ - + - + - + - + - + - + @@ -122594,7 +120673,7 @@ - + @@ -122602,7 +120681,7 @@ - + @@ -122610,7 +120689,7 @@ - + @@ -122633,7 +120712,7 @@ - + @@ -122711,20 +120790,12 @@ - + - - - - - - - - @@ -123361,14 +121432,6 @@ - - - - - - - - @@ -123599,7 +121662,7 @@ - + @@ -123767,7 +121830,7 @@ - + @@ -124448,7 +122511,7 @@ - + @@ -124565,10 +122628,10 @@ - + - + @@ -124653,10 +122716,10 @@ - + - + @@ -124675,10 +122738,10 @@ - + - + @@ -125525,7 +123588,7 @@ - + @@ -126739,7 +124802,7 @@ - + @@ -127107,7 +125170,7 @@ - + @@ -127327,7 +125390,7 @@ - + @@ -127435,9 +125498,9 @@ - + - + @@ -127451,6 +125514,6 @@ From 289331ecbc56555fddc0c826d88ad0db9dd52828 Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Tue, 8 Sep 2020 10:10:54 -0700 Subject: [PATCH 17/17] defconfig: lahaina: remove CONFIG_LEDS_CLASS_FLASH & CONFIG_LEDS_TRIGGER_TIMER Now that CONFIG_LEDS_CLASS_FLASH and CONFIG_LEDS_TRIGGER_TIMER are enabled in gki_defconfig, remove them from lahaina_GKI.config so that those modules gets updates from ACK. Change-Id: Ie913c96eac0453b386fcee1d8a167da6da233e1c Signed-off-by: Subbaraman Narayanamurthy --- arch/arm64/configs/vendor/lahaina_GKI.config | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm64/configs/vendor/lahaina_GKI.config b/arch/arm64/configs/vendor/lahaina_GKI.config index e901030d3059..5d87a67cfa86 100644 --- a/arch/arm64/configs/vendor/lahaina_GKI.config +++ b/arch/arm64/configs/vendor/lahaina_GKI.config @@ -141,10 +141,8 @@ CONFIG_QCOM_LAZY_MAPPING=m CONFIG_MFD_SPMI_PMIC=m CONFIG_PWM_QTI_LPG=m CONFIG_INTERCONNECT_QCOM_EPSS_L3=m -CONFIG_LEDS_CLASS_FLASH=m CONFIG_LEDS_QTI_FLASH=m CONFIG_LEDS_QTI_TRI_LED=m -CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_MSM_SPCOM=m CONFIG_MSM_ADSPRPC=m CONFIG_MSM_RDBG=m