leaving function in locked state

File: net/ipv4/.tmp_udp.o.preproc
Full description: {AutomatonChecker of /usr/share/stanse/checkers/AutomatonChecker/kernel_locking_irq.xml} in function 'udp_get_first' leaving function in locked state [traces: 1]
Importance: 1
Checker: AutomatonChecker of /usr/share/stanse/checkers/AutomatonChecker/kernel_locking_irq.xml
Trace:
line 1733: The lock is locked here.
line 1734: not affected ==> the lock is still locked.
line 1734: not affected ==> the lock is still locked.
line 1734: not affected ==> the lock is still locked.
line 1734: not affected ==> the lock is still locked.
line 1734: not affected ==> the lock is still locked.
line 1735: not affected ==> the lock is still locked.
line 1735: not affected ==> the lock is still locked.
line 1737: not affected ==> the lock is still locked.
line 1737: not affected ==> the lock is still locked.
line 1738: not affected ==> the lock is still locked.
line 1744: not affected ==> the lock is still locked.
line 1745: Leaving function in locked state.[& . * hslot lock]
This one is:
False positive index (the lower the better): 0
File contents (this file is distributed under the terms specified in the original file):
    1|struct udp_table udp_table ;
    2|extern typeof(udp_table) udp_table; extern void *__crc_udp_table ; static const unsigned long __kcrctab_udp_table = (unsigned long) &__crc_udp_table; static const char __kstrtab_udp_table[] = "" "udp_table"; static const struct kernel_symbol __ksymtab_udp_table = { (unsigned long)&udp_table, __kstrtab_udp_table };
    3|
    4|long sysctl_udp_mem[3] ;
    5|extern typeof(sysctl_udp_mem) sysctl_udp_mem; extern void *__crc_sysctl_udp_mem ; static const unsigned long __kcrctab_sysctl_udp_mem = (unsigned long) &__crc_sysctl_udp_mem; static const char __kstrtab_sysctl_udp_mem[] = "" "sysctl_udp_mem"; static const struct kernel_symbol __ksymtab_sysctl_udp_mem = { (unsigned long)&sysctl_udp_mem, __kstrtab_sysctl_udp_mem };
    6|
    7|int sysctl_udp_rmem_min ;
    8|extern typeof(sysctl_udp_rmem_min) sysctl_udp_rmem_min; extern void *__crc_sysctl_udp_rmem_min ; static const unsigned long __kcrctab_sysctl_udp_rmem_min = (unsigned long) &__crc_sysctl_udp_rmem_min; static const char __kstrtab_sysctl_udp_rmem_min[] = "" "sysctl_udp_rmem_min"; static const struct kernel_symbol __ksymtab_sysctl_udp_rmem_min = { (unsigned long)&sysctl_udp_rmem_min, __kstrtab_sysctl_udp_rmem_min };
    9|
   10|int sysctl_udp_wmem_min ;
   11|extern typeof(sysctl_udp_wmem_min) sysctl_udp_wmem_min; extern void *__crc_sysctl_udp_wmem_min ; static const unsigned long __kcrctab_sysctl_udp_wmem_min = (unsigned long) &__crc_sysctl_udp_wmem_min; static const char __kstrtab_sysctl_udp_wmem_min[] = "" "sysctl_udp_wmem_min"; static const struct kernel_symbol __ksymtab_sysctl_udp_wmem_min = { (unsigned long)&sysctl_udp_wmem_min, __kstrtab_sysctl_udp_wmem_min };
   12|
   13|atomic_long_t udp_memory_allocated;
   14|extern typeof(udp_memory_allocated) udp_memory_allocated; extern void *__crc_udp_memory_allocated ; static const unsigned long __kcrctab_udp_memory_allocated = (unsigned long) &__crc_udp_memory_allocated; static const char __kstrtab_udp_memory_allocated[] = "" "udp_memory_allocated"; static const struct kernel_symbol __ksymtab_udp_memory_allocated = { (unsigned long)&udp_memory_allocated, __kstrtab_udp_memory_allocated };
   15|
   16|
   17|
   18|
   19|static int udp_lib_lport_inuse(struct net *net, __u16 num,
   20|          const struct udp_hslot *hslot,
   21|          unsigned long *bitmap,
   22|          struct sock *sk,
   23|          int (*saddr_comp)(const struct sock *sk1,
   24|       const struct sock *sk2),
   25|          unsigned int log)
   26|{
   27| struct sock *sk2;
   28| struct hlist_nulls_node *node;
   29|
   30| for (node = (&hslot->head)->first; (!is_a_nulls(node)) && ({ sk2 = ({ const typeof( ((typeof(*sk2) *)0)->__sk_common.skc_nulls_node ) *__mptr = (node); (typeof(*sk2) *)( (char *)__mptr - 1 );}); 1;}); node = node->next)
   31|  if (net_eq(sock_net(sk2), net) &&
   32|      sk2 != sk &&
   33|      (bitmap || udp_sk(sk2)->inet.sk.__sk_common.skc_u16hashes[0] == num) &&
   34|      (!sk2->__sk_common.skc_reuse || !sk->__sk_common.skc_reuse) &&
   35|      (!sk2->__sk_common.skc_bound_dev_if || !sk->__sk_common.skc_bound_dev_if ||
   36|       sk2->__sk_common.skc_bound_dev_if == sk->__sk_common.skc_bound_dev_if) &&
   37|      (*saddr_comp)(sk, sk2)) {
   38|   if (bitmap)
   39|    __set_bit(udp_sk(sk2)->inet.sk.__sk_common.skc_u16hashes[0] >> log,
   40|       bitmap);
   41|   else
   42|    return 1;
   43|  }
   44| return 0;
   45|}
   46|
   47|
   48|
   49|
   50|
   51|static int udp_lib_lport_inuse2(struct net *net, __u16 num,
   52|          struct udp_hslot *hslot2,
   53|          struct sock *sk,
   54|          int (*saddr_comp)(const struct sock *sk1,
   55|       const struct sock *sk2))
   56|{
   57| struct sock *sk2;
   58| struct hlist_nulls_node *node;
   59| int res = 0;
   60|
   61| __st_spin_lock_st__(&hslot2->lock);
   62| for (node = (&hslot2->head)->first; (!is_a_nulls(node)) && ({ sk2 = ({ const typeof( ((typeof(*sk2) *)0)->__sk_common.skc_portaddr_node ) *__mptr = (node); (typeof(*sk2) *)( (char *)__mptr - 1 );}); 1;}); node = node->next)
   63|  if (net_eq(sock_net(sk2), net) &&
   64|      sk2 != sk &&
   65|      (udp_sk(sk2)->inet.sk.__sk_common.skc_u16hashes[0] == num) &&
   66|      (!sk2->__sk_common.skc_reuse || !sk->__sk_common.skc_reuse) &&
   67|      (!sk2->__sk_common.skc_bound_dev_if || !sk->__sk_common.skc_bound_dev_if ||
   68|       sk2->__sk_common.skc_bound_dev_if == sk->__sk_common.skc_bound_dev_if) &&
   69|      (*saddr_comp)(sk, sk2)) {
   70|   res = 1;
   71|   break;
   72|  }
   73| __st_spin_unlock_st__(&hslot2->lock);
   74| return res;
   75|}
   76|int udp_lib_get_port(struct sock *sk, unsigned short snum,
   77|         int (*saddr_comp)(const struct sock *sk1,
   78|      const struct sock *sk2),
   79|       unsigned int hash2_nulladdr)
   80|{
   81| struct udp_hslot *hslot, *hslot2;
   82| struct udp_table *udptable = sk->__sk_common.skc_prot->h.udp_table;
   83| int error = 1;
   84| struct net *net = sock_net(sk);
   85|
   86| if (!snum) {
   87|  int low, high, remaining;
   88|  unsigned rand;
   89|  unsigned short first, last;
   90|  unsigned long bitmap[((((65536 / (0 ? 128 : 256))) + (8 * sizeof(long)) - 1) / (8 * sizeof(long)))];
   91|
   92|  inet_get_local_port_range(&low, &high);
   93|  remaining = (high - low) + 1;
   94|
   95|  rand = random32();
   96|  first = (((u64)rand * remaining) >> 32) + low;
   97|
   98|
   99|
  100|  rand = (rand | 1) * (udptable->mask + 1);
  101|  last = first + udptable->mask + 1;
  102|  do {
  103|   hslot = udp_hashslot(udptable, net, first);
  104|   bitmap_zero(bitmap, (65536 / (0 ? 128 : 256)));
  105|   __st_spin_lock_bh_st__(&hslot->lock);
  106|   udp_lib_lport_inuse(net, snum, hslot, bitmap, sk,
  107|         saddr_comp, udptable->log);
  108|
  109|   snum = first;
  110|
  111|
  112|
  113|
  114|
  115|   do {
  116|    if (low <= snum && snum <= high &&
  117|        !(__builtin_constant_p((snum >> udptable->log)) ? constant_test_bit((snum >> udptable->log), (bitmap)) : variable_test_bit((snum >> udptable->log), (bitmap))) &&
  118|        !inet_is_reserved_local_port(snum))
  119|     goto found;
  120|    snum += rand;
  121|   } while (snum != first);
  122|   __st_spin_unlock_bh_st__(&hslot->lock);
  123|  } while (++first != last);
  124|  goto fail;
  125| } else {
  126|  hslot = udp_hashslot(udptable, net, snum);
  127|  __st_spin_lock_bh_st__(&hslot->lock);
  128|  if (hslot->count > 10) {
  129|   int exist;
  130|   unsigned int slot2 = udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1] ^ snum;
  131|
  132|   slot2 &= udptable->mask;
  133|   hash2_nulladdr &= udptable->mask;
  134|
  135|   hslot2 = udp_hashslot2(udptable, slot2);
  136|   if (hslot->count < hslot2->count)
  137|    goto scan_primary_hash;
  138|
  139|   exist = udp_lib_lport_inuse2(net, snum, hslot2,
  140|           sk, saddr_comp);
  141|   if (!exist && (hash2_nulladdr != slot2)) {
  142|    hslot2 = udp_hashslot2(udptable, hash2_nulladdr);
  143|    exist = udp_lib_lport_inuse2(net, snum, hslot2,
  144|            sk, saddr_comp);
  145|   }
  146|   if (exist)
  147|    goto fail_unlock;
  148|   else
  149|    goto found;
  150|  }
  151|scan_primary_hash:
  152|  if (udp_lib_lport_inuse(net, snum, hslot, ((void *)0), sk,
  153|     saddr_comp, 0))
  154|   goto fail_unlock;
  155| }
  156|found:
  157| inet_sk(sk)->inet_num = snum;
  158| udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[0] = snum;
  159| udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1] ^= snum;
  160| if (sk_unhashed(sk)) {
  161|  sk_nulls_add_node_rcu(sk, &hslot->head);
  162|  hslot->count++;
  163|  sock_prot_inuse_add(sock_net(sk), sk->__sk_common.skc_prot, 1);
  164|
  165|  hslot2 = udp_hashslot2(udptable, udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1]);
  166|  __st_spin_lock_st__(&hslot2->lock);
  167|  hlist_nulls_add_head_rcu(&udp_sk(sk)->inet.sk.__sk_common.skc_portaddr_node,
  168|      &hslot2->head);
  169|  hslot2->count++;
  170|  __st_spin_unlock_st__(&hslot2->lock);
  171| }
  172| error = 0;
  173|fail_unlock:
  174| __st_spin_unlock_bh_st__(&hslot->lock);
  175|fail:
  176| return error;
  177|}
  178|extern typeof(udp_lib_get_port) udp_lib_get_port; extern void *__crc_udp_lib_get_port ; static const unsigned long __kcrctab_udp_lib_get_port = (unsigned long) &__crc_udp_lib_get_port; static const char __kstrtab_udp_lib_get_port[] = "" "udp_lib_get_port"; static const struct kernel_symbol __ksymtab_udp_lib_get_port = { (unsigned long)&udp_lib_get_port, __kstrtab_udp_lib_get_port };
  179|
  180|static int ipv4_rcv_saddr_equal(const struct sock *sk1, const struct sock *sk2)
  181|{
  182| struct inet_sock *inet1 = inet_sk(sk1), *inet2 = inet_sk(sk2);
  183|
  184| return (!((sk2)->__sk_common.skc_family == 10 && (inet6_sk(sk2)->ipv6only)) &&
  185|   (!inet1->inet_rcv_saddr || !inet2->inet_rcv_saddr ||
  186|     inet1->inet_rcv_saddr == inet2->inet_rcv_saddr));
  187|}
  188|
  189|static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr,
  190|           unsigned int port)
  191|{
  192| return jhash_1word(( u32)saddr, net_hash_mix(net)) ^ port;
  193|}
  194|
  195|int udp_v4_get_port(struct sock *sk, unsigned short snum)
  196|{
  197| unsigned int hash2_nulladdr =
  198|  udp4_portaddr_hash(sock_net(sk), (( __be32)(__builtin_constant_p((__u32)((((unsigned long int) 0x00000000)))) ? ((__u32)( (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x000000ffUL) << 24) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0xff000000UL) >> 24))) : __fswab32((((unsigned long int) 0x00000000))))), snum);
  199| unsigned int hash2_partial =
  200|  udp4_portaddr_hash(sock_net(sk), inet_sk(sk)->inet_rcv_saddr, 0);
  201|
  202|
  203| udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1] = hash2_partial;
  204| return udp_lib_get_port(sk, snum, ipv4_rcv_saddr_equal, hash2_nulladdr);
  205|}
  206|
  207|static inline int compute_score(struct sock *sk, struct net *net, __be32 saddr,
  208|    unsigned short hnum,
  209|    __be16 sport, __be32 daddr, __be16 dport, int dif)
  210|{
  211| int score = -1;
  212|
  213| if (net_eq(sock_net(sk), net) && udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[0] == hnum &&
  214|   !((sk)->__sk_common.skc_family == 10 && (inet6_sk(sk)->ipv6only))) {
  215|  struct inet_sock *inet = inet_sk(sk);
  216|
  217|  score = (sk->__sk_common.skc_family == 2 ? 1 : 0);
  218|  if (inet->inet_rcv_saddr) {
  219|   if (inet->inet_rcv_saddr != daddr)
  220|    return -1;
  221|   score += 2;
  222|  }
  223|  if (inet->inet_daddr) {
  224|   if (inet->inet_daddr != saddr)
  225|    return -1;
  226|   score += 2;
  227|  }
  228|  if (inet->inet_dport) {
  229|   if (inet->inet_dport != sport)
  230|    return -1;
  231|   score += 2;
  232|  }
  233|  if (sk->__sk_common.skc_bound_dev_if) {
  234|   if (sk->__sk_common.skc_bound_dev_if != dif)
  235|    return -1;
  236|   score += 2;
  237|  }
  238| }
  239| return score;
  240|}
  241|
  242|
  243|
  244|
  245|
  246|static inline int compute_score2(struct sock *sk, struct net *net,
  247|     __be32 saddr, __be16 sport,
  248|     __be32 daddr, unsigned int hnum, int dif)
  249|{
  250| int score = -1;
  251|
  252| if (net_eq(sock_net(sk), net) && !((sk)->__sk_common.skc_family == 10 && (inet6_sk(sk)->ipv6only))) {
  253|  struct inet_sock *inet = inet_sk(sk);
  254|
  255|  if (inet->inet_rcv_saddr != daddr)
  256|   return -1;
  257|  if (inet->inet_num != hnum)
  258|   return -1;
  259|
  260|  score = (sk->__sk_common.skc_family == 2 ? 1 : 0);
  261|  if (inet->inet_daddr) {
  262|   if (inet->inet_daddr != saddr)
  263|    return -1;
  264|   score += 2;
  265|  }
  266|  if (inet->inet_dport) {
  267|   if (inet->inet_dport != sport)
  268|    return -1;
  269|   score += 2;
  270|  }
  271|  if (sk->__sk_common.skc_bound_dev_if) {
  272|   if (sk->__sk_common.skc_bound_dev_if != dif)
  273|    return -1;
  274|   score += 2;
  275|  }
  276| }
  277| return score;
  278|}
  279|
  280|
  281|
  282|static struct sock *udp4_lib_lookup2(struct net *net,
  283|  __be32 saddr, __be16 sport,
  284|  __be32 daddr, unsigned int hnum, int dif,
  285|  struct udp_hslot *hslot2, unsigned int slot2)
  286|{
  287| struct sock *sk, *result;
  288| struct hlist_nulls_node *node;
  289| int score, badness;
  290|
  291|begin:
  292| result = ((void *)0);
  293| badness = -1;
  294| for (node = ({ typeof(*((*((struct hlist_nulls_node **)&(&hslot2->head)->first)))) *_________p1 = (typeof(*((*((struct hlist_nulls_node **)&(&hslot2->head)->first))))* )(*(volatile typeof(((*((struct hlist_nulls_node **)&(&hslot2->head)->first)))) *)&(((*((struct hlist_nulls_node **)&(&hslot2->head)->first))))); do { static bool __warned; if (debug_lockdep_rcu_enabled() && !__warned && !(rcu_read_lock_held() || (1))) { __warned = true; lockdep_rcu_dereference("net/ipv4/.tmp_udp.o.armored.c", 413); } } while (0); ; do { } while (0); ((typeof(*((*((struct hlist_nulls_node **)&(&hslot2->head)->first)))) *)(_________p1)); }); (!is_a_nulls(node)) && ({ sk = ({ const typeof( ((typeof(*sk) *)0)->__sk_common.skc_portaddr_node ) *__mptr = (node); (typeof(*sk) *)( (char *)__mptr - 1 );}); 1; }); node = ({ typeof(*((*((struct hlist_nulls_node **)&(node)->next)))) *_________p1 = (typeof(*((*((struct hlist_nulls_node **)&(node)->next))))* )(*(volatile typeof(((*((struct hlist_nulls_node **)&(node)->next)))) *)&(((*((struct hlist_nulls_node **)&(node)->next))))); do { static bool __warned; if (debug_lockdep_rcu_enabled() && !__warned && !(rcu_read_lock_held() || (1))) { __warned = true; lockdep_rcu_dereference("net/ipv4/.tmp_udp.o.armored.c", 413); } } while (0); ; do { } while (0); ((typeof(*((*((struct hlist_nulls_node **)&(node)->next)))) *)(_________p1)); })) {
  295|  score = compute_score2(sk, net, saddr, sport,
  296|          daddr, hnum, dif);
  297|  if (score > badness) {
  298|   result = sk;
  299|   badness = score;
  300|   if (score == (1 + 2 + 2 + 2))
  301|    goto exact_match;
  302|  }
  303| }
  304|
  305|
  306|
  307|
  308|
  309| if (get_nulls_value(node) != slot2)
  310|  goto begin;
  311|
  312| if (result) {
  313|exact_match:
  314|  if (!atomic_inc_not_zero_hint(&result->__sk_common.skc_refcnt, 2))
  315|   result = ((void *)0);
  316|  else if (compute_score2(result, net, saddr, sport, daddr, hnum, dif) < badness
  317|                                  ) {
  318|   sock_put(result);
  319|   goto begin;
  320|  }
  321| }
  322| return result;
  323|}
  324|
  325|
  326|
  327|
  328|static struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr,
  329|  __be16 sport, __be32 daddr, __be16 dport,
  330|  int dif, struct udp_table *udptable)
  331|{
  332| struct sock *sk, *result;
  333| struct hlist_nulls_node *node;
  334| unsigned short hnum = (__builtin_constant_p((__u16)(( __u16)(__be16)(dport))) ? ((__u16)( (((__u16)(( __u16)(__be16)(dport)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(dport)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(dport)));
  335| unsigned int hash2, slot2, slot = udp_hashfn(net, hnum, udptable->mask);
  336| struct udp_hslot *hslot2, *hslot = &udptable->hash[slot];
  337| int score, badness;
  338|
  339| __st_rcu_read_lock_st__();
  340| if (hslot->count > 10) {
  341|  hash2 = udp4_portaddr_hash(net, daddr, hnum);
  342|  slot2 = hash2 & udptable->mask;
  343|  hslot2 = &udptable->hash2[slot2];
  344|  if (hslot->count < hslot2->count)
  345|   goto begin;
  346|
  347|  result = udp4_lib_lookup2(net, saddr, sport,
  348|       daddr, hnum, dif,
  349|       hslot2, slot2);
  350|  if (!result) {
  351|   hash2 = udp4_portaddr_hash(net, (( __be32)(__builtin_constant_p((__u32)((((unsigned long int) 0x00000000)))) ? ((__u32)( (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x000000ffUL) << 24) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0xff000000UL) >> 24))) : __fswab32((((unsigned long int) 0x00000000))))), hnum);
  352|   slot2 = hash2 & udptable->mask;
  353|   hslot2 = &udptable->hash2[slot2];
  354|   if (hslot->count < hslot2->count)
  355|    goto begin;
  356|
  357|   result = udp4_lib_lookup2(net, saddr, sport,
  358|        (( __be32)(__builtin_constant_p((__u32)((((unsigned long int) 0x00000000)))) ? ((__u32)( (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x000000ffUL) << 24) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x0000ff00UL) << 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0x00ff0000UL) >> 8) | (((__u32)((((unsigned long int) 0x00000000))) & (__u32)0xff000000UL) >> 24))) : __fswab32((((unsigned long int) 0x00000000))))), hnum, dif,
  359|        hslot2, slot2);
  360|  }
  361|  __st_rcu_read_unlock_st__();
  362|  return result;
  363| }
  364|begin:
  365| result = ((void *)0);
  366| badness = -1;
  367| for (node = ({ typeof(*((*((struct hlist_nulls_node **)&(&hslot->head)->first)))) *_________p1 = (typeof(*((*((struct hlist_nulls_node **)&(&hslot->head)->first))))* )(*(volatile typeof(((*((struct hlist_nulls_node **)&(&hslot->head)->first)))) *)&(((*((struct hlist_nulls_node **)&(&hslot->head)->first))))); do { static bool __warned; if (debug_lockdep_rcu_enabled() && !__warned && !(rcu_read_lock_held() || (1))) { __warned = true; lockdep_rcu_dereference("net/ipv4/.tmp_udp.o.armored.c", 486); } } while (0); ; do { } while (0); ((typeof(*((*((struct hlist_nulls_node **)&(&hslot->head)->first)))) *)(_________p1)); }); (!is_a_nulls(node)) && ({ sk = ({ const typeof( ((typeof(*sk) *)0)->__sk_common.skc_nulls_node ) *__mptr = (node); (typeof(*sk) *)( (char *)__mptr - 1 );}); 1; }); node = ({ typeof(*((*((struct hlist_nulls_node **)&(node)->next)))) *_________p1 = (typeof(*((*((struct hlist_nulls_node **)&(node)->next))))* )(*(volatile typeof(((*((struct hlist_nulls_node **)&(node)->next)))) *)&(((*((struct hlist_nulls_node **)&(node)->next))))); do { static bool __warned; if (debug_lockdep_rcu_enabled() && !__warned && !(rcu_read_lock_held() || (1))) { __warned = true; lockdep_rcu_dereference("net/ipv4/.tmp_udp.o.armored.c", 486); } } while (0); ; do { } while (0); ((typeof(*((*((struct hlist_nulls_node **)&(node)->next)))) *)(_________p1)); })) {
  368|  score = compute_score(sk, net, saddr, hnum, sport,
  369|          daddr, dport, dif);
  370|  if (score > badness) {
  371|   result = sk;
  372|   badness = score;
  373|  }
  374| }
  375|
  376|
  377|
  378|
  379|
  380| if (get_nulls_value(node) != slot)
  381|  goto begin;
  382|
  383| if (result) {
  384|  if (!atomic_inc_not_zero_hint(&result->__sk_common.skc_refcnt, 2))
  385|   result = ((void *)0);
  386|  else if (compute_score(result, net, saddr, hnum, sport, daddr, dport, dif) < badness
  387|                                   ) {
  388|   sock_put(result);
  389|   goto begin;
  390|  }
  391| }
  392| __st_rcu_read_unlock_st__();
  393| return result;
  394|}
  395|
  396|static inline struct sock *__udp4_lib_lookup_skb(struct sk_buff *skb,
  397|       __be16 sport, __be16 dport,
  398|       struct udp_table *udptable)
  399|{
  400| struct sock *sk;
  401| const struct iphdr *iph = ip_hdr(skb);
  402|
  403| if (sk = skb_steal_sock(skb))
  404|  return sk;
  405| else
  406|  return __udp4_lib_lookup(dev_net(skb_dst(skb)->dev), iph->saddr, sport,
  407|      iph->daddr, dport, inet_iif(skb),
  408|      udptable);
  409|}
  410|
  411|struct sock *udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport,
  412|        __be32 daddr, __be16 dport, int dif)
  413|{
  414| return __udp4_lib_lookup(net, saddr, sport, daddr, dport, dif, &udp_table);
  415|}
  416|extern typeof(udp4_lib_lookup) udp4_lib_lookup; extern void *__crc_udp4_lib_lookup ; static const unsigned long __kcrctab_udp4_lib_lookup = (unsigned long) &__crc_udp4_lib_lookup; static const char __kstrtab_udp4_lib_lookup[] = "" "udp4_lib_lookup"; static const struct kernel_symbol __ksymtab_udp4_lib_lookup = { (unsigned long)&udp4_lib_lookup, __kstrtab_udp4_lib_lookup };
  417|
  418|static inline struct sock *udp_v4_mcast_next(struct net *net, struct sock *sk,
  419|          __be16 loc_port, __be32 loc_addr,
  420|          __be16 rmt_port, __be32 rmt_addr,
  421|          int dif)
  422|{
  423| struct hlist_nulls_node *node;
  424| struct sock *s = sk;
  425| unsigned short hnum = (__builtin_constant_p((__u16)(( __u16)(__be16)(loc_port))) ? ((__u16)( (((__u16)(( __u16)(__be16)(loc_port)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(loc_port)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(loc_port)));
  426|
  427| if (s && ({ node = &(s)->__sk_common.skc_nulls_node; 1; })) for (; (!is_a_nulls(node)) && ({ s = ({ const typeof( ((typeof(*s) *)0)->__sk_common.skc_nulls_node ) *__mptr = (node); (typeof(*s) *)( (char *)__mptr - 1 );}); 1;}); node = node->next) {
  428|  struct inet_sock *inet = inet_sk(s);
  429|
  430|  if (!net_eq(sock_net(s), net) ||
  431|      udp_sk(s)->inet.sk.__sk_common.skc_u16hashes[0] != hnum ||
  432|      (inet->inet_daddr && inet->inet_daddr != rmt_addr) ||
  433|      (inet->inet_dport != rmt_port && inet->inet_dport) ||
  434|      (inet->inet_rcv_saddr &&
  435|       inet->inet_rcv_saddr != loc_addr) ||
  436|      ((s)->__sk_common.skc_family == 10 && (inet6_sk(s)->ipv6only)) ||
  437|      (s->__sk_common.skc_bound_dev_if && s->__sk_common.skc_bound_dev_if != dif))
  438|   continue;
  439|  if (!ip_mc_sf_allow(s, loc_addr, rmt_addr, dif))
  440|   continue;
  441|  goto found;
  442| }
  443| s = ((void *)0);
  444|found:
  445| return s;
  446|}
  447|void __udp4_lib_err(struct sk_buff *skb, u32 info, struct udp_table *udptable)
  448|{
  449| struct inet_sock *inet;
  450| struct iphdr *iph = (struct iphdr *)skb->data;
  451| struct udphdr *uh = (struct udphdr *)(skb->data+(iph->ihl<<2));
  452| const int type = icmp_hdr(skb)->type;
  453| const int code = icmp_hdr(skb)->code;
  454| struct sock *sk;
  455| int harderr;
  456| int err;
  457| struct net *net = dev_net(skb->dev);
  458|
  459| sk = __udp4_lib_lookup(net, iph->daddr, uh->dest,
  460|   iph->saddr, uh->source, skb->dev->ifindex, udptable);
  461| if (sk == ((void *)0)) {
  462|  do { do { const void *__vpp_verify = (typeof(&((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.icmp_statistics[0]->mibs[ICMP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0);
  463|  return;
  464| }
  465|
  466| err = 0;
  467| harderr = 0;
  468| inet = inet_sk(sk);
  469|
  470| switch (type) {
  471| default:
  472| case 11:
  473|  err = 113;
  474|  break;
  475| case 4:
  476|  goto out;
  477| case 12:
  478|  err = 71;
  479|  harderr = 1;
  480|  break;
  481| case 3:
  482|  if (code == 4) {
  483|   if (inet->pmtudisc != 0) {
  484|    err = 90;
  485|    harderr = 1;
  486|    break;
  487|   }
  488|   goto out;
  489|  }
  490|  err = 113;
  491|  if (code <= 15) {
  492|   harderr = icmp_err_convert[code].fatal;
  493|   err = icmp_err_convert[code].errno;
  494|  }
  495|  break;
  496| }
  497|
  498|
  499|
  500|
  501|
  502| if (!inet->recverr) {
  503|  if (!harderr || sk->__sk_common.skc_state != TCP_ESTABLISHED)
  504|   goto out;
  505| } else
  506|  ip_icmp_error(sk, skb, err, uh->dest, info, (u8 *)(uh+1));
  507|
  508| sk->sk_err = err;
  509| sk->sk_error_report(sk);
  510|out:
  511| sock_put(sk);
  512|}
  513|
  514|void udp_err(struct sk_buff *skb, u32 info)
  515|{
  516| __udp4_lib_err(skb, info, &udp_table);
  517|}
  518|
  519|
  520|
  521|
  522|void udp_flush_pending_frames(struct sock *sk)
  523|{
  524| struct udp_sock *up = udp_sk(sk);
  525|
  526| if (up->pending) {
  527|  up->len = 0;
  528|  up->pending = 0;
  529|  ip_flush_pending_frames(sk);
  530| }
  531|}
  532|extern typeof(udp_flush_pending_frames) udp_flush_pending_frames; extern void *__crc_udp_flush_pending_frames ; static const unsigned long __kcrctab_udp_flush_pending_frames = (unsigned long) &__crc_udp_flush_pending_frames; static const char __kstrtab_udp_flush_pending_frames[] = "" "udp_flush_pending_frames"; static const struct kernel_symbol __ksymtab_udp_flush_pending_frames = { (unsigned long)&udp_flush_pending_frames, __kstrtab_udp_flush_pending_frames };
  533|
  534|
  535|
  536|
  537|
  538|
  539|
  540|static void udp4_hwcsum_outgoing(struct sock *sk, struct sk_buff *skb,
  541|     __be32 src, __be32 dst, int len)
  542|{
  543| unsigned int offset;
  544| struct udphdr *uh = udp_hdr(skb);
  545| __wsum csum = 0;
  546|
  547| if (skb_queue_len(&sk->sk_write_queue) == 1) {
  548|
  549|
  550|
  551|  skb->csum_start = skb_transport_header(skb) - skb->head;
  552|  skb->csum_offset = 1;
  553|  uh->check = ~csum_tcpudp_magic(src, dst, len, IPPROTO_UDP, 0);
  554| } else {
  555|
  556|
  557|
  558|
  559|
  560|  offset = skb_transport_offset(skb);
  561|  skb->csum = skb_checksum(skb, offset, skb->len - offset, 0);
  562|
  563|  skb->ip_summed = 0;
  564|
  565|  for (skb = (&sk->sk_write_queue)->next; __builtin_prefetch(skb->next), (skb != (struct sk_buff *)(&sk->sk_write_queue)); skb = skb->next) {
  566|   csum = csum_add(csum, skb->csum);
  567|  }
  568|
  569|  uh->check = csum_tcpudp_magic(src, dst, len, IPPROTO_UDP, csum);
  570|  if (uh->check == 0)
  571|   uh->check = (( __sum16)0xffff);
  572| }
  573|}
  574|
  575|
  576|
  577|
  578|static int udp_push_pending_frames(struct sock *sk)
  579|{
  580| struct udp_sock *up = udp_sk(sk);
  581| struct inet_sock *inet = inet_sk(sk);
  582| struct flowi *fl = &inet->cork.fl;
  583| struct sk_buff *skb;
  584| struct udphdr *uh;
  585| int err = 0;
  586| int is_udplite = (udp_sk(sk)->pcflag);
  587| __wsum csum = 0;
  588|
  589|
  590| if ((skb = skb_peek(&sk->sk_write_queue)) == ((void *)0))
  591|  goto out;
  592|
  593|
  594|
  595|
  596| uh = udp_hdr(skb);
  597| uh->source = fl->uli_u.ports.sport;
  598| uh->dest = fl->uli_u.ports.dport;
  599| uh->len = (( __be16)(__builtin_constant_p((__u16)((up->len))) ? ((__u16)( (((__u16)((up->len)) & (__u16)0x00ffU) << 8) | (((__u16)((up->len)) & (__u16)0xff00U) >> 8))) : __fswab16((up->len))));
  600| uh->check = 0;
  601|
  602| if (is_udplite)
  603|  csum = udplite_csum_outgoing(sk, skb);
  604|
  605| else if (sk->sk_no_check == 1) {
  606|
  607|  skb->ip_summed = 0;
  608|  goto send;
  609|
  610| } else if (skb->ip_summed == 3) {
  611|
  612|  udp4_hwcsum_outgoing(sk, skb, fl->nl_u.ip4_u.saddr, fl->nl_u.ip4_u.daddr, up->len);
  613|  goto send;
  614|
  615| } else
  616|  csum = udp_csum_outgoing(sk, skb);
  617|
  618|
  619| uh->check = csum_tcpudp_magic(fl->nl_u.ip4_u.saddr, fl->nl_u.ip4_u.daddr, up->len,
  620|          sk->sk_protocol, csum);
  621| if (uh->check == 0)
  622|  uh->check = (( __sum16)0xffff);
  623|
  624|send:
  625| err = ip_push_pending_frames(sk);
  626| if (err) {
  627|  if (err == -105 && !inet->recverr) {
  628|   do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) { case 1:
  629| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
  630|   err = 0;
  631|  }
  632| } else
  633|  do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) { case 1:
  634| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_OUTDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
  635|out:
  636| up->len = 0;
  637| up->pending = 0;
  638| return err;
  639|}
  640|
  641|int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
  642|  size_t len)
  643|{
  644| struct inet_sock *inet = inet_sk(sk);
  645| struct udp_sock *up = udp_sk(sk);
  646| int ulen = len;
  647| struct ipcm_cookie ipc;
  648| struct rtable *rt = ((void *)0);
  649| int free = 0;
  650| int connected = 0;
  651| __be32 daddr, faddr, saddr;
  652| __be16 dport;
  653| u8 tos;
  654| int err, is_udplite = (udp_sk(sk)->pcflag);
  655| int corkreq = up->corkflag || msg->msg_flags&0x8000;
  656| int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
  657|
  658| if (len > 0xFFFF)
  659|  return -90;
  660|
  661|
  662|
  663|
  664|
  665| if (msg->msg_flags & 1)
  666|  return -95;
  667|
  668| ipc.opt = ((void *)0);
  669| ipc.tx_flags = 0;
  670|
  671| if (up->pending) {
  672|
  673|
  674|
  675|
  676|  lock_sock(sk);
  677|  if (up->pending) {
  678|   if (up->pending != 2) {
  679|    release_sock(sk);
  680|    return -22;
  681|   }
  682|   goto do_append_data;
  683|  }
  684|  release_sock(sk);
  685| }
  686| ulen += sizeof(struct udphdr);
  687|
  688|
  689|
  690|
  691| if (msg->msg_name) {
  692|  struct sockaddr_in * usin = (struct sockaddr_in *)msg->msg_name;
  693|  if (msg->msg_namelen < sizeof(*usin))
  694|   return -22;
  695|  if (usin->sin_family != 2) {
  696|   if (usin->sin_family != 0)
  697|    return -97;
  698|  }
  699|
  700|  daddr = usin->sin_addr.s_addr;
  701|  dport = usin->sin_port;
  702|  if (dport == 0)
  703|   return -22;
  704| } else {
  705|  if (sk->__sk_common.skc_state != TCP_ESTABLISHED)
  706|   return -89;
  707|  daddr = inet->inet_daddr;
  708|  dport = inet->inet_dport;
  709|
  710|
  711|
  712|  connected = 1;
  713| }
  714| ipc.addr = inet->inet_saddr;
  715|
  716| ipc.oif = sk->__sk_common.skc_bound_dev_if;
  717| err = sock_tx_timestamp(sk, &ipc.tx_flags);
  718| if (err)
  719|  return err;
  720| if (msg->msg_controllen) {
  721|  err = ip_cmsg_send(sock_net(sk), msg, &ipc);
  722|  if (err)
  723|   return err;
  724|  if (ipc.opt)
  725|   free = 1;
  726|  connected = 0;
  727| }
  728| if (!ipc.opt)
  729|  ipc.opt = inet->opt;
  730|
  731| saddr = ipc.addr;
  732| ipc.addr = faddr = daddr;
  733|
  734| if (ipc.opt && ipc.opt->srr) {
  735|  if (!daddr)
  736|   return -22;
  737|  faddr = ipc.opt->faddr;
  738|  connected = 0;
  739| }
  740| tos = ((inet->tos)&0x1E);
  741| if (sock_flag(sk, SOCK_LOCALROUTE) ||
  742|     (msg->msg_flags & 4) ||
  743|     (ipc.opt && ipc.opt->is_strictroute)) {
  744|  tos |= 0x01;
  745|  connected = 0;
  746| }
  747|
  748| if (ipv4_is_multicast(daddr)) {
  749|  if (!ipc.oif)
  750|   ipc.oif = inet->mc_index;
  751|  if (!saddr)
  752|   saddr = inet->mc_addr;
  753|  connected = 0;
  754| }
  755|
  756| if (connected)
  757|  rt = (struct rtable *)sk_dst_check(sk, 0);
  758|
  759| if (rt == ((void *)0)) {
  760|  struct flowi fl = { .oif = ipc.oif,
  761|        .mark = sk->sk_mark,
  762|        .nl_u.ip4_u.daddr = faddr,
  763|        .nl_u.ip4_u.saddr = saddr,
  764|        .nl_u.ip4_u.tos = tos,
  765|        .proto = sk->sk_protocol,
  766|        .flags = inet_sk_flowi_flags(sk),
  767|        .uli_u.ports.sport = inet->inet_sport,
  768|        .uli_u.ports.dport = dport };
  769|  struct net *net = sock_net(sk);
  770|
  771|  security_sk_classify_flow(sk, &fl);
  772|  err = ip_route_output_flow(net, &rt, &fl, sk, 1);
  773|  if (err) {
  774|   if (err == -101)
  775|    do { do { const void *__vpp_verify = (typeof(&((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) { case 1: do { typedef typeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.ip_statistics[0]->mibs[IPSTATS_MIB_OUTNOROUTES])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0);
  776|   goto out;
  777|  }
  778|
  779|  err = -13;
  780|  if ((rt->rt_flags & 0x10000000) &&
  781|      !sock_flag(sk, SOCK_BROADCAST))
  782|   goto out;
  783|  if (connected)
  784|   sk_dst_set(sk, dst_clone(&rt->dst));
  785| }
  786|
  787| if (msg->msg_flags&0x800)
  788|  goto do_confirm;
  789|back_from_confirm:
  790|
  791| saddr = rt->rt_src;
  792| if (!ipc.addr)
  793|  daddr = ipc.addr = rt->rt_dst;
  794|
  795| lock_sock(sk);
  796| if (up->pending) {
  797|
  798|
  799|  release_sock(sk);
  800|
  801|  do { if (net_msg_warn && net_ratelimit()) printk("<7>" "udp cork app bug 2\n"); } while(0);
  802|  err = -22;
  803|  goto out;
  804| }
  805|
  806|
  807|
  808| inet->cork.fl.nl_u.ip4_u.daddr = daddr;
  809| inet->cork.fl.uli_u.ports.dport = dport;
  810| inet->cork.fl.nl_u.ip4_u.saddr = saddr;
  811| inet->cork.fl.uli_u.ports.sport = inet->inet_sport;
  812| up->pending = 2;
  813|
  814|do_append_data:
  815| up->len += ulen;
  816| getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag;
  817| err = ip_append_data(sk, getfrag, msg->msg_iov, ulen,
  818|   sizeof(struct udphdr), &ipc, &rt,
  819|   corkreq ? msg->msg_flags|0x8000 : msg->msg_flags);
  820| if (err)
  821|  udp_flush_pending_frames(sk);
  822| else if (!corkreq)
  823|  err = udp_push_pending_frames(sk);
  824| else if (skb_queue_empty(&sk->sk_write_queue))
  825|  up->pending = 0;
  826| release_sock(sk);
  827|
  828|out:
  829| ip_rt_put(rt);
  830| if (free)
  831|  kfree(ipc.opt);
  832| if (!err)
  833|  return len;
  834|
  835|
  836|
  837|
  838|
  839|
  840|
  841| if (err == -105 || (__builtin_constant_p((2)) ? constant_test_bit((2), (&sk->sk_socket->flags)) : variable_test_bit((2), (&sk->sk_socket->flags)))) {
  842|  do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) { case 1:
  843| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_SNDBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
  844| }
  845| return err;
  846|
  847|do_confirm:
  848| dst_confirm(&rt->dst);
  849| if (!(msg->msg_flags&0x10) || len)
  850|  goto back_from_confirm;
  851| err = 0;
  852| goto out;
  853|}
  854|extern typeof(udp_sendmsg) udp_sendmsg; extern void *__crc_udp_sendmsg ; static const unsigned long __kcrctab_udp_sendmsg = (unsigned long) &__crc_udp_sendmsg; static const char __kstrtab_udp_sendmsg[] = "" "udp_sendmsg"; static const struct kernel_symbol __ksymtab_udp_sendmsg = { (unsigned long)&udp_sendmsg, __kstrtab_udp_sendmsg };
  855|
  856|int udp_sendpage(struct sock *sk, struct page *page, int offset,
  857|   size_t size, int flags)
  858|{
  859| struct udp_sock *up = udp_sk(sk);
  860| int ret;
  861|
  862| if (!up->pending) {
  863|  struct msghdr msg = { .msg_flags = flags|0x8000 };
  864|
  865|
  866|
  867|
  868|
  869|  ret = udp_sendmsg(((void *)0), sk, &msg, 0);
  870|  if (ret < 0)
  871|   return ret;
  872| }
  873|
  874| lock_sock(sk);
  875|
  876| if (!up->pending) {
  877|  release_sock(sk);
  878|
  879|  do { if (net_msg_warn && net_ratelimit()) printk("<7>" "udp cork app bug 3\n"); } while(0);
  880|  return -22;
  881| }
  882|
  883| ret = ip_append_page(sk, page, offset, size, flags);
  884| if (ret == -95) {
  885|  release_sock(sk);
  886|  return sock_no_sendpage(sk->sk_socket, page, offset,
  887|     size, flags);
  888| }
  889| if (ret < 0) {
  890|  udp_flush_pending_frames(sk);
  891|  goto out;
  892| }
  893|
  894| up->len += size;
  895| if (!(up->corkflag || (flags&0x8000)))
  896|  ret = udp_push_pending_frames(sk);
  897| if (!ret)
  898|  ret = size;
  899|out:
  900| release_sock(sk);
  901| return ret;
  902|}
  903|static unsigned int first_packet_length(struct sock *sk)
  904|{
  905| struct sk_buff_head list_kill, *rcvq = &sk->sk_receive_queue;
  906| struct sk_buff *skb;
  907| unsigned int res;
  908|
  909| __skb_queue_head_init(&list_kill);
  910|
  911| __st_spin_lock_bh_st__(&rcvq->lock);
  912| while ((skb = skb_peek(rcvq)) != ((void *)0) &&
  913|  udp_lib_checksum_complete(skb)) {
  914|  do { if ((udp_sk(sk)->pcflag)) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1:
  915| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
  916|  atomic_inc(&sk->sk_drops);
  917|  __skb_unlink(skb, rcvq);
  918|  __skb_queue_tail(&list_kill, skb);
  919| }
  920| res = skb ? skb->len : 0;
  921| __st_spin_unlock_bh_st__(&rcvq->lock);
  922|
  923| if (!skb_queue_empty(&list_kill)) {
  924|  bool slow = lock_sock_fast(sk);
  925|
  926|  __skb_queue_purge(&list_kill);
  927|  sk_mem_reclaim_partial(sk);
  928|  unlock_sock_fast(sk, slow);
  929| }
  930| return res;
  931|}
  932|
  933|
  934|
  935|
  936|
  937|int udp_ioctl(struct sock *sk, int cmd, unsigned long arg)
  938|{
  939| switch (cmd) {
  940| case 0x5411:
  941| {
  942|  int amount = sk_wmem_alloc_get(sk);
  943|
  944|  return __st_put_user_st__(amount, (int *)arg);
  945| }
  946|
  947| case 0x541B:
  948| {
  949|  unsigned int amount = first_packet_length(sk);
  950|
  951|  if (amount)
  952|
  953|
  954|
  955|
  956|
  957|   amount -= sizeof(struct udphdr);
  958|
  959|  return __st_put_user_st__(amount, (int *)arg);
  960| }
  961|
  962| default:
  963|  return -515;
  964| }
  965|
  966| return 0;
  967|}
  968|extern typeof(udp_ioctl) udp_ioctl; extern void *__crc_udp_ioctl ; static const unsigned long __kcrctab_udp_ioctl = (unsigned long) &__crc_udp_ioctl; static const char __kstrtab_udp_ioctl[] = "" "udp_ioctl"; static const struct kernel_symbol __ksymtab_udp_ioctl = { (unsigned long)&udp_ioctl, __kstrtab_udp_ioctl };
  969|
  970|
  971|
  972|
  973|
  974|
  975|int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
  976|  size_t len, int noblock, int flags, int *addr_len)
  977|{
  978| struct inet_sock *inet = inet_sk(sk);
  979| struct sockaddr_in *sin = (struct sockaddr_in *)msg->msg_name;
  980| struct sk_buff *skb;
  981| unsigned int ulen;
  982| int peeked;
  983| int err;
  984| int is_udplite = (udp_sk(sk)->pcflag);
  985| bool slow;
  986|
  987|
  988|
  989|
  990| if (addr_len)
  991|  *addr_len = sizeof(*sin);
  992|
  993| if (flags & 0x2000)
  994|  return ip_recv_error(sk, msg, len);
  995|
  996|try_again:
  997| skb = __skb_recv_datagram(sk, flags | (noblock ? 0x40 : 0),
  998|      &peeked, &err);
  999| if (!skb)
 1000|  goto out;
 1001|
 1002| ulen = skb->len - sizeof(struct udphdr);
 1003| if (len > ulen)
 1004|  len = ulen;
 1005| else if (len < ulen)
 1006|  msg->msg_flags |= 0x20;
 1007|
 1008|
 1009|
 1010|
 1011|
 1012|
 1013|
 1014| if (len < ulen || ((struct udp_skb_cb *)((skb)->cb))->partial_cov) {
 1015|  if (udp_lib_checksum_complete(skb))
 1016|   goto csum_copy_err;
 1017| }
 1018|
 1019| if (skb_csum_unnecessary(skb))
 1020|  err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
 1021|           msg->msg_iov, len);
 1022| else {
 1023|  err = skb_copy_and_csum_datagram_iovec(skb,
 1024|             sizeof(struct udphdr),
 1025|             msg->msg_iov);
 1026|
 1027|  if (err == -22)
 1028|   goto csum_copy_err;
 1029| }
 1030|
 1031| if (err)
 1032|  goto out_free;
 1033|
 1034| if (!peeked)
 1035|  do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) { case 1:
 1036| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1037|
 1038| sock_recv_ts_and_drops(msg, sk, skb);
 1039|
 1040|
 1041| if (sin) {
 1042|  sin->sin_family = 2;
 1043|  sin->sin_port = udp_hdr(skb)->source;
 1044|  sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
 1045|  __st_memset_st__(sin->__pad, 0, sizeof(sin->__pad));
 1046| }
 1047| if (inet->cmsg_flags)
 1048|  ip_cmsg_recv(msg, skb);
 1049|
 1050| err = len;
 1051| if (flags & 0x20)
 1052|  err = ulen;
 1053|
 1054|out_free:
 1055| skb_free_datagram_locked(sk, skb);
 1056|out:
 1057| return err;
 1058|
 1059|csum_copy_err:
 1060| slow = lock_sock_fast(sk);
 1061| if (!skb_kill_datagram(sk, skb, flags))
 1062|  do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[1]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1063| unlock_sock_fast(sk, slow);
 1064|
 1065| if (noblock)
 1066|  return -11;
 1067| goto try_again;
 1068|}
 1069|
 1070|
 1071|int udp_disconnect(struct sock *sk, int flags)
 1072|{
 1073| struct inet_sock *inet = inet_sk(sk);
 1074|
 1075|
 1076|
 1077|
 1078| sk->__sk_common.skc_state = TCP_CLOSE;
 1079| inet->inet_daddr = 0;
 1080| inet->inet_dport = 0;
 1081| sock_rps_save_rxhash(sk, 0);
 1082| sk->__sk_common.skc_bound_dev_if = 0;
 1083| if (!(sk->sk_userlocks & 4))
 1084|  inet_reset_saddr(sk);
 1085|
 1086| if (!(sk->sk_userlocks & 8)) {
 1087|  sk->__sk_common.skc_prot->unhash(sk);
 1088|  inet->inet_sport = 0;
 1089| }
 1090| sk_dst_reset(sk);
 1091| return 0;
 1092|}
 1093|extern typeof(udp_disconnect) udp_disconnect; extern void *__crc_udp_disconnect ; static const unsigned long __kcrctab_udp_disconnect = (unsigned long) &__crc_udp_disconnect; static const char __kstrtab_udp_disconnect[] = "" "udp_disconnect"; static const struct kernel_symbol __ksymtab_udp_disconnect = { (unsigned long)&udp_disconnect, __kstrtab_udp_disconnect };
 1094|
 1095|void udp_lib_unhash(struct sock *sk)
 1096|{
 1097| if (sk_hashed(sk)) {
 1098|  struct udp_table *udptable = sk->__sk_common.skc_prot->h.udp_table;
 1099|  struct udp_hslot *hslot, *hslot2;
 1100|
 1101|  hslot = udp_hashslot(udptable, sock_net(sk),
 1102|          udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[0]);
 1103|  hslot2 = udp_hashslot2(udptable, udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1]);
 1104|
 1105|  __st_spin_lock_bh_st__(&hslot->lock);
 1106|  if (sk_nulls_del_node_init_rcu(sk)) {
 1107|   hslot->count--;
 1108|   inet_sk(sk)->inet_num = 0;
 1109|   sock_prot_inuse_add(sock_net(sk), sk->__sk_common.skc_prot, -1);
 1110|
 1111|   __st_spin_lock_st__(&hslot2->lock);
 1112|   hlist_nulls_del_init_rcu(&udp_sk(sk)->inet.sk.__sk_common.skc_portaddr_node);
 1113|   hslot2->count--;
 1114|   __st_spin_unlock_st__(&hslot2->lock);
 1115|  }
 1116|  __st_spin_unlock_bh_st__(&hslot->lock);
 1117| }
 1118|}
 1119|extern typeof(udp_lib_unhash) udp_lib_unhash; extern void *__crc_udp_lib_unhash ; static const unsigned long __kcrctab_udp_lib_unhash = (unsigned long) &__crc_udp_lib_unhash; static const char __kstrtab_udp_lib_unhash[] = "" "udp_lib_unhash"; static const struct kernel_symbol __ksymtab_udp_lib_unhash = { (unsigned long)&udp_lib_unhash, __kstrtab_udp_lib_unhash };
 1120|
 1121|
 1122|
 1123|
 1124|void udp_lib_rehash(struct sock *sk, u16 newhash)
 1125|{
 1126| if (sk_hashed(sk)) {
 1127|  struct udp_table *udptable = sk->__sk_common.skc_prot->h.udp_table;
 1128|  struct udp_hslot *hslot, *hslot2, *nhslot2;
 1129|
 1130|  hslot2 = udp_hashslot2(udptable, udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1]);
 1131|  nhslot2 = udp_hashslot2(udptable, newhash);
 1132|  udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[1] = newhash;
 1133|  if (hslot2 != nhslot2) {
 1134|   hslot = udp_hashslot(udptable, sock_net(sk),
 1135|          udp_sk(sk)->inet.sk.__sk_common.skc_u16hashes[0]);
 1136|
 1137|   __st_spin_lock_bh_st__(&hslot->lock);
 1138|
 1139|   __st_spin_lock_st__(&hslot2->lock);
 1140|   hlist_nulls_del_init_rcu(&udp_sk(sk)->inet.sk.__sk_common.skc_portaddr_node);
 1141|   hslot2->count--;
 1142|   __st_spin_unlock_st__(&hslot2->lock);
 1143|
 1144|   __st_spin_lock_st__(&nhslot2->lock);
 1145|   hlist_nulls_add_head_rcu(&udp_sk(sk)->inet.sk.__sk_common.skc_portaddr_node,
 1146|       &nhslot2->head);
 1147|   nhslot2->count++;
 1148|   __st_spin_unlock_st__(&nhslot2->lock);
 1149|
 1150|   __st_spin_unlock_bh_st__(&hslot->lock);
 1151|  }
 1152| }
 1153|}
 1154|extern typeof(udp_lib_rehash) udp_lib_rehash; extern void *__crc_udp_lib_rehash ; static const unsigned long __kcrctab_udp_lib_rehash = (unsigned long) &__crc_udp_lib_rehash; static const char __kstrtab_udp_lib_rehash[] = "" "udp_lib_rehash"; static const struct kernel_symbol __ksymtab_udp_lib_rehash = { (unsigned long)&udp_lib_rehash, __kstrtab_udp_lib_rehash };
 1155|
 1156|static void udp_v4_rehash(struct sock *sk)
 1157|{
 1158| u16 new_hash = udp4_portaddr_hash(sock_net(sk),
 1159|       inet_sk(sk)->inet_rcv_saddr,
 1160|       inet_sk(sk)->inet_num);
 1161| udp_lib_rehash(sk, new_hash);
 1162|}
 1163|
 1164|static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
 1165|{
 1166| int rc;
 1167|
 1168| if (inet_sk(sk)->inet_daddr)
 1169|  sock_rps_save_rxhash(sk, skb->rxhash);
 1170|
 1171| rc = ip_queue_rcv_skb(sk, skb);
 1172| if (rc < 0) {
 1173|  int is_udplite = (udp_sk(sk)->pcflag);
 1174|
 1175|
 1176|  if (rc == -12)
 1177|   do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) { case 1:
 1178| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1179|  do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1180|  kfree_skb(skb);
 1181|  return -1;
 1182| }
 1183|
 1184| return 0;
 1185|
 1186|}
 1187|int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
 1188|{
 1189| struct udp_sock *up = udp_sk(sk);
 1190| int rc;
 1191| int is_udplite = (udp_sk(sk)->pcflag);
 1192|
 1193|
 1194|
 1195|
 1196| if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
 1197|  goto drop;
 1198| nf_reset(skb);
 1199|
 1200| if (up->encap_type) {
 1201|  if (skb->len > sizeof(struct udphdr) &&
 1202|      up->encap_rcv != ((void *)0)) {
 1203|   int ret;
 1204|
 1205|   ret = (*up->encap_rcv)(sk, skb);
 1206|   if (ret <= 0) {
 1207|    do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) { case 1:
 1208|
 1209| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INDATAGRAMS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1210|    return -ret;
 1211|   }
 1212|  }
 1213|
 1214|
 1215| }
 1216|
 1217|
 1218|
 1219|
 1220| if ((is_udplite & 0x4) && ((struct udp_skb_cb *)((skb)->cb))->partial_cov) {
 1221|  if (up->pcrlen == 0) {
 1222|   do { if (net_msg_warn && net_ratelimit()) printk("<4>" "UDPLITE: partial coverage " "%d while full coverage %d requested\n", ((struct udp_skb_cb *)((skb)->cb))->cscov, skb->len); } while(0)
 1223|
 1224|                                     ;
 1225|   goto drop;
 1226|  }
 1227|
 1228|
 1229|
 1230|
 1231|
 1232|
 1233|  if (((struct udp_skb_cb *)((skb)->cb))->cscov < up->pcrlen) {
 1234|   do { if (net_msg_warn && net_ratelimit()) printk("<4>" "UDPLITE: coverage %d too small, need min %d\n", ((struct udp_skb_cb *)((skb)->cb))->cscov, up->pcrlen); } while(0)
 1235|
 1236|                                       ;
 1237|   goto drop;
 1238|  }
 1239| }
 1240|
 1241| if (({ typeof(*(sk->sk_filter)) *_________p1 = (typeof(*(sk->sk_filter))* )(*(volatile typeof((sk->sk_filter)) *)&((sk->sk_filter))); do { static bool __warned; if (debug_lockdep_rcu_enabled() && !__warned && !(rcu_read_lock_held() || (1))) { __warned = true; lockdep_rcu_dereference("net/ipv4/.tmp_udp.o.armored.c", 1414); } } while (0); ; do { } while (0); ((typeof(*(sk->sk_filter)) *)(_________p1)); })) {
 1242|  if (udp_lib_checksum_complete(skb))
 1243|   goto drop;
 1244| }
 1245|
 1246|
 1247| if (sk_rcvqueues_full(sk, skb))
 1248|  goto drop;
 1249|
 1250| rc = 0;
 1251|
 1252| spin_lock(&((sk)->sk_lock.slock));
 1253| if (!((sk)->sk_lock.owned))
 1254|  rc = __udp_queue_rcv_skb(sk, skb);
 1255| else if (sk_add_backlog(sk, skb)) {
 1256|  spin_unlock(&((sk)->sk_lock.slock));
 1257|  goto drop;
 1258| }
 1259| spin_unlock(&((sk)->sk_lock.slock));
 1260|
 1261| return rc;
 1262|
 1263|drop:
 1264| do { if (is_udplite) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1265| atomic_inc(&sk->sk_drops);
 1266| kfree_skb(skb);
 1267| return -1;
 1268|}
 1269|
 1270|
 1271|static void flush_stack(struct sock **stack, unsigned int count,
 1272|   struct sk_buff *skb, unsigned int final)
 1273|{
 1274| unsigned int i;
 1275| struct sk_buff *skb1 = ((void *)0);
 1276| struct sock *sk;
 1277|
 1278| for (i = 0; i < count; i++) {
 1279|  sk = stack[i];
 1280|  if (skb1 == ((void *)0))
 1281|   skb1 = (i == final) ? skb : skb_clone(skb, ((( gfp_t)0x20u)));
 1282|
 1283|  if (!skb1) {
 1284|   atomic_inc(&sk->sk_drops);
 1285|   do { if ((udp_sk(sk)->pcflag)) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) { case 1:
 1286| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_RCVBUFERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1287|   do { if ((udp_sk(sk)->pcflag)) do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1:
 1288| do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((sock_net(sk))->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1289|  }
 1290|
 1291|  if (skb1 && udp_queue_rcv_skb(sk, skb1) <= 0)
 1292|   skb1 = ((void *)0);
 1293| }
 1294| if (skb1)
 1295|  kfree_skb(skb1);
 1296|}
 1297|
 1298|
 1299|
 1300|
 1301|
 1302|
 1303|static int __udp4_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
 1304|        struct udphdr *uh,
 1305|        __be32 saddr, __be32 daddr,
 1306|        struct udp_table *udptable)
 1307|{
 1308| struct sock *sk, *stack[256 / sizeof(struct sock *)];
 1309| struct udp_hslot *hslot = udp_hashslot(udptable, net, (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->dest))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->dest))));
 1310| int dif;
 1311| unsigned int i, count = 0;
 1312|
 1313| __st_spin_lock_st__(&hslot->lock);
 1314| sk = sk_nulls_head(&hslot->head);
 1315| dif = skb->dev->ifindex;
 1316| sk = udp_v4_mcast_next(net, sk, uh->dest, daddr, uh->source, saddr, dif);
 1317| while (sk) {
 1318|  stack[count++] = sk;
 1319|  sk = udp_v4_mcast_next(net, sk_nulls_next(sk), uh->dest,
 1320|           daddr, uh->source, saddr, dif);
 1321|  if (count == (sizeof(stack) / sizeof((stack)[0]) + (sizeof(struct { int:-!!(0); })))) {
 1322|   if (!sk)
 1323|    break;
 1324|   flush_stack(stack, count, skb, ~0);
 1325|   count = 0;
 1326|  }
 1327| }
 1328|
 1329|
 1330|
 1331| for (i = 0; i < count; i++)
 1332|  sock_hold(stack[i]);
 1333|
 1334| __st_spin_unlock_st__(&hslot->lock);
 1335|
 1336|
 1337|
 1338|
 1339| if (count) {
 1340|  flush_stack(stack, count, skb, count - 1);
 1341|
 1342|  for (i = 0; i < count; i++)
 1343|   sock_put(stack[i]);
 1344| } else {
 1345|  kfree_skb(skb);
 1346| }
 1347| return 0;
 1348|}
 1349|
 1350|
 1351|
 1352|
 1353|
 1354|
 1355|static inline int udp4_csum_init(struct sk_buff *skb, struct udphdr *uh,
 1356|     int proto)
 1357|{
 1358| const struct iphdr *iph;
 1359| int err;
 1360|
 1361| ((struct udp_skb_cb *)((skb)->cb))->partial_cov = 0;
 1362| ((struct udp_skb_cb *)((skb)->cb))->cscov = skb->len;
 1363|
 1364| if (proto == IPPROTO_UDPLITE) {
 1365|  err = udplite_checksum_init(skb, uh);
 1366|  if (err)
 1367|   return err;
 1368| }
 1369|
 1370| iph = ip_hdr(skb);
 1371| if (uh->check == 0) {
 1372|  skb->ip_summed = 1;
 1373| } else if (skb->ip_summed == 2) {
 1374|  if (!csum_tcpudp_magic(iph->saddr, iph->daddr, skb->len,
 1375|          proto, skb->csum))
 1376|   skb->ip_summed = 1;
 1377| }
 1378| if (!skb_csum_unnecessary(skb))
 1379|  skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr,
 1380|            skb->len, proto, 0);
 1381|
 1382|
 1383|
 1384|
 1385| return 0;
 1386|}
 1387|
 1388|
 1389|
 1390|
 1391|
 1392|int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
 1393|     int proto)
 1394|{
 1395| struct sock *sk;
 1396| struct udphdr *uh;
 1397| unsigned short ulen;
 1398| struct rtable *rt = skb_rtable(skb);
 1399| __be32 saddr, daddr;
 1400| struct net *net = dev_net(skb->dev);
 1401|
 1402|
 1403|
 1404|
 1405| if (!pskb_may_pull(skb, sizeof(struct udphdr)))
 1406|  goto drop;
 1407|
 1408| uh = udp_hdr(skb);
 1409| ulen = (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->len))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->len)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->len)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->len)));
 1410| saddr = ip_hdr(skb)->saddr;
 1411| daddr = ip_hdr(skb)->daddr;
 1412|
 1413| if (ulen > skb->len)
 1414|  goto short_packet;
 1415|
 1416| if (proto == IPPROTO_UDP) {
 1417|
 1418|  if (ulen < sizeof(*uh) || pskb_trim_rcsum(skb, ulen))
 1419|   goto short_packet;
 1420|  uh = udp_hdr(skb);
 1421| }
 1422|
 1423| if (udp4_csum_init(skb, uh, proto))
 1424|  goto csum_error;
 1425|
 1426| if (rt->rt_flags & (0x10000000|0x20000000))
 1427|  return __udp4_lib_mcast_deliver(net, skb, uh,
 1428|    saddr, daddr, udptable);
 1429|
 1430| sk = __udp4_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
 1431|
 1432| if (sk != ((void *)0)) {
 1433|  int ret = udp_queue_rcv_skb(sk, skb);
 1434|  sock_put(sk);
 1435|
 1436|
 1437|
 1438|
 1439|  if (ret > 0)
 1440|   return -ret;
 1441|  return 0;
 1442| }
 1443|
 1444| if (!xfrm4_policy_check(((void *)0), XFRM_POLICY_IN, skb))
 1445|  goto drop;
 1446| nf_reset(skb);
 1447|
 1448|
 1449| if (udp_lib_checksum_complete(skb))
 1450|  goto csum_error;
 1451|
 1452| do { if (proto == IPPROTO_UDPLITE) do { do { const void *__vpp_verify = (typeof(&((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) { case 1: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) { case 1: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_NOPORTS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1453| icmp_send(skb, 3, 3, 0);
 1454|
 1455|
 1456|
 1457|
 1458|
 1459| kfree_skb(skb);
 1460| return 0;
 1461|
 1462|short_packet:
 1463| do { if (net_msg_warn && net_ratelimit()) printk("<7>" "UDP%s: short packet: From %pI4:%u %d/%d to %pI4:%u\n", proto == IPPROTO_UDPLITE ? "-Lite" : "", &saddr, (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->source))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->source)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->source)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->source))), ulen, skb->len, &daddr, (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->dest))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->dest)))); } while(0)
 1464|
 1465|
 1466|
 1467|
 1468|
 1469|
 1470|                         ;
 1471| goto drop;
 1472|
 1473|csum_error:
 1474|
 1475|
 1476|
 1477|
 1478| do { if (net_msg_warn && net_ratelimit()) printk("<7>" "UDP%s: bad checksum. From %pI4:%u to %pI4:%u ulen %d\n", proto == IPPROTO_UDPLITE ? "-Lite" : "", &saddr, (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->source))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->source)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->source)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->source))), &daddr, (__builtin_constant_p((__u16)(( __u16)(__be16)(uh->dest))) ? ((__u16)( (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(uh->dest)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(uh->dest))), ulen); } while(0)
 1479|
 1480|
 1481|
 1482|
 1483|
 1484|              ;
 1485|drop:
 1486| do { if (proto == IPPROTO_UDPLITE) do { do { const void *__vpp_verify = (typeof(&((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udplite_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); else do { do { const void *__vpp_verify = (typeof(&((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))))((void *)0); (void)__vpp_verify; } while (0); switch(sizeof((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) { case 1: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 2: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 4: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; case 8: do { typedef typeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) pao_T__; const int pao_ID__ = (__builtin_constant_p((1)) && (((1)) == 1 || ((1)) == -1)) ? ((1)) : 0; if (0) { pao_T__ pao_tmp__; pao_tmp__ = ((1)); (void)pao_tmp__; } switch (sizeof(((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))) { case 1: if (pao_ID__ == 1) asm("incb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decb ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addb %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "qi" ((pao_T__)((1)))); break; case 2: if (pao_ID__ == 1) asm("incw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decw ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addw %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 4: if (pao_ID__ == 1) asm("incl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decl ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addl %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "ri" ((pao_T__)((1)))); break; case 8: if (pao_ID__ == 1) asm("incq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else if (pao_ID__ == -1) asm("decq ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS]))))); else asm("addq %1, ""%%""gs"":%P" "0" : "+m" (((((net)->mib.udp_statistics[0]->mibs[UDP_MIB_INERRORS])))) : "re" ((pao_T__)((1)))); break; default: __bad_percpu_size(); } } while (0);break; default: __bad_size_call_parameter();break; } } while (0); } while(0);
 1487| kfree_skb(skb);
 1488| return 0;
 1489|}
 1490|
 1491|int udp_rcv(struct sk_buff *skb)
 1492|{
 1493| return __udp4_lib_rcv(skb, &udp_table, IPPROTO_UDP);
 1494|}
 1495|
 1496|void udp_destroy_sock(struct sock *sk)
 1497|{
 1498| bool slow = lock_sock_fast(sk);
 1499| udp_flush_pending_frames(sk);
 1500| unlock_sock_fast(sk, slow);
 1501|}
 1502|
 1503|
 1504|
 1505|
 1506|int udp_lib_setsockopt(struct sock *sk, int level, int optname,
 1507|         char *optval, unsigned int optlen,
 1508|         int (*push_pending_frames)(struct sock *))
 1509|{
 1510| struct udp_sock *up = udp_sk(sk);
 1511| int val;
 1512| int err = 0;
 1513| int is_udplite = (udp_sk(sk)->pcflag);
 1514|
 1515| if (optlen < sizeof(int))
 1516|  return -22;
 1517|
 1518| if (__st_get_user_st__(val, (int *)optval))
 1519|  return -14;
 1520|
 1521| switch (optname) {
 1522| case 1:
 1523|  if (val != 0) {
 1524|   up->corkflag = 1;
 1525|  } else {
 1526|   up->corkflag = 0;
 1527|   lock_sock(sk);
 1528|   (*push_pending_frames)(sk);
 1529|   release_sock(sk);
 1530|  }
 1531|  break;
 1532|
 1533| case 100:
 1534|  switch (val) {
 1535|  case 0:
 1536|  case 2:
 1537|  case 1:
 1538|   up->encap_rcv = xfrm4_udp_encap_rcv;
 1539|
 1540|  case 3:
 1541|   up->encap_type = val;
 1542|   break;
 1543|  default:
 1544|   err = -92;
 1545|   break;
 1546|  }
 1547|  break;
 1548|
 1549|
 1550|
 1551|
 1552|
 1553|
 1554| case 10:
 1555|  if (!is_udplite)
 1556|   return -92;
 1557|  if (val != 0 && val < 8)
 1558|   val = 8;
 1559|  else if (val > ((u16)(~0U)))
 1560|   val = ((u16)(~0U));
 1561|  up->pcslen = val;
 1562|  up->pcflag |= 0x2;
 1563|  break;
 1564|
 1565|
 1566|
 1567|
 1568| case 11:
 1569|  if (!is_udplite)
 1570|   return -92;
 1571|  if (val != 0 && val < 8)
 1572|   val = 8;
 1573|  else if (val > ((u16)(~0U)))
 1574|   val = ((u16)(~0U));
 1575|  up->pcrlen = val;
 1576|  up->pcflag |= 0x4;
 1577|  break;
 1578|
 1579| default:
 1580|  err = -92;
 1581|  break;
 1582| }
 1583|
 1584| return err;
 1585|}
 1586|extern typeof(udp_lib_setsockopt) udp_lib_setsockopt; extern void *__crc_udp_lib_setsockopt ; static const unsigned long __kcrctab_udp_lib_setsockopt = (unsigned long) &__crc_udp_lib_setsockopt; static const char __kstrtab_udp_lib_setsockopt[] = "" "udp_lib_setsockopt"; static const struct kernel_symbol __ksymtab_udp_lib_setsockopt = { (unsigned long)&udp_lib_setsockopt, __kstrtab_udp_lib_setsockopt };
 1587|
 1588|int udp_setsockopt(struct sock *sk, int level, int optname,
 1589|     char *optval, unsigned int optlen)
 1590|{
 1591| if (level == 17 || level == 136)
 1592|  return udp_lib_setsockopt(sk, level, optname, optval, optlen,
 1593|       udp_push_pending_frames);
 1594| return ip_setsockopt(sk, level, optname, optval, optlen);
 1595|}
 1596|
 1597|
 1598|int compat_udp_setsockopt(struct sock *sk, int level, int optname,
 1599|     char *optval, unsigned int optlen)
 1600|{
 1601| if (level == 17 || level == 136)
 1602|  return udp_lib_setsockopt(sk, level, optname, optval, optlen,
 1603|       udp_push_pending_frames);
 1604| return compat_ip_setsockopt(sk, level, optname, optval, optlen);
 1605|}
 1606|
 1607|
 1608|int udp_lib_getsockopt(struct sock *sk, int level, int optname,
 1609|         char *optval, int *optlen)
 1610|{
 1611| struct udp_sock *up = udp_sk(sk);
 1612| int val, len;
 1613|
 1614| if (__st_get_user_st__(len, optlen))
 1615|  return -14;
 1616|
 1617| len = ({ unsigned int __min1 = (len); unsigned int __min2 = (sizeof(int)); __min1 < __min2 ? __min1: __min2; });
 1618|
 1619| if (len < 0)
 1620|  return -22;
 1621|
 1622| switch (optname) {
 1623| case 1:
 1624|  val = up->corkflag;
 1625|  break;
 1626|
 1627| case 100:
 1628|  val = up->encap_type;
 1629|  break;
 1630|
 1631|
 1632|
 1633| case 10:
 1634|  val = up->pcslen;
 1635|  break;
 1636|
 1637| case 11:
 1638|  val = up->pcrlen;
 1639|  break;
 1640|
 1641| default:
 1642|  return -92;
 1643| }
 1644|
 1645| if (__st_put_user_st__(len, optlen))
 1646|  return -14;
 1647| if (copy_to_user(optval, &val, len))
 1648|  return -14;
 1649| return 0;
 1650|}
 1651|extern typeof(udp_lib_getsockopt) udp_lib_getsockopt; extern void *__crc_udp_lib_getsockopt ; static const unsigned long __kcrctab_udp_lib_getsockopt = (unsigned long) &__crc_udp_lib_getsockopt; static const char __kstrtab_udp_lib_getsockopt[] = "" "udp_lib_getsockopt"; static const struct kernel_symbol __ksymtab_udp_lib_getsockopt = { (unsigned long)&udp_lib_getsockopt, __kstrtab_udp_lib_getsockopt };
 1652|
 1653|int udp_getsockopt(struct sock *sk, int level, int optname,
 1654|     char *optval, int *optlen)
 1655|{
 1656| if (level == 17 || level == 136)
 1657|  return udp_lib_getsockopt(sk, level, optname, optval, optlen);
 1658| return ip_getsockopt(sk, level, optname, optval, optlen);
 1659|}
 1660|
 1661|
 1662|int compat_udp_getsockopt(struct sock *sk, int level, int optname,
 1663|     char *optval, int *optlen)
 1664|{
 1665| if (level == 17 || level == 136)
 1666|  return udp_lib_getsockopt(sk, level, optname, optval, optlen);
 1667| return compat_ip_getsockopt(sk, level, optname, optval, optlen);
 1668|}
 1669|unsigned int udp_poll(struct file *file, struct socket *sock, poll_table *wait)
 1670|{
 1671| unsigned int mask = datagram_poll(file, sock, wait);
 1672| struct sock *sk = sock->sk;
 1673|
 1674|
 1675| if ((mask & 0x0040) && !(file->f_flags & 00004000) &&
 1676|     !(sk->sk_shutdown & 1) && !first_packet_length(sk))
 1677|  mask &= ~(0x0001 | 0x0040);
 1678|
 1679| return mask;
 1680|
 1681|}
 1682|extern typeof(udp_poll) udp_poll; extern void *__crc_udp_poll ; static const unsigned long __kcrctab_udp_poll = (unsigned long) &__crc_udp_poll; static const char __kstrtab_udp_poll[] = "" "udp_poll"; static const struct kernel_symbol __ksymtab_udp_poll = { (unsigned long)&udp_poll, __kstrtab_udp_poll };
 1683|
 1684|struct proto udp_prot = {
 1685| .name = "UDP",
 1686| .owner = ((struct module *)0),
 1687| .close = udp_lib_close,
 1688| .connect = ip4_datagram_connect,
 1689| .disconnect = udp_disconnect,
 1690| .ioctl = udp_ioctl,
 1691| .destroy = udp_destroy_sock,
 1692| .setsockopt = udp_setsockopt,
 1693| .getsockopt = udp_getsockopt,
 1694| .sendmsg = udp_sendmsg,
 1695| .recvmsg = udp_recvmsg,
 1696| .sendpage = udp_sendpage,
 1697| .backlog_rcv = __udp_queue_rcv_skb,
 1698| .hash = udp_lib_hash,
 1699| .unhash = udp_lib_unhash,
 1700| .rehash = udp_v4_rehash,
 1701| .get_port = udp_v4_get_port,
 1702| .memory_allocated = &udp_memory_allocated,
 1703| .sysctl_mem = sysctl_udp_mem,
 1704| .sysctl_wmem = &sysctl_udp_wmem_min,
 1705| .sysctl_rmem = &sysctl_udp_rmem_min,
 1706| .obj_size = sizeof(struct udp_sock),
 1707| .slab_flags = 0x00080000UL,
 1708| .h.udp_table = &udp_table,
 1709|
 1710| .compat_setsockopt = compat_udp_setsockopt,
 1711| .compat_getsockopt = compat_udp_getsockopt,
 1712|
 1713|};
 1714|extern typeof(udp_prot) udp_prot; extern void *__crc_udp_prot ; static const unsigned long __kcrctab_udp_prot = (unsigned long) &__crc_udp_prot; static const char __kstrtab_udp_prot[] = "" "udp_prot"; static const struct kernel_symbol __ksymtab_udp_prot = { (unsigned long)&udp_prot, __kstrtab_udp_prot };
 1715|
 1716|
 1717|
 1718|
 1719|static struct sock *udp_get_first(struct seq_file *seq, int start)
 1720|{
 1721| struct sock *sk;
 1722| struct udp_iter_state *state = seq->private;
 1723| struct net *net = seq_file_net(seq);
 1724|
 1725| for (state->bucket = start; state->bucket <= state->udp_table->mask;
 1726|      ++state->bucket) {
 1727|  struct hlist_nulls_node *node;
 1728|  struct udp_hslot *hslot = &state->udp_table->hash[state->bucket];
 1729|
 1730|  if (hlist_nulls_empty(&hslot->head))
 1731|   continue;
 1732|
 1733|  __st_spin_lock_bh_st__(&hslot->lock);
     |The lock is locked here. next
 1734|  for (node = (&hslot->head)->first; (!is_a_nulls(node)) && ({ sk = ({ const typeof( ((typeof(*sk) *)0)->__sk_common.skc_nulls_node ) *__mptr = (node); (typeof(*sk) *)( (char *)__mptr - 1 );}); 1;}); node = node->next) {
     |not affected ==> the lock is still locked. prev next
 1735|   if (!net_eq(sock_net(sk), net))
     |not affected ==> the lock is still locked. prev next
 1736|    continue;
 1737|   if (sk->__sk_common.skc_family == state->family)
     |not affected ==> the lock is still locked. prev next
 1738|    goto found;
     |not affected ==> the lock is still locked. prev next
 1739|  }
 1740|  __st_spin_unlock_bh_st__(&hslot->lock);
 1741| }
 1742| sk = ((void *)0);
 1743|found:
 1744| return sk;
     |not affected ==> the lock is still locked. prev next
 1745|}
     |Leaving function in locked state.[& . * hslot lock] prev
 1746|
 1747|static struct sock *udp_get_next(struct seq_file *seq, struct sock *sk)
 1748|{
 1749| struct udp_iter_state *state = seq->private;
 1750| struct net *net = seq_file_net(seq);
 1751|
 1752| do {
 1753|  sk = sk_nulls_next(sk);
 1754| } while (sk && (!net_eq(sock_net(sk), net) || sk->__sk_common.skc_family != state->family));
 1755|
 1756| if (!sk) {
 1757|  if (state->bucket <= state->udp_table->mask)
 1758|   __st_spin_unlock_bh_st__(&state->udp_table->hash[state->bucket].lock);
 1759|  return udp_get_first(seq, state->bucket + 1);
 1760| }
 1761| return sk;
 1762|}
 1763|
 1764|static struct sock *udp_get_idx(struct seq_file *seq, loff_t pos)
 1765|{
 1766| struct sock *sk = udp_get_first(seq, 0);
 1767|
 1768| if (sk)
 1769|  while (pos && (sk = udp_get_next(seq, sk)) != ((void *)0))
 1770|   --pos;
 1771| return pos ? ((void *)0) : sk;
 1772|}
 1773|
 1774|static void *udp_seq_start(struct seq_file *seq, loff_t *pos)
 1775|{
 1776| struct udp_iter_state *state = seq->private;
 1777| state->bucket = 65536;
 1778|
 1779| return *pos ? udp_get_idx(seq, *pos-1) : ((void *)1);
 1780|}
 1781|
 1782|static void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 1783|{
 1784| struct sock *sk;
 1785|
 1786| if (v == ((void *)1))
 1787|  sk = udp_get_idx(seq, 0);
 1788| else
 1789|  sk = udp_get_next(seq, v);
 1790|
 1791| ++*pos;
 1792| return sk;
 1793|}
 1794|
 1795|static void udp_seq_stop(struct seq_file *seq, void *v)
 1796|{
 1797| struct udp_iter_state *state = seq->private;
 1798|
 1799| if (state->bucket <= state->udp_table->mask)
 1800|  __st_spin_unlock_bh_st__(&state->udp_table->hash[state->bucket].lock);
 1801|}
 1802|
 1803|static int udp_seq_open(struct inode *inode, struct file *file)
 1804|{
 1805| struct udp_seq_afinfo *afinfo = PDE(inode)->data;
 1806| struct udp_iter_state *s;
 1807| int err;
 1808|
 1809| err = seq_open_net(inode, file, &afinfo->seq_ops,
 1810|      sizeof(struct udp_iter_state));
 1811| if (err < 0)
 1812|  return err;
 1813|
 1814| s = ((struct seq_file *)file->private_data)->private;
 1815| s->family = afinfo->family;
 1816| s->udp_table = afinfo->udp_table;
 1817| return err;
 1818|}
 1819|
 1820|
 1821|int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo)
 1822|{
 1823| struct proc_dir_entry *p;
 1824| int rc = 0;
 1825|
 1826| afinfo->seq_fops.open = udp_seq_open;
 1827| afinfo->seq_fops.read = seq_read;
 1828| afinfo->seq_fops.llseek = seq_lseek;
 1829| afinfo->seq_fops.release = seq_release_net;
 1830|
 1831| afinfo->seq_ops.start = udp_seq_start;
 1832| afinfo->seq_ops.next = udp_seq_next;
 1833| afinfo->seq_ops.stop = udp_seq_stop;
 1834|
 1835| p = proc_create_data(afinfo->name, (00400|00040|00004), net->proc_net,
 1836|        &afinfo->seq_fops, afinfo);
 1837| if (!p)
 1838|  rc = -12;
 1839| return rc;
 1840|}
 1841|extern typeof(udp_proc_register) udp_proc_register; extern void *__crc_udp_proc_register ; static const unsigned long __kcrctab_udp_proc_register = (unsigned long) &__crc_udp_proc_register; static const char __kstrtab_udp_proc_register[] = "" "udp_proc_register"; static const struct kernel_symbol __ksymtab_udp_proc_register = { (unsigned long)&udp_proc_register, __kstrtab_udp_proc_register };
 1842|
 1843|void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo)
 1844|{
 1845| proc_net_remove(net, afinfo->name);
 1846|}
 1847|extern typeof(udp_proc_unregister) udp_proc_unregister; extern void *__crc_udp_proc_unregister ; static const unsigned long __kcrctab_udp_proc_unregister = (unsigned long) &__crc_udp_proc_unregister; static const char __kstrtab_udp_proc_unregister[] = "" "udp_proc_unregister"; static const struct kernel_symbol __ksymtab_udp_proc_unregister = { (unsigned long)&udp_proc_unregister, __kstrtab_udp_proc_unregister };
 1848|
 1849|
 1850|static void udp4_format_sock(struct sock *sp, struct seq_file *f,
 1851|  int bucket, int *len)
 1852|{
 1853| struct inet_sock *inet = inet_sk(sp);
 1854| __be32 dest = inet->inet_daddr;
 1855| __be32 src = inet->inet_rcv_saddr;
 1856| __u16 destp = (__builtin_constant_p((__u16)(( __u16)(__be16)(inet->inet_dport))) ? ((__u16)( (((__u16)(( __u16)(__be16)(inet->inet_dport)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(inet->inet_dport)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(inet->inet_dport)));
 1857| __u16 srcp = (__builtin_constant_p((__u16)(( __u16)(__be16)(inet->inet_sport))) ? ((__u16)( (((__u16)(( __u16)(__be16)(inet->inet_sport)) & (__u16)0x00ffU) << 8) | (((__u16)(( __u16)(__be16)(inet->inet_sport)) & (__u16)0xff00U) >> 8))) : __fswab16(( __u16)(__be16)(inet->inet_sport)));
 1858|
 1859| seq_printf(f, "%5d: %08X:%04X %08X:%04X"
 1860|  " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d%n",
 1861|  bucket, src, srcp, dest, destp, sp->__sk_common.skc_state,
 1862|  sk_wmem_alloc_get(sp),
 1863|  sk_rmem_alloc_get(sp),
 1864|  0, 0L, 0, sock_i_uid(sp), 0, sock_i_ino(sp),
 1865|  atomic_read(&sp->__sk_common.skc_refcnt), sp,
 1866|  atomic_read(&sp->sk_drops), len);
 1867|}
 1868|
 1869|int udp4_seq_show(struct seq_file *seq, void *v)
 1870|{
 1871| if (v == ((void *)1))
 1872|  seq_printf(seq, "%-127s\n",
 1873|      "  sl  local_address rem_address   st tx_queue "
 1874|      "rx_queue tr tm->when retrnsmt   uid  timeout "
 1875|      "inode ref pointer drops");
 1876| else {
 1877|  struct udp_iter_state *state = seq->private;
 1878|  int len;
 1879|
 1880|  udp4_format_sock(v, seq, state->bucket, &len);
 1881|  seq_printf(seq, "%*s\n", 127 - len, "");
 1882| }
 1883| return 0;
 1884|}
 1885|
 1886|
 1887|static struct udp_seq_afinfo udp4_seq_afinfo = {
 1888| .name = "udp",
 1889| .family = 2,
 1890| .udp_table = &udp_table,
 1891| .seq_fops = {
 1892|  .owner = ((struct module *)0),
 1893| },
 1894| .seq_ops = {
 1895|  .show = udp4_seq_show,
 1896| },
 1897|};
 1898|
 1899|static int udp4_proc_init_net(struct net *net)
 1900|{
 1901| return udp_proc_register(net, &udp4_seq_afinfo);
 1902|}
 1903|
 1904|static void udp4_proc_exit_net(struct net *net)
 1905|{
 1906| udp_proc_unregister(net, &udp4_seq_afinfo);
 1907|}
 1908|
 1909|static struct pernet_operations udp4_net_ops = {
 1910| .init = udp4_proc_init_net,
 1911| .exit = udp4_proc_exit_net,
 1912|};
 1913|
 1914|int udp4_proc_init(void)
 1915|{
 1916| return register_pernet_subsys(&udp4_net_ops);
 1917|}
 1918|
 1919|void udp4_proc_exit(void)
 1920|{
 1921| unregister_pernet_subsys(&udp4_net_ops);
 1922|}
 1923|
 1924|
 1925|static unsigned long uhash_entries;
 1926|static int set_uhash_entries(char *str)
 1927|{
 1928| if (!str)
 1929|  return 0;
 1930| uhash_entries = simple_strtoul(str, &str, 0);
 1931| if (uhash_entries && uhash_entries < (0 ? 128 : 256))
 1932|  uhash_entries = (0 ? 128 : 256);
 1933| return 1;
 1934|}
 1935|static const char __setup_str_set_uhash_entries[] = "uhash_entries="; static struct obs_kernel_param __setup_set_uhash_entries = { __setup_str_set_uhash_entries, set_uhash_entries, 0 };
 1936|
 1937|void udp_table_init(struct udp_table *table, const char *name)
 1938|{
 1939| unsigned int i;
 1940|
 1941| if (!0)
 1942|  table->hash = alloc_large_system_hash(name,
 1943|   2 * sizeof(struct udp_hslot),
 1944|   uhash_entries,
 1945|   21,
 1946|   0,
 1947|   &table->log,
 1948|   &table->mask,
 1949|   64 * 1024);
 1950|
 1951|
 1952|
 1953| if (0 || table->mask < (0 ? 128 : 256) - 1) {
 1954|  table->hash = kmalloc((0 ? 128 : 256) *
 1955|          2 * sizeof(struct udp_hslot), __st_GFP_KERNEL_st__);
 1956|  if (!table->hash)
 1957|   panic(name);
 1958|  table->log = ( __builtin_constant_p((0 ? 128 : 256)) ? ( ((0 ? 128 : 256)) < 1 ? ____ilog2_NaN() : ((0 ? 128 : 256)) & (1ULL << 63) ? 63 : ((0 ? 128 : 256)) & (1ULL << 62) ? 62 : ((0 ? 128 : 256)) & (1ULL << 61) ? 61 : ((0 ? 128 : 256)) & (1ULL << 60) ? 60 : ((0 ? 128 : 256)) & (1ULL << 59) ? 59 : ((0 ? 128 : 256)) & (1ULL << 58) ? 58 : ((0 ? 128 : 256)) & (1ULL << 57) ? 57 : ((0 ? 128 : 256)) & (1ULL << 56) ? 56 : ((0 ? 128 : 256)) & (1ULL << 55) ? 55 : ((0 ? 128 : 256)) & (1ULL << 54) ? 54 : ((0 ? 128 : 256)) & (1ULL << 53) ? 53 : ((0 ? 128 : 256)) & (1ULL << 52) ? 52 : ((0 ? 128 : 256)) & (1ULL << 51) ? 51 : ((0 ? 128 : 256)) & (1ULL << 50) ? 50 : ((0 ? 128 : 256)) & (1ULL << 49) ? 49 : ((0 ? 128 : 256)) & (1ULL << 48) ? 48 : ((0 ? 128 : 256)) & (1ULL << 47) ? 47 : ((0 ? 128 : 256)) & (1ULL << 46) ? 46 : ((0 ? 128 : 256)) & (1ULL << 45) ? 45 : ((0 ? 128 : 256)) & (1ULL << 44) ? 44 : ((0 ? 128 : 256)) & (1ULL << 43) ? 43 : ((0 ? 128 : 256)) & (1ULL << 42) ? 42 : ((0 ? 128 : 256)) & (1ULL << 41) ? 41 : ((0 ? 128 : 256)) & (1ULL << 40) ? 40 : ((0 ? 128 : 256)) & (1ULL << 39) ? 39 : ((0 ? 128 : 256)) & (1ULL << 38) ? 38 : ((0 ? 128 : 256)) & (1ULL << 37) ? 37 : ((0 ? 128 : 256)) & (1ULL << 36) ? 36 : ((0 ? 128 : 256)) & (1ULL << 35) ? 35 : ((0 ? 128 : 256)) & (1ULL << 34) ? 34 : ((0 ? 128 : 256)) & (1ULL << 33) ? 33 : ((0 ? 128 : 256)) & (1ULL << 32) ? 32 : ((0 ? 128 : 256)) & (1ULL << 31) ? 31 : ((0 ? 128 : 256)) & (1ULL << 30) ? 30 : ((0 ? 128 : 256)) & (1ULL << 29) ? 29 : ((0 ? 128 : 256)) & (1ULL << 28) ? 28 : ((0 ? 128 : 256)) & (1ULL << 27) ? 27 : ((0 ? 128 : 256)) & (1ULL << 26) ? 26 : ((0 ? 128 : 256)) & (1ULL << 25) ? 25 : ((0 ? 128 : 256)) & (1ULL << 24) ? 24 : ((0 ? 128 : 256)) & (1ULL << 23) ? 23 : ((0 ? 128 : 256)) & (1ULL << 22) ? 22 : ((0 ? 128 : 256)) & (1ULL << 21) ? 21 : ((0 ? 128 : 256)) & (1ULL << 20) ? 20 : ((0 ? 128 : 256)) & (1ULL << 19) ? 19 : ((0 ? 128 : 256)) & (1ULL << 18) ? 18 : ((0 ? 128 : 256)) & (1ULL << 17) ? 17 : ((0 ? 128 : 256)) & (1ULL << 16) ? 16 : ((0 ? 128 : 256)) & (1ULL << 15) ? 15 : ((0 ? 128 : 256)) & (1ULL << 14) ? 14 : ((0 ? 128 : 256)) & (1ULL << 13) ? 13 : ((0 ? 128 : 256)) & (1ULL << 12) ? 12 : ((0 ? 128 : 256)) & (1ULL << 11) ? 11 : ((0 ? 128 : 256)) & (1ULL << 10) ? 10 : ((0 ? 128 : 256)) & (1ULL << 9) ? 9 : ((0 ? 128 : 256)) & (1ULL << 8) ? 8 : ((0 ? 128 : 256)) & (1ULL << 7) ? 7 : ((0 ? 128 : 256)) & (1ULL << 6) ? 6 : ((0 ? 128 : 256)) & (1ULL << 5) ? 5 : ((0 ? 128 : 256)) & (1ULL << 4) ? 4 : ((0 ? 128 : 256)) & (1ULL << 3) ? 3 : ((0 ? 128 : 256)) & (1ULL << 2) ? 2 : ((0 ? 128 : 256)) & (1ULL << 1) ? 1 : ((0 ? 128 : 256)) & (1ULL << 0) ? 0 : ____ilog2_NaN() ) : (sizeof((0 ? 128 : 256)) <= 4) ? __ilog2_u32((0 ? 128 : 256)) : __ilog2_u64((0 ? 128 : 256)) );
 1959|  table->mask = (0 ? 128 : 256) - 1;
 1960| }
 1961| table->hash2 = table->hash + (table->mask + 1);
 1962| for (i = 0; i <= table->mask; i++) {
 1963|  ((&table->hash[i].head)->first = (struct hlist_nulls_node *) (1UL | (((long)i) << 1)));
 1964|  table->hash[i].count = 0;
 1965|  do { spinlock_check(&table->hash[i].lock); do { static struct lock_class_key __key; __raw_spin_lock_init((&(&table->hash[i].lock)->rlock), "&(&table->hash[i].lock)->rlock", &__key); } while (0); } while (0);
 1966| }
 1967| for (i = 0; i <= table->mask; i++) {
 1968|  ((&table->hash2[i].head)->first = (struct hlist_nulls_node *) (1UL | (((long)i) << 1)));
 1969|  table->hash2[i].count = 0;
 1970|  do { spinlock_check(&table->hash2[i].lock); do { static struct lock_class_key __key; __raw_spin_lock_init((&(&table->hash2[i].lock)->rlock), "&(&table->hash2[i].lock)->rlock", &__key); } while (0); } while (0);
 1971| }
 1972|}
 1973|
 1974|void udp_init(void)
 1975|{
 1976| unsigned long nr_pages, limit;
 1977|
 1978| udp_table_init(&udp_table, "UDP");
 1979|
 1980|
 1981|
 1982|
 1983| nr_pages = totalram_pages - 0UL;
 1984| limit = ({ typeof(nr_pages) _min1 = (nr_pages); typeof(1UL<<(28-12)) _min2 = (1UL<<(28-12)); (void) (&_min1 == &_min2); _min1 < _min2 ? _min1 : _min2; }) >> (20-12);
 1985| limit = (limit * (nr_pages >> (20-12))) >> (12 -11);
 1986| limit = ({ typeof(limit) _max1 = (limit); typeof(128UL) _max2 = (128UL); (void) (&_max1 == &_max2); _max1 > _max2 ? _max1 : _max2; });
 1987| sysctl_udp_mem[0] = limit / 4 * 3;
 1988| sysctl_udp_mem[1] = limit;
 1989| sysctl_udp_mem[2] = sysctl_udp_mem[0] * 2;
 1990|
 1991| sysctl_udp_rmem_min = ((int)((1UL) << 12));
 1992| sysctl_udp_wmem_min = ((int)((1UL) << 12));
 1993|}
 1994|
 1995|int udp4_ufo_send_check(struct sk_buff *skb)
 1996|{
 1997| const struct iphdr *iph;
 1998| struct udphdr *uh;
 1999|
 2000| if (!pskb_may_pull(skb, sizeof(*uh)))
 2001|  return -22;
 2002|
 2003| iph = ip_hdr(skb);
 2004| uh = udp_hdr(skb);
 2005|
 2006| uh->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, skb->len,
 2007|           IPPROTO_UDP, 0);
 2008| skb->csum_start = skb_transport_header(skb) - skb->head;
 2009| skb->csum_offset = 1;
 2010| skb->ip_summed = 3;
 2011| return 0;
 2012|}
 2013|
 2014|struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, int features)
 2015|{
 2016| struct sk_buff *segs = ERR_PTR(-22);
 2017| unsigned int mss;
 2018| int offset;
 2019| __wsum csum;
 2020|
 2021| mss = ((struct skb_shared_info *)(skb_end_pointer(skb)))->gso_size;
 2022| if (skb->len <= mss)
 2023|  goto out;
 2024|
 2025| if (skb_gso_ok(skb, features | (SKB_GSO_DODGY << 16))) {
 2026|
 2027|  int type = ((struct skb_shared_info *)(skb_end_pointer(skb)))->gso_type;
 2028|
 2029|  if (type & ~(SKB_GSO_UDP | SKB_GSO_DODGY) || !(type & (SKB_GSO_UDP))
 2030|                                )
 2031|   goto out;
 2032|
 2033|  ((struct skb_shared_info *)(skb_end_pointer(skb)))->gso_segs = (((skb->len) + (mss) - 1) / (mss));
 2034|
 2035|  segs = ((void *)0);
 2036|  goto out;
 2037| }
 2038|
 2039|
 2040|
 2041|
 2042| offset = skb->csum_start - skb_headroom(skb);
 2043| csum = skb_checksum(skb, offset, skb->len - offset, 0);
 2044| offset += skb->csum_offset;
 2045| *(__sum16 *)(skb->data + offset) = csum_fold(csum);
 2046| skb->ip_summed = 0;
 2047|
 2048|
 2049|
 2050|
 2051| segs = skb_segment(skb, features);
 2052|out:
 2053| return segs;
 2054|}