All of lore.kernel.org
 help / color / mirror / Atom feed
* Net: [DSA]: dsa-loop kernel panic
@ 2020-04-30  6:24 Allen
  2020-04-30 14:06 ` Andrew Lunn
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Allen @ 2020-04-30  6:24 UTC (permalink / raw)
  To: netdev, Andrew Lunn, Vivien Didelot, Florian Fainelli

Hi,

   We ran into a kernel panic with dsa-loop.
Here are the details:

VM: aarch64 kvm running 5.7.0-rc3+

$ modprobe dsa-loop
[   25.968427] dsa-loop fixed-0:1f: DSA mockup driver: 0x1f
[   25.978156] libphy: dsa slave smi: probed
[   25.979230] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on port 0
[   25.980974] dsa-loop fixed-0:1f lan1 (uninitialized): PHY 
[dsa-0.0:00] driver [Generic PHY] (irq=POLL)
[   25.983855] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on port 1
[   25.985523] dsa-loop fixed-0:1f lan2 (uninitialized): PHY 
[dsa-0.0:01] driver [Generic PHY] (irq=POLL)
[   25.988127] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on port 2
[   25.989775] dsa-loop fixed-0:1f lan3 (uninitialized): PHY 
[dsa-0.0:02] driver [Generic PHY] (irq=POLL)
[   25.992651] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on port 3
[   25.994472] dsa-loop fixed-0:1f lan4 (uninitialized): PHY 
[dsa-0.0:03] driver [Generic PHY] (irq=POLL)
[   25.997015] DSA: tree 0 setup
[root@localhost ~]# [   26.002672] dsa-loop fixed-0:1f lan1: configuring 
for phy/gmii link mode
[   26.008264] dsa-loop fixed-0:1f lan1: Link is Up - 100Mbps/Full - 
flow control off
[   26.010098] IPv6: ADDRCONF(NETDEV_CHANGE): lan1: link becomes ready
[   26.014539] dsa-loop fixed-0:1f lan3: configuring for phy/gmii link mode
[   26.021323] dsa-loop fixed-0:1f lan2: configuring for phy/gmii link mode
[   26.023274] dsa-loop fixed-0:1f lan3: Link is Up - 100Mbps/Full - 
flow control off
[   26.028358] dsa-loop fixed-0:1f lan4: configuring for phy/gmii link mode
[   26.036157] dsa-loop fixed-0:1f lan2: Link is Up - 100Mbps/Full - 
flow control off
[   26.037875] dsa-loop fixed-0:1f lan4: Link is Up - 100Mbps/Full - 
flow control off
[   26.039858] IPv6: ADDRCONF(NETDEV_CHANGE): lan3: link becomes ready
[   26.041527] IPv6: ADDRCONF(NETDEV_CHANGE): lan2: link becomes ready
[   26.043219] IPv6: ADDRCONF(NETDEV_CHANGE): lan4: link becomes ready



$ rmmod dsa-loop
[   50.688935] Unable to handle kernel read from unreadable memory at 
virtual address 0000000000000040
[   50.690775] Mem abort info:
[   50.691285]   ESR = 0x96000005
[   50.691831]   EC = 0x25: DABT (current EL), IL = 32 bits
[   50.693061]   SET = 0, FnV = 0
[   50.693799]   EA = 0, S1PTW = 0
[   50.694542] Data abort info:
[   50.695093]   ISV = 0, ISS = 0x00000005
[   50.695841]   CM = 0, WnR = 0
[   50.696543] user pgtable: 64k pages, 48-bit VAs, pgdp=000000020dde7000
[   50.697925] [0000000000000040] pgd=000000020bec0003, 
pud=000000020bec0003, pmd=0000000212ab0003, pte=0000000000000000
[   50.700057] Internal error: Oops: 96000005 [#1] SMP

p650M.e7s0s1a0g4e8 ]f rMoomd uslyseslo lgdin@lkeocd alinh: osdst a_atlo 
oAppr(- 2) 9 ip236t:1_r4:pf06il .te..r
_ t _kReEJrnECelT :Infnt_rerejnaecl t_eirprovr6:  iOpotp_sR:E J9E6C0T0 
0n0f0_5re j[e#c1t]_ iSpMvP4 xt
onntrack ebtable_nat ebtable_broute ip6table_nat ip6table_mangle 
ip6table_security ip6table_raw iptable_nat nf_nat iptable_mangle 
iptable_security iptable_raw nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 
ip_set ebtable_filter ebtables rfkill ip6table_filter ip6_tables 
iptable_filter vfat fat aes_ce_blk crypto_simd cryptd aes_ce_cipher 
crct10dif_ce ghash_ce sha2_ce sha256_arm64 sha1_ce virtio_rng button 
qemu_fw_cfg ip_tables xfs libcrc32c virtio_net net_failover 
virtio_console failover virtio_scsi virtio_pci
[   50.715211] CPU: 3 PID: 1559 Comm: rmmod Not tainted 5.7.0-rc3+ #3
[   50.716620] Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 
02/06/2015
[   50.718185] pstate: 60400005 (nZCv daif +PAN -UAO)
[   50.719274] pc : __dev_set_rx_mode+0x48/0xa0
[   50.720252] lr : dev_mc_unsync+0xbc/0xfc
[   50.721129] sp : ffff800010f6f960
[   50.721875] x29: ffff800010f6f960 x28: ffff0001c10d5d40
[   50.723085] x27: 0000000000000000 x26: ffffa039806cfcd0
[   50.724301] x25: ffffa03980f53000 x24: ffffa03980f53000
[   50.725488] x23: 0000000000000001 x22: ffffa03980f53000
[   50.726669] x21: ffffa03980137f1c x20: 0000000000000000
[   50.727849] x19: ffff0001c11a2000 x18: 0000000000000000
[   50.729046] x17: 0000000000000000 x16: ffffa0397fd53578
[   50.730236] x15: 6e04191515120a09 x14: 0000000000000000
[   50.731451] x13: ffff000000000000 x12: ffffffffffffffff
[   50.732681] x11: 0000000000000030 x10: 0000000000001bd0
[   50.733874] x9 : ffff800010f6f6d0 x8 : 0000000000000000
[   50.735054] x7 : ffffffffffffffff x6 : 000000000000ffff
[   50.736261] x5 : 0000000000000001 x4 : ffff0001c2e32f00
[   50.737446] x3 : 0000000000000000 x2 : 0000000000000000
[   50.738631] x1 : ffff0001c2e3bd00 x0 : 0000000000029820
[   50.739815] Call trace:
[   50.740385]  __dev_set_rx_mode+0x48/0xa0
[   50.741267]  dev_mc_unsync+0xbc/0xfc
[   50.742064]  dsa_slave_close+0x34/0xb4
[   50.742905]  __dev_close_many+0xbc/0x13c
[   50.743782]  dev_close_many+0xb8/0x184
[   50.744637]  rollback_registered_many+0x160/0x558
[   50.745691]  rollback_registered+0x68/0xac
[   50.746606]  unregister_netdevice_queue+0x9c/0x128
[   50.747673]  unregister_netdev+0x28/0x38
[   50.748564]  dsa_slave_destroy+0x4c/0x74
[   50.749447]  dsa_port_teardown+0xac/0xb8
[   50.750326]  dsa_tree_teardown_switches+0x38/0x9c
[   50.751372]  dsa_unregister_switch+0x104/0x1c0
[   50.752384]  dsa_loop_drv_remove+0x24/0x54 [dsa_loop]
[   50.753518]  mdio_remove+0x2c/0x48
[   50.754284]  device_release_driver_internal+0xfc/0x1ac
[   50.755428]  driver_detach+0x6c/0xdc
[   50.756244]  bus_remove_driver+0x74/0xe8
[   50.757120]  driver_unregister+0x34/0x5c
[   50.758039]  mdio_driver_unregister+0x20/0x2c
[   50.759026]  dsa_loop_exit+0x1c/0xf670 [dsa_loop]
[   50.760094]  __arm64_sys_delete_module+0x18c/0x29c
[   50.761177]  el0_svc_common.constprop.3+0xdc/0x194
[   50.762288]  do_el0_svc+0x84/0xa0
[   50.763029]  el0_sync_handler+0x80/0x9c
[   50.763888]  el0_sync+0x164/0x180
[   50.764654] Code: b9429275 35000175 3949f660 35000220 (f9402281)
[   50.766046] ---[ end trace 9e9af4eb8dcf17ac ]---
[   50.767088] Kernel panic - not syncing: Fatal exception in interrupt
[   50.768527] SMP: stopping secondary CPUs
[   50.769431] Kernel Offset: 0x20396f4a0000 from 0xffff800010000000
[   50.770796] PHYS_OFFSET: 0xffffd52500000000
[   50.771733] CPU features: 0x080002,20802008
[   50.772620] Memory Limit: none
[   50.773260] ---[ end Kernel panic - not syncing: Fatal exception in 
interrupt ]---

  I haven't had much luck trying to figure what exactly is causing the
panic. Will keep looking, any help here would be great.

Thanks,
- Allen

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-04-30  6:24 Net: [DSA]: dsa-loop kernel panic Allen
@ 2020-04-30 14:06 ` Andrew Lunn
  2020-05-01  6:47   ` Allen
  2020-04-30 17:12 ` Florian Fainelli
  2020-05-01 13:10 ` Andrew Lunn
  2 siblings, 1 reply; 13+ messages in thread
From: Andrew Lunn @ 2020-04-30 14:06 UTC (permalink / raw)
  To: Allen; +Cc: netdev, Vivien Didelot, Florian Fainelli

On Thu, Apr 30, 2020 at 11:54:15AM +0530, Allen wrote:
> Hi,
> 
>   We ran into a kernel panic with dsa-loop.
> Here are the details:
> 
> VM: aarch64 kvm running 5.7.0-rc3+

Hi Allen

Can you reproduce it? If so, could you do:

make net/core/dev.lst

and then show us the listing for __dev_set_rx_mode. The instructions
around 0x48/0xa0 will tell us what structure is a NULL pointer.

For this to work, it is important the build to create the .lst file is
the same as the build which fails. Changing the kernel configuration,
compiler flags etc can change 0x48/0xa0.

Thanks
	Andrew

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-04-30  6:24 Net: [DSA]: dsa-loop kernel panic Allen
  2020-04-30 14:06 ` Andrew Lunn
@ 2020-04-30 17:12 ` Florian Fainelli
  2020-05-01  6:48   ` Allen
  2020-05-01 13:10 ` Andrew Lunn
  2 siblings, 1 reply; 13+ messages in thread
From: Florian Fainelli @ 2020-04-30 17:12 UTC (permalink / raw)
  To: Allen, netdev, Andrew Lunn, Vivien Didelot

On 4/29/20 11:24 PM, Allen wrote:
> Hi,
> 
>   We ran into a kernel panic with dsa-loop.
> Here are the details:
> 
> VM: aarch64 kvm running 5.7.0-rc3+
> 
> $ modprobe dsa-loop
> [   25.968427] dsa-loop fixed-0:1f: DSA mockup driver: 0x1f
> [   25.978156] libphy: dsa slave smi: probed
> [   25.979230] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on
> port 0
> [   25.980974] dsa-loop fixed-0:1f lan1 (uninitialized): PHY
> [dsa-0.0:00] driver [Generic PHY] (irq=POLL)
> [   25.983855] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on
> port 1
> [   25.985523] dsa-loop fixed-0:1f lan2 (uninitialized): PHY
> [dsa-0.0:01] driver [Generic PHY] (irq=POLL)
> [   25.988127] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on
> port 2
> [   25.989775] dsa-loop fixed-0:1f lan3 (uninitialized): PHY
> [dsa-0.0:02] driver [Generic PHY] (irq=POLL)
> [   25.992651] dsa-loop fixed-0:1f: nonfatal error -95 setting MTU on
> port 3
> [   25.994472] dsa-loop fixed-0:1f lan4 (uninitialized): PHY
> [dsa-0.0:03] driver [Generic PHY] (irq=POLL)
> [   25.997015] DSA: tree 0 setup
> [root@localhost ~]# [   26.002672] dsa-loop fixed-0:1f lan1: configuring
> for phy/gmii link mode
> [   26.008264] dsa-loop fixed-0:1f lan1: Link is Up - 100Mbps/Full -
> flow control off
> [   26.010098] IPv6: ADDRCONF(NETDEV_CHANGE): lan1: link becomes ready
> [   26.014539] dsa-loop fixed-0:1f lan3: configuring for phy/gmii link mode
> [   26.021323] dsa-loop fixed-0:1f lan2: configuring for phy/gmii link mode
> [   26.023274] dsa-loop fixed-0:1f lan3: Link is Up - 100Mbps/Full -
> flow control off
> [   26.028358] dsa-loop fixed-0:1f lan4: configuring for phy/gmii link mode
> [   26.036157] dsa-loop fixed-0:1f lan2: Link is Up - 100Mbps/Full -
> flow control off
> [   26.037875] dsa-loop fixed-0:1f lan4: Link is Up - 100Mbps/Full -
> flow control off
> [   26.039858] IPv6: ADDRCONF(NETDEV_CHANGE): lan3: link becomes ready
> [   26.041527] IPv6: ADDRCONF(NETDEV_CHANGE): lan2: link becomes ready
> [   26.043219] IPv6: ADDRCONF(NETDEV_CHANGE): lan4: link becomes ready

you have missed an important detail here which is the master device that
was used for DSA. The current code defaults to whatever "eth0" is, what
does this map to for your configuration?
-- 
Florian

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-04-30 14:06 ` Andrew Lunn
@ 2020-05-01  6:47   ` Allen
  0 siblings, 0 replies; 13+ messages in thread
From: Allen @ 2020-05-01  6:47 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: netdev, Vivien Didelot, Florian Fainelli

[-- Attachment #1: Type: text/plain, Size: 3297 bytes --]

Andrew,
> 
> Can you reproduce it? If so, could you do:
> 
> make net/core/dev.lst

Yes. Attached is the file.

ffff8000113adb60 <__dev_set_rx_mode>:
{
ffff8000113adb60:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113adb64:	910003fd 	mov	x29, sp
ffff8000113adb68:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adb6c:	f90013f5 	str	x21, [sp,#32]
ffff8000113adb70:	aa0003f3 	mov	x19, x0
ffff8000113adb74:	aa1e03e0 	mov	x0, x30
ffff8000113adb78:	94000000 	bl	0 <_mcount>
			ffff8000113adb78: R_AARCH64_CALL26	_mcount
	if (!(dev->flags&IFF_UP))
ffff8000113adb7c:	b9422a60 	ldr	w0, [x19,#552]
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113adb80:	f940fa74 	ldr	x20, [x19,#496]
	if (!(dev->flags&IFF_UP))
ffff8000113adb84:	360001a0 	tbz	w0, #0, ffff8000113adbb8 
<__dev_set_rx_mode+0x58>
ffff8000113adb88:	f9402260 	ldr	x0, [x19,#64]
	if (!netif_device_present(dev))
ffff8000113adb8c:	36080160 	tbz	w0, #1, ffff8000113adbb8 
<__dev_set_rx_mode+0x58>
	if (!(dev->priv_flags & IFF_UNICAST_FLT)) {
ffff8000113adb90:	b9422e60 	ldr	w0, [x19,#556]
ffff8000113adb94:	376000a0 	tbnz	w0, #12, ffff8000113adba8 
<__dev_set_rx_mode+0x48>
		if (!netdev_uc_empty(dev) && !dev->uc_promisc) {
ffff8000113adb98:	b9429275 	ldr	w21, [x19,#656]
ffff8000113adb9c:	35000175 	cbnz	w21, ffff8000113adbc8 
<__dev_set_rx_mode+0x68>
		} else if (netdev_uc_empty(dev) && dev->uc_promisc) {
ffff8000113adba0:	3949f660 	ldrb	w0, [x19,#637]
ffff8000113adba4:	35000220 	cbnz	w0, ffff8000113adbe8 
<__dev_set_rx_mode+0x88>
	if (ops->ndo_set_rx_mode)
ffff8000113adba8:	f9402281 	ldr	x1, [x20,#64]
ffff8000113adbac:	b4000061 	cbz	x1, ffff8000113adbb8 
<__dev_set_rx_mode+0x58>
		ops->ndo_set_rx_mode(dev);
ffff8000113adbb0:	aa1303e0 	mov	x0, x19
ffff8000113adbb4:	d63f0020 	blr	x1
}
ffff8000113adbb8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113adbbc:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113adbc0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113adbc4:	d65f03c0 	ret
		if (!netdev_uc_empty(dev) && !dev->uc_promisc) {
ffff8000113adbc8:	3949f662 	ldrb	w2, [x19,#637]
ffff8000113adbcc:	35fffee2 	cbnz	w2, ffff8000113adba8 
<__dev_set_rx_mode+0x48>
			__dev_set_promiscuity(dev, 1, false);
ffff8000113adbd0:	aa1303e0 	mov	x0, x19
ffff8000113adbd4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113adbd8:	97ffff6a 	bl	ffff8000113ad980 <__dev_set_promiscuity>
			dev->uc_promisc = true;
ffff8000113adbdc:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113adbe0:	3909f660 	strb	w0, [x19,#637]
ffff8000113adbe4:	17fffff1 	b	ffff8000113adba8 <__dev_set_rx_mode+0x48>
			__dev_set_promiscuity(dev, -1, false);
ffff8000113adbe8:	aa1303e0 	mov	x0, x19
ffff8000113adbec:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113adbf0:	2a1503e2 	mov	w2, w21
ffff8000113adbf4:	97ffff63 	bl	ffff8000113ad980 <__dev_set_promiscuity>
			dev->uc_promisc = false;
ffff8000113adbf8:	3909f675 	strb	w21, [x19,#637]
ffff8000113adbfc:	17ffffeb 	b	ffff8000113adba8 <__dev_set_rx_mode+0x48>


> and then show us the listing for __dev_set_rx_mode. The instructions
> around 0x48/0xa0 will tell us what structure is a NULL pointer.
> 
> For this to work, it is important the build to create the .lst file is
> the same as the build which fails. Changing the kernel configuration,
> compiler flags etc can change 0x48/0xa0.

- Allen

[-- Attachment #2: dev.lst --]
[-- Type: text/plain, Size: 1432037 bytes --]


dev.o:     file format elf64-littleaarch64


Disassembly of section .text:

ffff80001139e37c <__my_cpu_offset>:

	/*
	 * We want to allow caching the value, so avoid using volatile and
	 * instead use a fake stack read to hazard against barrier().
	 */
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff80001139e37c:	d538d080 	mrs	x0, tpidr_el1
			ARM64_HAS_VIRT_HOST_EXTN)
		: "=r" (off) :
		"Q" (*(const unsigned long *)current_stack_pointer));

	return off;
}
ffff80001139e380:	d65f03c0 	ret

ffff80001139e384 <dev_get_iflink>:
 *	Indicates the ifindex the interface is linked to.
 *	Physical interfaces have the same 'ifindex' and 'iflink' values.
 */

int dev_get_iflink(const struct net_device *dev)
{
ffff80001139e384:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e388:	910003fd 	mov	x29, sp
ffff80001139e38c:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e390:	aa0003f3 	mov	x19, x0
ffff80001139e394:	aa1e03e0 	mov	x0, x30
ffff80001139e398:	94000000 	bl	0 <_mcount>
			ffff80001139e398: R_AARCH64_CALL26	_mcount
	if (dev->netdev_ops && dev->netdev_ops->ndo_get_iflink)
ffff80001139e39c:	f940fa60 	ldr	x0, [x19,#496]
ffff80001139e3a0:	b4000100 	cbz	x0, ffff80001139e3c0 <dev_get_iflink+0x3c>
ffff80001139e3a4:	f9411401 	ldr	x1, [x0,#552]
ffff80001139e3a8:	b40000c1 	cbz	x1, ffff80001139e3c0 <dev_get_iflink+0x3c>
		return dev->netdev_ops->ndo_get_iflink(dev);
ffff80001139e3ac:	aa1303e0 	mov	x0, x19
ffff80001139e3b0:	d63f0020 	blr	x1

	return dev->ifindex;
}
ffff80001139e3b4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e3b8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e3bc:	d65f03c0 	ret
	return dev->ifindex;
ffff80001139e3c0:	b9410260 	ldr	w0, [x19,#256]
}
ffff80001139e3c4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e3c8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e3cc:	d65f03c0 	ret

ffff80001139e3d0 <__dev_get_by_index>:
 *	about locking. The caller must hold either the RTNL semaphore
 *	or @dev_base_lock.
 */

struct net_device *__dev_get_by_index(struct net *net, int ifindex)
{
ffff80001139e3d0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139e3d4:	910003fd 	mov	x29, sp
ffff80001139e3d8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e3dc:	aa0003f3 	mov	x19, x0
ffff80001139e3e0:	aa1e03e0 	mov	x0, x30
ffff80001139e3e4:	f90017a1 	str	x1, [x29,#40]
ffff80001139e3e8:	94000000 	bl	0 <_mcount>
			ffff80001139e3e8: R_AARCH64_CALL26	_mcount
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3ec:	f94017a1 	ldr	x1, [x29,#40]
	struct net_device *dev;
	struct hlist_head *head = dev_index_hash(net, ifindex);

	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f0:	f9409a62 	ldr	x2, [x19,#304]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3f4:	d37d1c20 	ubfiz	x0, x1, #3, #8
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f8:	f8606840 	ldr	x0, [x2,x0]
ffff80001139e3fc:	b4000040 	cbz	x0, ffff80001139e404 <__dev_get_by_index+0x34>
ffff80001139e400:	d10e4000 	sub	x0, x0, #0x390
ffff80001139e404:	b40000c0 	cbz	x0, ffff80001139e41c <__dev_get_by_index+0x4c>
		if (dev->ifindex == ifindex)
ffff80001139e408:	b9410002 	ldr	w2, [x0,#256]
ffff80001139e40c:	6b01005f 	cmp	w2, w1
ffff80001139e410:	54000060 	b.eq	ffff80001139e41c <__dev_get_by_index+0x4c>
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e414:	f941c800 	ldr	x0, [x0,#912]
ffff80001139e418:	b5ffff40 	cbnz	x0, ffff80001139e400 <__dev_get_by_index+0x30>
			return dev;

	return NULL;
}
ffff80001139e41c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e420:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139e424:	d65f03c0 	ret

ffff80001139e428 <dev_get_by_index_rcu>:
 *	had its reference counter increased so the caller must be careful
 *	about locking. The caller must hold RCU lock.
 */

struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex)
{
ffff80001139e428:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139e42c:	910003fd 	mov	x29, sp
ffff80001139e430:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e434:	aa0003f3 	mov	x19, x0
ffff80001139e438:	aa1e03e0 	mov	x0, x30
ffff80001139e43c:	f90017a1 	str	x1, [x29,#40]
ffff80001139e440:	94000000 	bl	0 <_mcount>
			ffff80001139e440: R_AARCH64_CALL26	_mcount
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e444:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139e448:	f9409a62 	ldr	x2, [x19,#304]
ffff80001139e44c:	d37d1c20 	ubfiz	x0, x1, #3, #8
})

static __always_inline
void __read_once_size(const volatile void *p, void *res, int size)
{
	__READ_ONCE_SIZE;
ffff80001139e450:	f8606840 	ldr	x0, [x2,x0]
	struct net_device *dev;
	struct hlist_head *head = dev_index_hash(net, ifindex);

	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e454:	b4000040 	cbz	x0, ffff80001139e45c <dev_get_by_index_rcu+0x34>
ffff80001139e458:	d10e4000 	sub	x0, x0, #0x390
ffff80001139e45c:	b40000c0 	cbz	x0, ffff80001139e474 <dev_get_by_index_rcu+0x4c>
		if (dev->ifindex == ifindex)
ffff80001139e460:	b9410002 	ldr	w2, [x0,#256]
ffff80001139e464:	6b01005f 	cmp	w2, w1
ffff80001139e468:	54000060 	b.eq	ffff80001139e474 <dev_get_by_index_rcu+0x4c>
ffff80001139e46c:	f941c800 	ldr	x0, [x0,#912]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e470:	b5ffff40 	cbnz	x0, ffff80001139e458 <dev_get_by_index_rcu+0x30>
			return dev;

	return NULL;
}
ffff80001139e474:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e478:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139e47c:	d65f03c0 	ret

ffff80001139e480 <dev_get_by_napi_id>:
 *	its reference counter increased so the caller must be careful
 *	about locking. The caller must hold RCU lock.
 */

struct net_device *dev_get_by_napi_id(unsigned int napi_id)
{
ffff80001139e480:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e484:	910003fd 	mov	x29, sp
ffff80001139e488:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e48c:	2a0003f3 	mov	w19, w0
ffff80001139e490:	aa1e03e0 	mov	x0, x30
ffff80001139e494:	94000000 	bl	0 <_mcount>
			ffff80001139e494: R_AARCH64_CALL26	_mcount
	struct napi_struct *napi;

	WARN_ON_ONCE(!rcu_read_lock_held());

	if (napi_id < MIN_NAPI_ID)
ffff80001139e498:	7140067f 	cmp	w19, #0x1, lsl #12
ffff80001139e49c:	540001a9 	b.ls	ffff80001139e4d0 <dev_get_by_napi_id+0x50>
ffff80001139e4a0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e4a0: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
static struct napi_struct *napi_by_id(unsigned int napi_id)
{
	unsigned int hash = napi_id % HASH_SIZE(napi_hash);
	struct napi_struct *napi;

	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4a4:	d37d1e60 	ubfiz	x0, x19, #3, #8
ffff80001139e4a8:	91000021 	add	x1, x1, #0x0
			ffff80001139e4a8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff80001139e4ac:	f8606821 	ldr	x1, [x1,x0]
ffff80001139e4b0:	b4000041 	cbz	x1, ffff80001139e4b8 <dev_get_by_napi_id+0x38>
ffff80001139e4b4:	d105c021 	sub	x1, x1, #0x170
ffff80001139e4b8:	b40000c1 	cbz	x1, ffff80001139e4d0 <dev_get_by_napi_id+0x50>
		if (napi->napi_id == napi_id)
ffff80001139e4bc:	b9418022 	ldr	w2, [x1,#384]
ffff80001139e4c0:	6b02027f 	cmp	w19, w2
ffff80001139e4c4:	540000e0 	b.eq	ffff80001139e4e0 <dev_get_by_napi_id+0x60>
ffff80001139e4c8:	f940b821 	ldr	x1, [x1,#368]
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4cc:	b5ffff41 	cbnz	x1, ffff80001139e4b4 <dev_get_by_napi_id+0x34>
		return NULL;
ffff80001139e4d0:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139e4d4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e4d8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e4dc:	d65f03c0 	ret
	return napi ? napi->dev : NULL;
ffff80001139e4e0:	f9401c20 	ldr	x0, [x1,#56]
}
ffff80001139e4e4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e4e8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e4ec:	d65f03c0 	ret

ffff80001139e4f0 <netdev_cmd_to_name>:
{
ffff80001139e4f0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e4f4:	910003fd 	mov	x29, sp
ffff80001139e4f8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e4fc:	2a0003f3 	mov	w19, w0
ffff80001139e500:	aa1e03e0 	mov	x0, x30
ffff80001139e504:	94000000 	bl	0 <_mcount>
			ffff80001139e504: R_AARCH64_CALL26	_mcount
ffff80001139e508:	51000660 	sub	w0, w19, #0x1
ffff80001139e50c:	7100841f 	cmp	w0, #0x21
ffff80001139e510:	540000e8 	b.hi	ffff80001139e52c <netdev_cmd_to_name+0x3c>
ffff80001139e514:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e514: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff80001139e518:	91000021 	add	x1, x1, #0x0
			ffff80001139e518: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff80001139e51c:	f8605820 	ldr	x0, [x1,w0,uxtw #3]
}
ffff80001139e520:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e524:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e528:	d65f03c0 	ret
{
ffff80001139e52c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e52c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8
ffff80001139e530:	91000000 	add	x0, x0, #0x0
			ffff80001139e530: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8
}
ffff80001139e534:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e538:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e53c:	d65f03c0 	ret

ffff80001139e540 <call_netdevice_unregister_notifiers>:
{
ffff80001139e540:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff80001139e544:	910003fd 	mov	x29, sp
ffff80001139e548:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e54c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139e550:	aa0003f3 	mov	x19, x0
ffff80001139e554:	aa1e03e0 	mov	x0, x30
ffff80001139e558:	aa0103f5 	mov	x21, x1
ffff80001139e55c:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff80001139e55c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e560:	94000000 	bl	0 <_mcount>
			ffff80001139e560: R_AARCH64_CALL26	_mcount
ffff80001139e564:	f94002c1 	ldr	x1, [x22]
			ffff80001139e564: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (dev->flags & IFF_UP) {
ffff80001139e568:	b9422aa0 	ldr	w0, [x21,#552]
{
ffff80001139e56c:	f90027a1 	str	x1, [x29,#72]
	struct netdev_notifier_info info = {
ffff80001139e570:	9100e3b4 	add	x20, x29, #0x38
	if (dev->flags & IFF_UP) {
ffff80001139e574:	360001e0 	tbz	w0, #0, ffff80001139e5b0 <call_netdevice_unregister_notifiers+0x70>
	struct netdev_notifier_info info = {
ffff80001139e578:	a9007e9f 	stp	xzr, xzr, [x20]
	return nb->notifier_call(nb, val, &info);
ffff80001139e57c:	f9400263 	ldr	x3, [x19]
ffff80001139e580:	d2800141 	mov	x1, #0xa                   	// #10
ffff80001139e584:	aa1403e2 	mov	x2, x20
	struct netdev_notifier_info info = {
ffff80001139e588:	f9001fb5 	str	x21, [x29,#56]
	return nb->notifier_call(nb, val, &info);
ffff80001139e58c:	aa1303e0 	mov	x0, x19
ffff80001139e590:	d63f0060 	blr	x3
ffff80001139e594:	f9400263 	ldr	x3, [x19]
	struct netdev_notifier_info info = {
ffff80001139e598:	a9007e9f 	stp	xzr, xzr, [x20]
ffff80001139e59c:	f9001fb5 	str	x21, [x29,#56]
	return nb->notifier_call(nb, val, &info);
ffff80001139e5a0:	aa1303e0 	mov	x0, x19
ffff80001139e5a4:	d2800041 	mov	x1, #0x2                   	// #2
ffff80001139e5a8:	aa1403e2 	mov	x2, x20
ffff80001139e5ac:	d63f0060 	blr	x3
	struct netdev_notifier_info info = {
ffff80001139e5b0:	a9007e9f 	stp	xzr, xzr, [x20]
	return nb->notifier_call(nb, val, &info);
ffff80001139e5b4:	f9400263 	ldr	x3, [x19]
ffff80001139e5b8:	d28000c1 	mov	x1, #0x6                   	// #6
	struct netdev_notifier_info info = {
ffff80001139e5bc:	f9001fb5 	str	x21, [x29,#56]
	return nb->notifier_call(nb, val, &info);
ffff80001139e5c0:	aa1303e0 	mov	x0, x19
ffff80001139e5c4:	aa1403e2 	mov	x2, x20
ffff80001139e5c8:	d63f0060 	blr	x3
}
ffff80001139e5cc:	f94027a1 	ldr	x1, [x29,#72]
ffff80001139e5d0:	f94002c0 	ldr	x0, [x22]
			ffff80001139e5d0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e5d4:	eb00003f 	cmp	x1, x0
ffff80001139e5d8:	540000a1 	b.ne	ffff80001139e5ec <call_netdevice_unregister_notifiers+0xac>
ffff80001139e5dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e5e0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139e5e4:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff80001139e5e8:	d65f03c0 	ret
ffff80001139e5ec:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e5ec: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139e5f0 <call_netdevice_register_net_notifiers>:
{
ffff80001139e5f0:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff80001139e5f4:	910003fd 	mov	x29, sp
ffff80001139e5f8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e5fc:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139e600:	f9001bf7 	str	x23, [sp,#48]
ffff80001139e604:	aa0003f5 	mov	x21, x0
ffff80001139e608:	aa1e03e0 	mov	x0, x30
	for_each_netdev(net, dev) {
ffff80001139e60c:	aa0103f6 	mov	x22, x1
{
ffff80001139e610:	90000017 	adrp	x23, 0 <__stack_chk_guard>
			ffff80001139e610: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e614:	94000000 	bl	0 <_mcount>
			ffff80001139e614: R_AARCH64_CALL26	_mcount
ffff80001139e618:	f94002e0 	ldr	x0, [x23]
			ffff80001139e618: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	for_each_netdev(net, dev) {
ffff80001139e61c:	f8490ed4 	ldr	x20, [x22,#144]!
{
ffff80001139e620:	f9002fa0 	str	x0, [x29,#88]
	for_each_netdev(net, dev) {
ffff80001139e624:	eb1402df 	cmp	x22, x20
ffff80001139e628:	910123b3 	add	x19, x29, #0x48
ffff80001139e62c:	d1012294 	sub	x20, x20, #0x48
ffff80001139e630:	540005e0 	b.eq	ffff80001139e6ec <call_netdevice_register_net_notifiers+0xfc>
	struct netdev_notifier_info info = {
ffff80001139e634:	a9007e7f 	stp	xzr, xzr, [x19]
	return nb->notifier_call(nb, val, &info);
ffff80001139e638:	f94002a3 	ldr	x3, [x21]
	struct netdev_notifier_info info = {
ffff80001139e63c:	f9000274 	str	x20, [x19]
	return nb->notifier_call(nb, val, &info);
ffff80001139e640:	aa1503e0 	mov	x0, x21
ffff80001139e644:	d28000a1 	mov	x1, #0x5                   	// #5
ffff80001139e648:	aa1303e2 	mov	x2, x19
ffff80001139e64c:	d63f0060 	blr	x3
}

/* Restore (negative) errno value from notify return value. */
static inline int notifier_to_errno(int ret)
{
	ret &= ~NOTIFY_STOP_MASK;
ffff80001139e650:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff80001139e654:	7100041f 	cmp	w0, #0x1
ffff80001139e658:	5400030d 	b.le	ffff80001139e6b8 <call_netdevice_register_net_notifiers+0xc8>
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e65c:	f9402a82 	ldr	x2, [x20,#80]
ffff80001139e660:	52800021 	mov	w1, #0x1                   	// #1
ffff80001139e664:	eb0202df 	cmp	x22, x2
ffff80001139e668:	4b000034 	sub	w20, w1, w0
ffff80001139e66c:	d1012053 	sub	x19, x2, #0x48
ffff80001139e670:	54000100 	b.eq	ffff80001139e690 <call_netdevice_register_net_notifiers+0xa0>
		call_netdevice_unregister_notifiers(nb, dev);
ffff80001139e674:	aa1303e1 	mov	x1, x19
ffff80001139e678:	aa1503e0 	mov	x0, x21
ffff80001139e67c:	97ffffb1 	bl	ffff80001139e540 <call_netdevice_unregister_notifiers>
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e680:	f9402a73 	ldr	x19, [x19,#80]
ffff80001139e684:	eb1302df 	cmp	x22, x19
ffff80001139e688:	d1012273 	sub	x19, x19, #0x48
ffff80001139e68c:	54ffff41 	b.ne	ffff80001139e674 <call_netdevice_register_net_notifiers+0x84>
ffff80001139e690:	2a1403e0 	mov	w0, w20
}
ffff80001139e694:	f9402fa2 	ldr	x2, [x29,#88]
ffff80001139e698:	f94002e1 	ldr	x1, [x23]
			ffff80001139e698: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e69c:	eb01005f 	cmp	x2, x1
ffff80001139e6a0:	540002a1 	b.ne	ffff80001139e6f4 <call_netdevice_register_net_notifiers+0x104>
ffff80001139e6a4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e6a8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139e6ac:	f9401bf7 	ldr	x23, [sp,#48]
ffff80001139e6b0:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff80001139e6b4:	d65f03c0 	ret
	if (!(dev->flags & IFF_UP))
ffff80001139e6b8:	b9422a80 	ldr	w0, [x20,#552]
ffff80001139e6bc:	36000100 	tbz	w0, #0, ffff80001139e6dc <call_netdevice_register_net_notifiers+0xec>
	struct netdev_notifier_info info = {
ffff80001139e6c0:	a9007e7f 	stp	xzr, xzr, [x19]
	return nb->notifier_call(nb, val, &info);
ffff80001139e6c4:	f94002a3 	ldr	x3, [x21]
	struct netdev_notifier_info info = {
ffff80001139e6c8:	f9000274 	str	x20, [x19]
	return nb->notifier_call(nb, val, &info);
ffff80001139e6cc:	aa1503e0 	mov	x0, x21
ffff80001139e6d0:	d2800021 	mov	x1, #0x1                   	// #1
ffff80001139e6d4:	aa1303e2 	mov	x2, x19
ffff80001139e6d8:	d63f0060 	blr	x3
	for_each_netdev(net, dev) {
ffff80001139e6dc:	f9402694 	ldr	x20, [x20,#72]
ffff80001139e6e0:	eb1402df 	cmp	x22, x20
ffff80001139e6e4:	d1012294 	sub	x20, x20, #0x48
ffff80001139e6e8:	54fffa61 	b.ne	ffff80001139e634 <call_netdevice_register_net_notifiers+0x44>
	return 0;
ffff80001139e6ec:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139e6f0:	17ffffe9 	b	ffff80001139e694 <call_netdevice_register_net_notifiers+0xa4>
}
ffff80001139e6f4:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e6f4: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139e6f8 <dev_nit_active>:
{
ffff80001139e6f8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e6fc:	910003fd 	mov	x29, sp
ffff80001139e700:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e704:	aa0003f3 	mov	x19, x0
ffff80001139e708:	aa1e03e0 	mov	x0, x30
ffff80001139e70c:	94000000 	bl	0 <_mcount>
			ffff80001139e70c: R_AARCH64_CALL26	_mcount
ffff80001139e710:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e710: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff80001139e714:	91000021 	add	x1, x1, #0x0
			ffff80001139e714: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff80001139e718:	f9440022 	ldr	x2, [x1,#2048]
ffff80001139e71c:	91200021 	add	x1, x1, #0x800
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff80001139e720:	eb02003f 	cmp	x1, x2
ffff80001139e724:	52800020 	mov	w0, #0x1                   	// #1
ffff80001139e728:	54000080 	b.eq	ffff80001139e738 <dev_nit_active+0x40>
}
ffff80001139e72c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e730:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e734:	d65f03c0 	ret
ffff80001139e738:	f8488e60 	ldr	x0, [x19,#136]!
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff80001139e73c:	eb00027f 	cmp	x19, x0
ffff80001139e740:	1a9f07e0 	cset	w0, ne
}
ffff80001139e744:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e748:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e74c:	d65f03c0 	ret

ffff80001139e750 <netdev_bind_sb_channel_queue>:
{
ffff80001139e750:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff80001139e754:	910003fd 	mov	x29, sp
ffff80001139e758:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e75c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139e760:	aa0003f3 	mov	x19, x0
ffff80001139e764:	aa1e03e0 	mov	x0, x30
ffff80001139e768:	f9001fa1 	str	x1, [x29,#56]
ffff80001139e76c:	53001c56 	uxtb	w22, w2
ffff80001139e770:	53003c75 	uxth	w21, w3
ffff80001139e774:	53003c94 	uxth	w20, w4
ffff80001139e778:	94000000 	bl	0 <_mcount>
			ffff80001139e778: R_AARCH64_CALL26	_mcount
	if (sb_dev->num_tc >= 0 || tc >= dev->num_tc)
ffff80001139e77c:	f9401fa1 	ldr	x1, [x29,#56]
ffff80001139e780:	79d09020 	ldrsh	w0, [x1,#2120]
ffff80001139e784:	36f803a0 	tbz	w0, #31, ffff80001139e7f8 <netdev_bind_sb_channel_queue+0xa8>
ffff80001139e788:	79d09260 	ldrsh	w0, [x19,#2120]
ffff80001139e78c:	6b0002df 	cmp	w22, w0
ffff80001139e790:	5400034a 	b.ge	ffff80001139e7f8 <netdev_bind_sb_channel_queue+0xa8>
	if ((offset + count) > dev->real_num_tx_queues)
ffff80001139e794:	b943ce60 	ldr	w0, [x19,#972]
ffff80001139e798:	0b150282 	add	w2, w20, w21
ffff80001139e79c:	6b00005f 	cmp	w2, w0
ffff80001139e7a0:	540002c8 	b.hi	ffff80001139e7f8 <netdev_bind_sb_channel_queue+0xa8>
ffff80001139e7a4:	8b360836 	add	x22, x1, w22, uxtb #2
	while (count--)
ffff80001139e7a8:	510006a2 	sub	w2, w21, #0x1
	sb_dev->tc_to_txq[tc].count = count;
ffff80001139e7ac:	791096d5 	strh	w21, [x22,#2122]
	sb_dev->tc_to_txq[tc].offset = offset;
ffff80001139e7b0:	79109ad4 	strh	w20, [x22,#2124]
	while (count--)
ffff80001139e7b4:	53003c42 	uxth	w2, w2

static inline
struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev,
					 unsigned int index)
{
	return &dev->_tx[index];
ffff80001139e7b8:	52802804 	mov	w4, #0x140                 	// #320
ffff80001139e7bc:	529fffe0 	mov	w0, #0xffff                	// #65535
ffff80001139e7c0:	34000135 	cbz	w21, ffff80001139e7e4 <netdev_bind_sb_channel_queue+0x94>
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7c4:	f941e263 	ldr	x3, [x19,#960]
ffff80001139e7c8:	0b020285 	add	w5, w20, w2
	while (count--)
ffff80001139e7cc:	51000442 	sub	w2, w2, #0x1
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7d0:	9b240ca3 	smaddl	x3, w5, w4, x3
	while (count--)
ffff80001139e7d4:	53003c42 	uxth	w2, w2
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7d8:	f9003861 	str	x1, [x3,#112]
	while (count--)
ffff80001139e7dc:	6b00005f 	cmp	w2, w0
ffff80001139e7e0:	54ffff21 	b.ne	ffff80001139e7c4 <netdev_bind_sb_channel_queue+0x74>
}
ffff80001139e7e4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e7e8:	a9425bf5 	ldp	x21, x22, [sp,#32]
	return 0;
ffff80001139e7ec:	52800000 	mov	w0, #0x0                   	// #0
}
ffff80001139e7f0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff80001139e7f4:	d65f03c0 	ret
ffff80001139e7f8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e7fc:	a9425bf5 	ldp	x21, x22, [sp,#32]
		return -EINVAL;
ffff80001139e800:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff80001139e804:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff80001139e808:	d65f03c0 	ret

ffff80001139e80c <netdev_set_sb_channel>:
{
ffff80001139e80c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e810:	910003fd 	mov	x29, sp
ffff80001139e814:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e818:	aa0003f3 	mov	x19, x0
ffff80001139e81c:	aa1e03e0 	mov	x0, x30
ffff80001139e820:	53003c34 	uxth	w20, w1
ffff80001139e824:	94000000 	bl	0 <_mcount>
			ffff80001139e824: R_AARCH64_CALL26	_mcount
	if (netif_is_multiqueue(dev))
ffff80001139e828:	b943ca60 	ldr	w0, [x19,#968]
ffff80001139e82c:	7100041f 	cmp	w0, #0x1
ffff80001139e830:	54000108 	b.hi	ffff80001139e850 <netdev_set_sb_channel+0x44>
	if (channel > S16_MAX)
ffff80001139e834:	37780174 	tbnz	w20, #15, ffff80001139e860 <netdev_set_sb_channel+0x54>
	dev->num_tc = -channel;
ffff80001139e838:	4b1403f4 	neg	w20, w20
ffff80001139e83c:	79109274 	strh	w20, [x19,#2120]
	return 0;
ffff80001139e840:	52800000 	mov	w0, #0x0                   	// #0
}
ffff80001139e844:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e848:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e84c:	d65f03c0 	ret
		return -ENODEV;
ffff80001139e850:	12800240 	mov	w0, #0xffffffed            	// #-19
}
ffff80001139e854:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e858:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e85c:	d65f03c0 	ret
		return -EINVAL;
ffff80001139e860:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff80001139e864:	17fffff8 	b	ffff80001139e844 <netdev_set_sb_channel+0x38>

ffff80001139e868 <netif_get_num_default_rss_queues>:
{
ffff80001139e868:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff80001139e86c:	910003fd 	mov	x29, sp
ffff80001139e870:	aa1e03e0 	mov	x0, x30
ffff80001139e874:	94000000 	bl	0 <_mcount>
			ffff80001139e874: R_AARCH64_CALL26	_mcount
 * of previous kernel.
 */

static inline bool is_kdump_kernel(void)
{
	return elfcorehdr_addr != ELFCORE_ADDR_MAX;
ffff80001139e878:	90000000 	adrp	x0, 0 <elfcorehdr_addr>
			ffff80001139e878: R_AARCH64_ADR_PREL_PG_HI21	elfcorehdr_addr
		1 : min_t(int, DEFAULT_MAX_NUM_RSS_QUEUES, num_online_cpus());
ffff80001139e87c:	f9400001 	ldr	x1, [x0]
			ffff80001139e87c: R_AARCH64_LDST64_ABS_LO12_NC	elfcorehdr_addr
ffff80001139e880:	52800020 	mov	w0, #0x1                   	// #1
ffff80001139e884:	b100043f 	cmn	x1, #0x1
ffff80001139e888:	540000c1 	b.ne	ffff80001139e8a0 <netif_get_num_default_rss_queues+0x38>
ffff80001139e88c:	90000000 	adrp	x0, 0 <__num_online_cpus>
			ffff80001139e88c: R_AARCH64_ADR_PREL_PG_HI21	__num_online_cpus
ffff80001139e890:	b9400000 	ldr	w0, [x0]
			ffff80001139e890: R_AARCH64_LDST32_ABS_LO12_NC	__num_online_cpus
ffff80001139e894:	52800101 	mov	w1, #0x8                   	// #8
ffff80001139e898:	7100201f 	cmp	w0, #0x8
ffff80001139e89c:	1a81d000 	csel	w0, w0, w1, le
}
ffff80001139e8a0:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff80001139e8a4:	d65f03c0 	ret

ffff80001139e8a8 <passthru_features_check>:
{
ffff80001139e8a8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e8ac:	910003fd 	mov	x29, sp
ffff80001139e8b0:	aa1e03e0 	mov	x0, x30
ffff80001139e8b4:	f9000fa2 	str	x2, [x29,#24]
ffff80001139e8b8:	94000000 	bl	0 <_mcount>
			ffff80001139e8b8: R_AARCH64_CALL26	_mcount
}
ffff80001139e8bc:	f9400fa2 	ldr	x2, [x29,#24]
ffff80001139e8c0:	aa0203e0 	mov	x0, x2
ffff80001139e8c4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e8c8:	d65f03c0 	ret

ffff80001139e8cc <dev_pick_tx_zero>:
{
ffff80001139e8cc:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff80001139e8d0:	910003fd 	mov	x29, sp
ffff80001139e8d4:	aa1e03e0 	mov	x0, x30
ffff80001139e8d8:	94000000 	bl	0 <_mcount>
			ffff80001139e8d8: R_AARCH64_CALL26	_mcount
}
ffff80001139e8dc:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139e8e0:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff80001139e8e4:	d65f03c0 	ret

ffff80001139e8e8 <gro_find_receive_by_type>:
{
ffff80001139e8e8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e8ec:	910003fd 	mov	x29, sp
ffff80001139e8f0:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e8f4:	53003c13 	uxth	w19, w0
ffff80001139e8f8:	aa1e03e0 	mov	x0, x30
ffff80001139e8fc:	94000000 	bl	0 <_mcount>
			ffff80001139e8fc: R_AARCH64_CALL26	_mcount
ffff80001139e900:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e900: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff80001139e904:	91000042 	add	x2, x2, #0x0
			ffff80001139e904: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff80001139e908:	f9440840 	ldr	x0, [x2,#2064]
ffff80001139e90c:	91204042 	add	x2, x2, #0x810
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e910:	eb00005f 	cmp	x2, x0
ffff80001139e914:	d1008000 	sub	x0, x0, #0x20
ffff80001139e918:	54000100 	b.eq	ffff80001139e938 <gro_find_receive_by_type+0x50>
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff80001139e91c:	79400001 	ldrh	w1, [x0]
ffff80001139e920:	6b13003f 	cmp	w1, w19
ffff80001139e924:	54000120 	b.eq	ffff80001139e948 <gro_find_receive_by_type+0x60>
ffff80001139e928:	f9401000 	ldr	x0, [x0,#32]
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e92c:	eb00005f 	cmp	x2, x0
ffff80001139e930:	d1008000 	sub	x0, x0, #0x20
ffff80001139e934:	54ffff41 	b.ne	ffff80001139e91c <gro_find_receive_by_type+0x34>
	return NULL;
ffff80001139e938:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139e93c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e940:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e944:	d65f03c0 	ret
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff80001139e948:	f9400801 	ldr	x1, [x0,#16]
ffff80001139e94c:	b4fffee1 	cbz	x1, ffff80001139e928 <gro_find_receive_by_type+0x40>
}
ffff80001139e950:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e954:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e958:	d65f03c0 	ret

ffff80001139e95c <gro_find_complete_by_type>:
{
ffff80001139e95c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e960:	910003fd 	mov	x29, sp
ffff80001139e964:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e968:	53003c13 	uxth	w19, w0
ffff80001139e96c:	aa1e03e0 	mov	x0, x30
ffff80001139e970:	94000000 	bl	0 <_mcount>
			ffff80001139e970: R_AARCH64_CALL26	_mcount
ffff80001139e974:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff80001139e974: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff80001139e978:	91000042 	add	x2, x2, #0x0
			ffff80001139e978: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff80001139e97c:	f9440840 	ldr	x0, [x2,#2064]
ffff80001139e980:	91204042 	add	x2, x2, #0x810
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e984:	eb00005f 	cmp	x2, x0
ffff80001139e988:	d1008000 	sub	x0, x0, #0x20
ffff80001139e98c:	54000100 	b.eq	ffff80001139e9ac <gro_find_complete_by_type+0x50>
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff80001139e990:	79400001 	ldrh	w1, [x0]
ffff80001139e994:	6b13003f 	cmp	w1, w19
ffff80001139e998:	54000120 	b.eq	ffff80001139e9bc <gro_find_complete_by_type+0x60>
ffff80001139e99c:	f9401000 	ldr	x0, [x0,#32]
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e9a0:	eb00005f 	cmp	x2, x0
ffff80001139e9a4:	d1008000 	sub	x0, x0, #0x20
ffff80001139e9a8:	54ffff41 	b.ne	ffff80001139e990 <gro_find_complete_by_type+0x34>
	return NULL;
ffff80001139e9ac:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139e9b0:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e9b4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e9b8:	d65f03c0 	ret
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff80001139e9bc:	f9400c01 	ldr	x1, [x0,#24]
ffff80001139e9c0:	b4fffee1 	cbz	x1, ffff80001139e99c <gro_find_complete_by_type+0x40>
}
ffff80001139e9c4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e9c8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e9cc:	d65f03c0 	ret

ffff80001139e9d0 <____netdev_has_upper_dev>:
	}
	return NULL;
}

static int ____netdev_has_upper_dev(struct net_device *upper_dev, void *data)
{
ffff80001139e9d0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139e9d4:	910003fd 	mov	x29, sp
ffff80001139e9d8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e9dc:	aa0003f3 	mov	x19, x0
ffff80001139e9e0:	aa1e03e0 	mov	x0, x30
ffff80001139e9e4:	f90017a1 	str	x1, [x29,#40]
ffff80001139e9e8:	94000000 	bl	0 <_mcount>
			ffff80001139e9e8: R_AARCH64_CALL26	_mcount
	struct net_device *dev = data;

	return upper_dev == dev;
ffff80001139e9ec:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139e9f0:	eb13003f 	cmp	x1, x19
}
ffff80001139e9f4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e9f8:	1a9f17e0 	cset	w0, eq
ffff80001139e9fc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ea00:	d65f03c0 	ret

ffff80001139ea04 <netdev_adjacent_get_private>:

	return !list_empty(&dev->adj_list.lower);
}

void *netdev_adjacent_get_private(struct list_head *adj_list)
{
ffff80001139ea04:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139ea08:	910003fd 	mov	x29, sp
ffff80001139ea0c:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ea10:	aa0003f3 	mov	x19, x0
ffff80001139ea14:	aa1e03e0 	mov	x0, x30
ffff80001139ea18:	94000000 	bl	0 <_mcount>
			ffff80001139ea18: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *adj;

	adj = list_entry(adj_list, struct netdev_adjacent, list);

	return adj->private;
}
ffff80001139ea1c:	f85f8260 	ldur	x0, [x19,#-8]
ffff80001139ea20:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ea24:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139ea28:	d65f03c0 	ret

ffff80001139ea2c <netdev_upper_get_next_dev_rcu>:
 * Gets the next device from the dev's upper list, starting from iter
 * position. The caller must hold RCU read lock.
 */
struct net_device *netdev_upper_get_next_dev_rcu(struct net_device *dev,
						 struct list_head **iter)
{
ffff80001139ea2c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139ea30:	910003fd 	mov	x29, sp
ffff80001139ea34:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ea38:	aa0003f3 	mov	x19, x0
ffff80001139ea3c:	aa1e03e0 	mov	x0, x30
ffff80001139ea40:	f90017a1 	str	x1, [x29,#40]
ffff80001139ea44:	94000000 	bl	0 <_mcount>
			ffff80001139ea44: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *upper;

	WARN_ON_ONCE(!rcu_read_lock_held() && !lockdep_rtnl_is_held());

	upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ea48:	f94017a1 	ldr	x1, [x29,#40]

	if (&upper->list == &dev->adj_list.upper)
ffff80001139ea4c:	9102a273 	add	x19, x19, #0xa8
	upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ea50:	f9400020 	ldr	x0, [x1]
ffff80001139ea54:	f9400002 	ldr	x2, [x0]
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ea58:	eb13005f 	cmp	x2, x19
ffff80001139ea5c:	540000c0 	b.eq	ffff80001139ea74 <netdev_upper_get_next_dev_rcu+0x48>
		return NULL;

	*iter = &upper->list;
ffff80001139ea60:	f9000022 	str	x2, [x1]

	return upper->dev;
ffff80001139ea64:	f85e8040 	ldur	x0, [x2,#-24]
}
ffff80001139ea68:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ea6c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ea70:	d65f03c0 	ret
		return NULL;
ffff80001139ea74:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139ea78:	17fffffc 	b	ffff80001139ea68 <netdev_upper_get_next_dev_rcu+0x3c>

ffff80001139ea7c <__netdev_walk_all_upper_dev>:

static int __netdev_walk_all_upper_dev(struct net_device *dev,
				       int (*fn)(struct net_device *dev,
						 void *data),
				       void *data)
{
ffff80001139ea7c:	a9b17bfd 	stp	x29, x30, [sp,#-240]!
ffff80001139ea80:	910003fd 	mov	x29, sp
ffff80001139ea84:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139ea88:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139ea8c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139ea90:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff80001139ea94:	aa0003f6 	mov	x22, x0
ffff80001139ea98:	aa1e03e0 	mov	x0, x30
ffff80001139ea9c:	aa0103f9 	mov	x25, x1
ffff80001139eaa0:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff80001139eaa0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139eaa4:	aa0203f8 	mov	x24, x2
ffff80001139eaa8:	94000000 	bl	0 <_mcount>
			ffff80001139eaa8: R_AARCH64_CALL26	_mcount
ffff80001139eaac:	f9400340 	ldr	x0, [x26]
			ffff80001139eaac: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct list_head *niter, *iter, *iter_stack[MAX_NEST_DEV + 1];
	int ret, cur = 0;
	bool ignore;

	now = dev;
	iter = &dev->adj_list.upper;
ffff80001139eab0:	9102a2d3 	add	x19, x22, #0xa8
{
ffff80001139eab4:	f90077a0 	str	x0, [x29,#232]
	iter = &dev->adj_list.upper;
ffff80001139eab8:	aa1303e1 	mov	x1, x19
	now = dev;
ffff80001139eabc:	aa1603f4 	mov	x20, x22
	int ret, cur = 0;
ffff80001139eac0:	52800015 	mov	w21, #0x0                   	// #0

		if (!next) {
			if (!cur)
				return 0;
			next = dev_stack[--cur];
			niter = iter_stack[cur];
ffff80001139eac4:	910283b7 	add	x23, x29, #0xa0
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139eac8:	f9400263 	ldr	x3, [x19]
	if (&upper->list == &dev->adj_list.upper)
ffff80001139eacc:	eb01007f 	cmp	x3, x1
ffff80001139ead0:	aa0303f3 	mov	x19, x3
ffff80001139ead4:	540002c0 	b.eq	ffff80001139eb2c <__netdev_walk_all_upper_dev+0xb0>
	return upper->dev;
ffff80001139ead8:	f85e8064 	ldur	x4, [x3,#-24]
	*ignore = upper->ignore;
ffff80001139eadc:	385f1060 	ldurb	w0, [x3,#-15]
			if (!udev)
ffff80001139eae0:	b4000264 	cbz	x4, ffff80001139eb2c <__netdev_walk_all_upper_dev+0xb0>
			if (ignore)
ffff80001139eae4:	35ffff20 	cbnz	w0, ffff80001139eac8 <__netdev_walk_all_upper_dev+0x4c>
			dev_stack[cur] = now;
ffff80001139eae8:	910163a0 	add	x0, x29, #0x58
ffff80001139eaec:	f835d814 	str	x20, [x0,w21,sxtw #3]
			iter_stack[cur++] = iter;
ffff80001139eaf0:	f835dae3 	str	x3, [x23,w21,sxtw #3]
			niter = &udev->adj_list.upper;
ffff80001139eaf4:	9102a093 	add	x19, x4, #0xa8
			iter_stack[cur++] = iter;
ffff80001139eaf8:	110006b5 	add	w21, w21, #0x1
	return upper->dev;
ffff80001139eafc:	aa0403f4 	mov	x20, x4
		if (now != dev) {
ffff80001139eb00:	eb16029f 	cmp	x20, x22
ffff80001139eb04:	540000a0 	b.eq	ffff80001139eb18 <__netdev_walk_all_upper_dev+0x9c>
			ret = fn(now, data);
ffff80001139eb08:	aa1403e0 	mov	x0, x20
ffff80001139eb0c:	aa1803e1 	mov	x1, x24
ffff80001139eb10:	d63f0320 	blr	x25
			if (ret)
ffff80001139eb14:	350001a0 	cbnz	w0, ffff80001139eb48 <__netdev_walk_all_upper_dev+0xcc>
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139eb18:	f9400263 	ldr	x3, [x19]
ffff80001139eb1c:	9102a281 	add	x1, x20, #0xa8
	if (&upper->list == &dev->adj_list.upper)
ffff80001139eb20:	eb01007f 	cmp	x3, x1
ffff80001139eb24:	aa0303f3 	mov	x19, x3
ffff80001139eb28:	54fffd81 	b.ne	ffff80001139ead8 <__netdev_walk_all_upper_dev+0x5c>
			if (!cur)
ffff80001139eb2c:	340000d5 	cbz	w21, ffff80001139eb44 <__netdev_walk_all_upper_dev+0xc8>
			next = dev_stack[--cur];
ffff80001139eb30:	510006b5 	sub	w21, w21, #0x1
ffff80001139eb34:	910163a0 	add	x0, x29, #0x58
ffff80001139eb38:	f875d814 	ldr	x20, [x0,w21,sxtw #3]
			niter = iter_stack[cur];
ffff80001139eb3c:	f875daf3 	ldr	x19, [x23,w21,sxtw #3]
ffff80001139eb40:	17fffff0 	b	ffff80001139eb00 <__netdev_walk_all_upper_dev+0x84>
				return 0;
ffff80001139eb44:	2a1503e0 	mov	w0, w21
		now = next;
		iter = niter;
	}

	return 0;
}
ffff80001139eb48:	f94077a2 	ldr	x2, [x29,#232]
ffff80001139eb4c:	f9400341 	ldr	x1, [x26]
			ffff80001139eb4c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139eb50:	eb01005f 	cmp	x2, x1
ffff80001139eb54:	540000e1 	b.ne	ffff80001139eb70 <__netdev_walk_all_upper_dev+0xf4>
ffff80001139eb58:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139eb5c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139eb60:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff80001139eb64:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff80001139eb68:	a8cf7bfd 	ldp	x29, x30, [sp],#240
ffff80001139eb6c:	d65f03c0 	ret
ffff80001139eb70:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139eb70: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139eb74 <netdev_walk_all_upper_dev_rcu>:

int netdev_walk_all_upper_dev_rcu(struct net_device *dev,
				  int (*fn)(struct net_device *dev,
					    void *data),
				  void *data)
{
ffff80001139eb74:	a9b17bfd 	stp	x29, x30, [sp,#-240]!
ffff80001139eb78:	910003fd 	mov	x29, sp
ffff80001139eb7c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139eb80:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139eb84:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139eb88:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff80001139eb8c:	aa0003f6 	mov	x22, x0
ffff80001139eb90:	aa1e03e0 	mov	x0, x30
ffff80001139eb94:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff80001139eb94: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139eb98:	aa0103f9 	mov	x25, x1
ffff80001139eb9c:	aa0203f8 	mov	x24, x2
ffff80001139eba0:	94000000 	bl	0 <_mcount>
			ffff80001139eba0: R_AARCH64_CALL26	_mcount
ffff80001139eba4:	f9400340 	ldr	x0, [x26]
			ffff80001139eba4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct net_device *udev, *next, *now, *dev_stack[MAX_NEST_DEV + 1];
	struct list_head *niter, *iter, *iter_stack[MAX_NEST_DEV + 1];
	int ret, cur = 0;

	now = dev;
	iter = &dev->adj_list.upper;
ffff80001139eba8:	9102a2d5 	add	x21, x22, #0xa8
{
ffff80001139ebac:	f90077a0 	str	x0, [x29,#232]
ffff80001139ebb0:	f94002a3 	ldr	x3, [x21]
	iter = &dev->adj_list.upper;
ffff80001139ebb4:	aa1503e0 	mov	x0, x21
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ebb8:	eb03001f 	cmp	x0, x3
	now = dev;
ffff80001139ebbc:	aa1603f3 	mov	x19, x22
	int ret, cur = 0;
ffff80001139ebc0:	52800014 	mov	w20, #0x0                   	// #0

		if (!next) {
			if (!cur)
				return 0;
			next = dev_stack[--cur];
			niter = iter_stack[cur];
ffff80001139ebc4:	910283b7 	add	x23, x29, #0xa0
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ebc8:	54000260 	b.eq	ffff80001139ec14 <netdev_walk_all_upper_dev_rcu+0xa0>
	return upper->dev;
ffff80001139ebcc:	f85e8064 	ldur	x4, [x3,#-24]
			if (!udev)
ffff80001139ebd0:	b4000224 	cbz	x4, ffff80001139ec14 <netdev_walk_all_upper_dev_rcu+0xa0>
			dev_stack[cur] = now;
ffff80001139ebd4:	910163a0 	add	x0, x29, #0x58
ffff80001139ebd8:	f834d813 	str	x19, [x0,w20,sxtw #3]
			iter_stack[cur++] = iter;
ffff80001139ebdc:	f834dae3 	str	x3, [x23,w20,sxtw #3]
			niter = &udev->adj_list.upper;
ffff80001139ebe0:	9102a095 	add	x21, x4, #0xa8
			iter_stack[cur++] = iter;
ffff80001139ebe4:	11000694 	add	w20, w20, #0x1
ffff80001139ebe8:	aa0403f3 	mov	x19, x4
		if (now != dev) {
ffff80001139ebec:	eb16027f 	cmp	x19, x22
ffff80001139ebf0:	540000a0 	b.eq	ffff80001139ec04 <netdev_walk_all_upper_dev_rcu+0x90>
			ret = fn(now, data);
ffff80001139ebf4:	aa1303e0 	mov	x0, x19
ffff80001139ebf8:	aa1803e1 	mov	x1, x24
ffff80001139ebfc:	d63f0320 	blr	x25
			if (ret)
ffff80001139ec00:	35000180 	cbnz	w0, ffff80001139ec30 <netdev_walk_all_upper_dev_rcu+0xbc>
ffff80001139ec04:	f94002a3 	ldr	x3, [x21]
ffff80001139ec08:	9102a260 	add	x0, x19, #0xa8
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ec0c:	eb03001f 	cmp	x0, x3
ffff80001139ec10:	54fffde1 	b.ne	ffff80001139ebcc <netdev_walk_all_upper_dev_rcu+0x58>
			if (!cur)
ffff80001139ec14:	340000d4 	cbz	w20, ffff80001139ec2c <netdev_walk_all_upper_dev_rcu+0xb8>
			next = dev_stack[--cur];
ffff80001139ec18:	51000694 	sub	w20, w20, #0x1
ffff80001139ec1c:	910163a0 	add	x0, x29, #0x58
ffff80001139ec20:	f874d813 	ldr	x19, [x0,w20,sxtw #3]
			niter = iter_stack[cur];
ffff80001139ec24:	f874daf5 	ldr	x21, [x23,w20,sxtw #3]
ffff80001139ec28:	17fffff1 	b	ffff80001139ebec <netdev_walk_all_upper_dev_rcu+0x78>
				return 0;
ffff80001139ec2c:	2a1403e0 	mov	w0, w20
		now = next;
		iter = niter;
	}

	return 0;
}
ffff80001139ec30:	f94077a2 	ldr	x2, [x29,#232]
ffff80001139ec34:	f9400341 	ldr	x1, [x26]
			ffff80001139ec34: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139ec38:	eb01005f 	cmp	x2, x1
ffff80001139ec3c:	540000e1 	b.ne	ffff80001139ec58 <netdev_walk_all_upper_dev_rcu+0xe4>
ffff80001139ec40:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139ec44:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139ec48:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff80001139ec4c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff80001139ec50:	a8cf7bfd 	ldp	x29, x30, [sp],#240
ffff80001139ec54:	d65f03c0 	ret
ffff80001139ec58:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139ec58: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139ec5c <netdev_has_upper_dev_all_rcu>:
{
ffff80001139ec5c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139ec60:	910003fd 	mov	x29, sp
ffff80001139ec64:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ec68:	aa0003f3 	mov	x19, x0
ffff80001139ec6c:	aa1e03e0 	mov	x0, x30
ffff80001139ec70:	f90017a1 	str	x1, [x29,#40]
ffff80001139ec74:	94000000 	bl	0 <_mcount>
			ffff80001139ec74: R_AARCH64_CALL26	_mcount
	return !!netdev_walk_all_upper_dev_rcu(dev, ____netdev_has_upper_dev,
ffff80001139ec78:	f94017a2 	ldr	x2, [x29,#40]
ffff80001139ec7c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ec7c: R_AARCH64_ADR_PREL_PG_HI21	.text+0x654
ffff80001139ec80:	aa1303e0 	mov	x0, x19
ffff80001139ec84:	91000021 	add	x1, x1, #0x0
			ffff80001139ec84: R_AARCH64_ADD_ABS_LO12_NC	.text+0x654
ffff80001139ec88:	94000000 	bl	ffff80001139eb74 <netdev_walk_all_upper_dev_rcu>
			ffff80001139ec88: R_AARCH64_CALL26	netdev_walk_all_upper_dev_rcu
}
ffff80001139ec8c:	f9400bf3 	ldr	x19, [sp,#16]
	return !!netdev_walk_all_upper_dev_rcu(dev, ____netdev_has_upper_dev,
ffff80001139ec90:	6b1f001f 	cmp	w0, wzr
}
ffff80001139ec94:	1a9f07e0 	cset	w0, ne
ffff80001139ec98:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ec9c:	d65f03c0 	ret

ffff80001139eca0 <netdev_lower_get_next_private>:
 * RTNL lock or its own locking that guarantees that the neighbour lower
 * list will remain unchanged.
 */
void *netdev_lower_get_next_private(struct net_device *dev,
				    struct list_head **iter)
{
ffff80001139eca0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139eca4:	910003fd 	mov	x29, sp
ffff80001139eca8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ecac:	aa0003f3 	mov	x19, x0
ffff80001139ecb0:	aa1e03e0 	mov	x0, x30
ffff80001139ecb4:	f90017a1 	str	x1, [x29,#40]
ffff80001139ecb8:	94000000 	bl	0 <_mcount>
			ffff80001139ecb8: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *lower;

	lower = list_entry(*iter, struct netdev_adjacent, list);
ffff80001139ecbc:	f94017a1 	ldr	x1, [x29,#40]

	if (&lower->list == &dev->adj_list.lower)
ffff80001139ecc0:	9102e273 	add	x19, x19, #0xb8
	lower = list_entry(*iter, struct netdev_adjacent, list);
ffff80001139ecc4:	f9400022 	ldr	x2, [x1]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ecc8:	eb13005f 	cmp	x2, x19
ffff80001139eccc:	540000e0 	b.eq	ffff80001139ece8 <netdev_lower_get_next_private+0x48>
		return NULL;

	*iter = lower->list.next;
ffff80001139ecd0:	f9400040 	ldr	x0, [x2]
ffff80001139ecd4:	f9000020 	str	x0, [x1]

	return lower->private;
ffff80001139ecd8:	f85f8040 	ldur	x0, [x2,#-8]
}
ffff80001139ecdc:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ece0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ece4:	d65f03c0 	ret
		return NULL;
ffff80001139ece8:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139ecec:	17fffffc 	b	ffff80001139ecdc <netdev_lower_get_next_private+0x3c>

ffff80001139ecf0 <netdev_lower_get_next_private_rcu>:
 * Gets the next netdev_adjacent->private from the dev's lower neighbour
 * list, starting from iter position. The caller must hold RCU read lock.
 */
void *netdev_lower_get_next_private_rcu(struct net_device *dev,
					struct list_head **iter)
{
ffff80001139ecf0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139ecf4:	910003fd 	mov	x29, sp
ffff80001139ecf8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ecfc:	aa0003f3 	mov	x19, x0
ffff80001139ed00:	aa1e03e0 	mov	x0, x30
ffff80001139ed04:	f90017a1 	str	x1, [x29,#40]
ffff80001139ed08:	94000000 	bl	0 <_mcount>
			ffff80001139ed08: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *lower;

	WARN_ON_ONCE(!rcu_read_lock_held());

	lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ed0c:	f94017a1 	ldr	x1, [x29,#40]

	if (&lower->list == &dev->adj_list.lower)
ffff80001139ed10:	9102e273 	add	x19, x19, #0xb8
	lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ed14:	f9400020 	ldr	x0, [x1]
ffff80001139ed18:	f9400002 	ldr	x2, [x0]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ed1c:	eb13005f 	cmp	x2, x19
ffff80001139ed20:	540000c0 	b.eq	ffff80001139ed38 <netdev_lower_get_next_private_rcu+0x48>
		return NULL;

	*iter = &lower->list;
ffff80001139ed24:	f9000022 	str	x2, [x1]

	return lower->private;
ffff80001139ed28:	f85f8040 	ldur	x0, [x2,#-8]
}
ffff80001139ed2c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ed30:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ed34:	d65f03c0 	ret
		return NULL;
ffff80001139ed38:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139ed3c:	17fffffc 	b	ffff80001139ed2c <netdev_lower_get_next_private_rcu+0x3c>

ffff80001139ed40 <netdev_lower_get_next>:
 * list, starting from iter position. The caller must hold RTNL lock or
 * its own locking that guarantees that the neighbour lower
 * list will remain unchanged.
 */
void *netdev_lower_get_next(struct net_device *dev, struct list_head **iter)
{
ffff80001139ed40:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139ed44:	910003fd 	mov	x29, sp
ffff80001139ed48:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ed4c:	aa0003f3 	mov	x19, x0
ffff80001139ed50:	aa1e03e0 	mov	x0, x30
ffff80001139ed54:	f90017a1 	str	x1, [x29,#40]
ffff80001139ed58:	94000000 	bl	0 <_mcount>
			ffff80001139ed58: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *lower;

	lower = list_entry(*iter, struct netdev_adjacent, list);
ffff80001139ed5c:	f94017a1 	ldr	x1, [x29,#40]

	if (&lower->list == &dev->adj_list.lower)
ffff80001139ed60:	9102e273 	add	x19, x19, #0xb8
	lower = list_entry(*iter, struct netdev_adjacent, list);
ffff80001139ed64:	f9400022 	ldr	x2, [x1]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ed68:	eb13005f 	cmp	x2, x19
ffff80001139ed6c:	540000e0 	b.eq	ffff80001139ed88 <netdev_lower_get_next+0x48>
		return NULL;

	*iter = lower->list.next;
ffff80001139ed70:	f9400040 	ldr	x0, [x2]
ffff80001139ed74:	f9000020 	str	x0, [x1]

	return lower->dev;
ffff80001139ed78:	f85e8040 	ldur	x0, [x2,#-24]
}
ffff80001139ed7c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ed80:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139ed84:	d65f03c0 	ret
		return NULL;
ffff80001139ed88:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139ed8c:	17fffffc 	b	ffff80001139ed7c <netdev_lower_get_next+0x3c>

ffff80001139ed90 <netdev_walk_all_lower_dev>:

int netdev_walk_all_lower_dev(struct net_device *dev,
			      int (*fn)(struct net_device *dev,
					void *data),
			      void *data)
{
ffff80001139ed90:	a9b17bfd 	stp	x29, x30, [sp,#-240]!
ffff80001139ed94:	910003fd 	mov	x29, sp
ffff80001139ed98:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139ed9c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139eda0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139eda4:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff80001139eda8:	aa0003f6 	mov	x22, x0
ffff80001139edac:	aa1e03e0 	mov	x0, x30
ffff80001139edb0:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff80001139edb0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139edb4:	aa0103f9 	mov	x25, x1
ffff80001139edb8:	aa0203f8 	mov	x24, x2
ffff80001139edbc:	94000000 	bl	0 <_mcount>
			ffff80001139edbc: R_AARCH64_CALL26	_mcount
ffff80001139edc0:	f9400340 	ldr	x0, [x26]
			ffff80001139edc0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct net_device *ldev, *next, *now, *dev_stack[MAX_NEST_DEV + 1];
	struct list_head *niter, *iter, *iter_stack[MAX_NEST_DEV + 1];
	int ret, cur = 0;

	now = dev;
	iter = &dev->adj_list.lower;
ffff80001139edc4:	9102e2d5 	add	x21, x22, #0xb8
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139edc8:	f94002a3 	ldr	x3, [x21]
{
ffff80001139edcc:	f90077a0 	str	x0, [x29,#232]
	iter = &dev->adj_list.lower;
ffff80001139edd0:	aa1503e0 	mov	x0, x21
	if (&lower->list == &dev->adj_list.lower)
ffff80001139edd4:	eb03001f 	cmp	x0, x3
	now = dev;
ffff80001139edd8:	aa1603f3 	mov	x19, x22
	int ret, cur = 0;
ffff80001139eddc:	52800014 	mov	w20, #0x0                   	// #0

		if (!next) {
			if (!cur)
				return 0;
			next = dev_stack[--cur];
			niter = iter_stack[cur];
ffff80001139ede0:	910283b7 	add	x23, x29, #0xa0
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ede4:	54000260 	b.eq	ffff80001139ee30 <netdev_walk_all_lower_dev+0xa0>
	return lower->dev;
ffff80001139ede8:	f85e8064 	ldur	x4, [x3,#-24]
			if (!ldev)
ffff80001139edec:	b4000224 	cbz	x4, ffff80001139ee30 <netdev_walk_all_lower_dev+0xa0>
			dev_stack[cur] = now;
ffff80001139edf0:	910163a0 	add	x0, x29, #0x58
ffff80001139edf4:	f834d813 	str	x19, [x0,w20,sxtw #3]
			iter_stack[cur++] = iter;
ffff80001139edf8:	f834dae3 	str	x3, [x23,w20,sxtw #3]
			niter = &ldev->adj_list.lower;
ffff80001139edfc:	9102e095 	add	x21, x4, #0xb8
			iter_stack[cur++] = iter;
ffff80001139ee00:	11000694 	add	w20, w20, #0x1
ffff80001139ee04:	aa0403f3 	mov	x19, x4
		if (now != dev) {
ffff80001139ee08:	eb16027f 	cmp	x19, x22
ffff80001139ee0c:	540000a0 	b.eq	ffff80001139ee20 <netdev_walk_all_lower_dev+0x90>
			ret = fn(now, data);
ffff80001139ee10:	aa1303e0 	mov	x0, x19
ffff80001139ee14:	aa1803e1 	mov	x1, x24
ffff80001139ee18:	d63f0320 	blr	x25
			if (ret)
ffff80001139ee1c:	35000180 	cbnz	w0, ffff80001139ee4c <netdev_walk_all_lower_dev+0xbc>
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139ee20:	f94002a3 	ldr	x3, [x21]
ffff80001139ee24:	9102e260 	add	x0, x19, #0xb8
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ee28:	eb03001f 	cmp	x0, x3
ffff80001139ee2c:	54fffde1 	b.ne	ffff80001139ede8 <netdev_walk_all_lower_dev+0x58>
			if (!cur)
ffff80001139ee30:	340000d4 	cbz	w20, ffff80001139ee48 <netdev_walk_all_lower_dev+0xb8>
			next = dev_stack[--cur];
ffff80001139ee34:	51000694 	sub	w20, w20, #0x1
ffff80001139ee38:	910163a0 	add	x0, x29, #0x58
ffff80001139ee3c:	f874d813 	ldr	x19, [x0,w20,sxtw #3]
			niter = iter_stack[cur];
ffff80001139ee40:	f874daf5 	ldr	x21, [x23,w20,sxtw #3]
ffff80001139ee44:	17fffff1 	b	ffff80001139ee08 <netdev_walk_all_lower_dev+0x78>
				return 0;
ffff80001139ee48:	2a1403e0 	mov	w0, w20
		now = next;
		iter = niter;
	}

	return 0;
}
ffff80001139ee4c:	f94077a2 	ldr	x2, [x29,#232]
ffff80001139ee50:	f9400341 	ldr	x1, [x26]
			ffff80001139ee50: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139ee54:	eb01005f 	cmp	x2, x1
ffff80001139ee58:	540000e1 	b.ne	ffff80001139ee74 <netdev_walk_all_lower_dev+0xe4>
ffff80001139ee5c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139ee60:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139ee64:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff80001139ee68:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff80001139ee6c:	a8cf7bfd 	ldp	x29, x30, [sp],#240
ffff80001139ee70:	d65f03c0 	ret
ffff80001139ee74:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139ee74: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139ee78 <netdev_next_lower_dev_rcu>:
	return 0;
}

struct net_device *netdev_next_lower_dev_rcu(struct net_device *dev,
					     struct list_head **iter)
{
ffff80001139ee78:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139ee7c:	910003fd 	mov	x29, sp
ffff80001139ee80:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ee84:	aa0003f3 	mov	x19, x0
ffff80001139ee88:	aa1e03e0 	mov	x0, x30
ffff80001139ee8c:	f90017a1 	str	x1, [x29,#40]
ffff80001139ee90:	94000000 	bl	0 <_mcount>
			ffff80001139ee90: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *lower;

	lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ee94:	f94017a1 	ldr	x1, [x29,#40]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ee98:	9102e273 	add	x19, x19, #0xb8
	lower = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ee9c:	f9400020 	ldr	x0, [x1]
ffff80001139eea0:	f9400002 	ldr	x2, [x0]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139eea4:	eb13005f 	cmp	x2, x19
ffff80001139eea8:	540000c0 	b.eq	ffff80001139eec0 <netdev_next_lower_dev_rcu+0x48>
		return NULL;

	*iter = &lower->list;
ffff80001139eeac:	f9000022 	str	x2, [x1]

	return lower->dev;
ffff80001139eeb0:	f85e8040 	ldur	x0, [x2,#-24]
}
ffff80001139eeb4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139eeb8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139eebc:	d65f03c0 	ret
		return NULL;
ffff80001139eec0:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139eec4:	17fffffc 	b	ffff80001139eeb4 <netdev_next_lower_dev_rcu+0x3c>

ffff80001139eec8 <__netdev_upper_depth>:
EXPORT_SYMBOL(netdev_next_lower_dev_rcu);

static u8 __netdev_upper_depth(struct net_device *dev)
{
ffff80001139eec8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139eecc:	910003fd 	mov	x29, sp
ffff80001139eed0:	f9000bf3 	str	x19, [sp,#16]
ffff80001139eed4:	aa0003f3 	mov	x19, x0
ffff80001139eed8:	aa1e03e0 	mov	x0, x30
ffff80001139eedc:	94000000 	bl	0 <_mcount>
			ffff80001139eedc: R_AARCH64_CALL26	_mcount
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139eee0:	f9405662 	ldr	x2, [x19,#168]
	struct net_device *udev;
	struct list_head *iter;
	u8 max_depth = 0;
	bool ignore;

	for (iter = &dev->adj_list.upper,
ffff80001139eee4:	9102a264 	add	x4, x19, #0xa8
	if (&upper->list == &dev->adj_list.upper)
ffff80001139eee8:	eb02009f 	cmp	x4, x2
ffff80001139eeec:	54000280 	b.eq	ffff80001139ef3c <__netdev_upper_depth+0x74>
	return upper->dev;
ffff80001139eef0:	f85e8043 	ldur	x3, [x2,#-24]
	*ignore = upper->ignore;
ffff80001139eef4:	385f1041 	ldurb	w1, [x2,#-15]
	for (iter = &dev->adj_list.upper,
ffff80001139eef8:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139eefc:	b40001a3 	cbz	x3, ffff80001139ef30 <__netdev_upper_depth+0x68>
	     udev = __netdev_next_upper_dev(dev, &iter, &ignore);
	     udev;
	     udev = __netdev_next_upper_dev(dev, &iter, &ignore)) {
		if (ignore)
ffff80001139ef00:	350000a1 	cbnz	w1, ffff80001139ef14 <__netdev_upper_depth+0x4c>
			continue;
		if (max_depth < udev->upper_level)
ffff80001139ef04:	3949c061 	ldrb	w1, [x3,#624]
ffff80001139ef08:	6b00003f 	cmp	w1, w0
ffff80001139ef0c:	1a808020 	csel	w0, w1, w0, hi
ffff80001139ef10:	53001c00 	uxtb	w0, w0
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139ef14:	f9400041 	ldr	x1, [x2]
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ef18:	eb01009f 	cmp	x4, x1
ffff80001139ef1c:	aa0103e2 	mov	x2, x1
ffff80001139ef20:	54000080 	b.eq	ffff80001139ef30 <__netdev_upper_depth+0x68>
	return upper->dev;
ffff80001139ef24:	f85e8023 	ldur	x3, [x1,#-24]
	*ignore = upper->ignore;
ffff80001139ef28:	385f1021 	ldurb	w1, [x1,#-15]
	for (iter = &dev->adj_list.upper,
ffff80001139ef2c:	b5fffea3 	cbnz	x3, ffff80001139ef00 <__netdev_upper_depth+0x38>
			max_depth = udev->upper_level;
	}

	return max_depth;
}
ffff80001139ef30:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ef34:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139ef38:	d65f03c0 	ret
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ef3c:	52800000 	mov	w0, #0x0                   	// #0
}
ffff80001139ef40:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ef44:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139ef48:	d65f03c0 	ret

ffff80001139ef4c <__netdev_lower_depth>:

static u8 __netdev_lower_depth(struct net_device *dev)
{
ffff80001139ef4c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139ef50:	910003fd 	mov	x29, sp
ffff80001139ef54:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ef58:	aa0003f3 	mov	x19, x0
ffff80001139ef5c:	aa1e03e0 	mov	x0, x30
ffff80001139ef60:	94000000 	bl	0 <_mcount>
			ffff80001139ef60: R_AARCH64_CALL26	_mcount
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139ef64:	f9405e62 	ldr	x2, [x19,#184]
	struct net_device *ldev;
	struct list_head *iter;
	u8 max_depth = 0;
	bool ignore;

	for (iter = &dev->adj_list.lower,
ffff80001139ef68:	9102e264 	add	x4, x19, #0xb8
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ef6c:	eb02009f 	cmp	x4, x2
ffff80001139ef70:	54000280 	b.eq	ffff80001139efc0 <__netdev_lower_depth+0x74>
	return lower->dev;
ffff80001139ef74:	f85e8043 	ldur	x3, [x2,#-24]
	*ignore = lower->ignore;
ffff80001139ef78:	385f1041 	ldurb	w1, [x2,#-15]
	for (iter = &dev->adj_list.lower,
ffff80001139ef7c:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139ef80:	b40001a3 	cbz	x3, ffff80001139efb4 <__netdev_lower_depth+0x68>
	     ldev = __netdev_next_lower_dev(dev, &iter, &ignore);
	     ldev;
	     ldev = __netdev_next_lower_dev(dev, &iter, &ignore)) {
		if (ignore)
ffff80001139ef84:	350000a1 	cbnz	w1, ffff80001139ef98 <__netdev_lower_depth+0x4c>
			continue;
		if (max_depth < ldev->lower_level)
ffff80001139ef88:	3949c461 	ldrb	w1, [x3,#625]
ffff80001139ef8c:	6b00003f 	cmp	w1, w0
ffff80001139ef90:	1a808020 	csel	w0, w1, w0, hi
ffff80001139ef94:	53001c00 	uxtb	w0, w0
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139ef98:	f9400041 	ldr	x1, [x2]
	if (&lower->list == &dev->adj_list.lower)
ffff80001139ef9c:	eb01009f 	cmp	x4, x1
ffff80001139efa0:	aa0103e2 	mov	x2, x1
ffff80001139efa4:	54000080 	b.eq	ffff80001139efb4 <__netdev_lower_depth+0x68>
	return lower->dev;
ffff80001139efa8:	f85e8023 	ldur	x3, [x1,#-24]
	*ignore = lower->ignore;
ffff80001139efac:	385f1021 	ldurb	w1, [x1,#-15]
	for (iter = &dev->adj_list.lower,
ffff80001139efb0:	b5fffea3 	cbnz	x3, ffff80001139ef84 <__netdev_lower_depth+0x38>
			max_depth = ldev->lower_level;
	}

	return max_depth;
}
ffff80001139efb4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139efb8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139efbc:	d65f03c0 	ret
	if (&lower->list == &dev->adj_list.lower)
ffff80001139efc0:	52800000 	mov	w0, #0x0                   	// #0
}
ffff80001139efc4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139efc8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139efcc:	d65f03c0 	ret

ffff80001139efd0 <__netdev_update_upper_level>:

static int __netdev_update_upper_level(struct net_device *dev, void *data)
{
ffff80001139efd0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139efd4:	910003fd 	mov	x29, sp
ffff80001139efd8:	f9000bf3 	str	x19, [sp,#16]
ffff80001139efdc:	aa0003f3 	mov	x19, x0
ffff80001139efe0:	aa1e03e0 	mov	x0, x30
ffff80001139efe4:	94000000 	bl	0 <_mcount>
			ffff80001139efe4: R_AARCH64_CALL26	_mcount
	dev->upper_level = __netdev_upper_depth(dev) + 1;
ffff80001139efe8:	aa1303e0 	mov	x0, x19
ffff80001139efec:	97ffffb7 	bl	ffff80001139eec8 <__netdev_upper_depth>
ffff80001139eff0:	53001c00 	uxtb	w0, w0
ffff80001139eff4:	11000400 	add	w0, w0, #0x1
ffff80001139eff8:	3909c260 	strb	w0, [x19,#624]
	return 0;
}
ffff80001139effc:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f000:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139f004:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f008:	d65f03c0 	ret

ffff80001139f00c <__netdev_update_lower_level>:

static int __netdev_update_lower_level(struct net_device *dev, void *data)
{
ffff80001139f00c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f010:	910003fd 	mov	x29, sp
ffff80001139f014:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f018:	aa0003f3 	mov	x19, x0
ffff80001139f01c:	aa1e03e0 	mov	x0, x30
ffff80001139f020:	94000000 	bl	0 <_mcount>
			ffff80001139f020: R_AARCH64_CALL26	_mcount
	dev->lower_level = __netdev_lower_depth(dev) + 1;
ffff80001139f024:	aa1303e0 	mov	x0, x19
ffff80001139f028:	97ffffc9 	bl	ffff80001139ef4c <__netdev_lower_depth>
ffff80001139f02c:	53001c00 	uxtb	w0, w0
ffff80001139f030:	11000400 	add	w0, w0, #0x1
ffff80001139f034:	3909c660 	strb	w0, [x19,#625]
	return 0;
}
ffff80001139f038:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f03c:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139f040:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f044:	d65f03c0 	ret

ffff80001139f048 <netdev_walk_all_lower_dev_rcu>:

int netdev_walk_all_lower_dev_rcu(struct net_device *dev,
				  int (*fn)(struct net_device *dev,
					    void *data),
				  void *data)
{
ffff80001139f048:	a9b17bfd 	stp	x29, x30, [sp,#-240]!
ffff80001139f04c:	910003fd 	mov	x29, sp
ffff80001139f050:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f054:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139f058:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139f05c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff80001139f060:	aa0003f6 	mov	x22, x0
ffff80001139f064:	aa1e03e0 	mov	x0, x30
ffff80001139f068:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff80001139f068: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139f06c:	aa0103f9 	mov	x25, x1
ffff80001139f070:	aa0203f8 	mov	x24, x2
ffff80001139f074:	94000000 	bl	0 <_mcount>
			ffff80001139f074: R_AARCH64_CALL26	_mcount
ffff80001139f078:	f9400340 	ldr	x0, [x26]
			ffff80001139f078: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct net_device *ldev, *next, *now, *dev_stack[MAX_NEST_DEV + 1];
	struct list_head *niter, *iter, *iter_stack[MAX_NEST_DEV + 1];
	int ret, cur = 0;

	now = dev;
	iter = &dev->adj_list.lower;
ffff80001139f07c:	9102e2d5 	add	x21, x22, #0xb8
{
ffff80001139f080:	f90077a0 	str	x0, [x29,#232]
ffff80001139f084:	f94002a3 	ldr	x3, [x21]
	iter = &dev->adj_list.lower;
ffff80001139f088:	aa1503e0 	mov	x0, x21
	if (&lower->list == &dev->adj_list.lower)
ffff80001139f08c:	eb03001f 	cmp	x0, x3
	now = dev;
ffff80001139f090:	aa1603f3 	mov	x19, x22
	int ret, cur = 0;
ffff80001139f094:	52800014 	mov	w20, #0x0                   	// #0

		if (!next) {
			if (!cur)
				return 0;
			next = dev_stack[--cur];
			niter = iter_stack[cur];
ffff80001139f098:	910283b7 	add	x23, x29, #0xa0
	if (&lower->list == &dev->adj_list.lower)
ffff80001139f09c:	54000260 	b.eq	ffff80001139f0e8 <netdev_walk_all_lower_dev_rcu+0xa0>
	return lower->dev;
ffff80001139f0a0:	f85e8064 	ldur	x4, [x3,#-24]
			if (!ldev)
ffff80001139f0a4:	b4000224 	cbz	x4, ffff80001139f0e8 <netdev_walk_all_lower_dev_rcu+0xa0>
			dev_stack[cur] = now;
ffff80001139f0a8:	910163a0 	add	x0, x29, #0x58
ffff80001139f0ac:	f834d813 	str	x19, [x0,w20,sxtw #3]
			iter_stack[cur++] = iter;
ffff80001139f0b0:	f834dae3 	str	x3, [x23,w20,sxtw #3]
			niter = &ldev->adj_list.lower;
ffff80001139f0b4:	9102e095 	add	x21, x4, #0xb8
			iter_stack[cur++] = iter;
ffff80001139f0b8:	11000694 	add	w20, w20, #0x1
ffff80001139f0bc:	aa0403f3 	mov	x19, x4
		if (now != dev) {
ffff80001139f0c0:	eb16027f 	cmp	x19, x22
ffff80001139f0c4:	540000a0 	b.eq	ffff80001139f0d8 <netdev_walk_all_lower_dev_rcu+0x90>
			ret = fn(now, data);
ffff80001139f0c8:	aa1303e0 	mov	x0, x19
ffff80001139f0cc:	aa1803e1 	mov	x1, x24
ffff80001139f0d0:	d63f0320 	blr	x25
			if (ret)
ffff80001139f0d4:	35000180 	cbnz	w0, ffff80001139f104 <netdev_walk_all_lower_dev_rcu+0xbc>
ffff80001139f0d8:	f94002a3 	ldr	x3, [x21]
ffff80001139f0dc:	9102e260 	add	x0, x19, #0xb8
	if (&lower->list == &dev->adj_list.lower)
ffff80001139f0e0:	eb03001f 	cmp	x0, x3
ffff80001139f0e4:	54fffde1 	b.ne	ffff80001139f0a0 <netdev_walk_all_lower_dev_rcu+0x58>
			if (!cur)
ffff80001139f0e8:	340000d4 	cbz	w20, ffff80001139f100 <netdev_walk_all_lower_dev_rcu+0xb8>
			next = dev_stack[--cur];
ffff80001139f0ec:	51000694 	sub	w20, w20, #0x1
ffff80001139f0f0:	910163a0 	add	x0, x29, #0x58
ffff80001139f0f4:	f874d813 	ldr	x19, [x0,w20,sxtw #3]
			niter = iter_stack[cur];
ffff80001139f0f8:	f874daf5 	ldr	x21, [x23,w20,sxtw #3]
ffff80001139f0fc:	17fffff1 	b	ffff80001139f0c0 <netdev_walk_all_lower_dev_rcu+0x78>
				return 0;
ffff80001139f100:	2a1403e0 	mov	w0, w20
		now = next;
		iter = niter;
	}

	return 0;
}
ffff80001139f104:	f94077a2 	ldr	x2, [x29,#232]
ffff80001139f108:	f9400341 	ldr	x1, [x26]
			ffff80001139f108: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139f10c:	eb01005f 	cmp	x2, x1
ffff80001139f110:	540000e1 	b.ne	ffff80001139f12c <netdev_walk_all_lower_dev_rcu+0xe4>
ffff80001139f114:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f118:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139f11c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff80001139f120:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff80001139f124:	a8cf7bfd 	ldp	x29, x30, [sp],#240
ffff80001139f128:	d65f03c0 	ret
ffff80001139f12c:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139f12c: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139f130 <__netdev_adjacent_dev_set>:
EXPORT_SYMBOL(netdev_upper_dev_unlink);

static void __netdev_adjacent_dev_set(struct net_device *upper_dev,
				      struct net_device *lower_dev,
				      bool val)
{
ffff80001139f130:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f134:	910003fd 	mov	x29, sp
ffff80001139f138:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f13c:	aa0003f3 	mov	x19, x0
ffff80001139f140:	aa1e03e0 	mov	x0, x30
ffff80001139f144:	f90017a1 	str	x1, [x29,#40]
ffff80001139f148:	53001c54 	uxtb	w20, w2
ffff80001139f14c:	94000000 	bl	0 <_mcount>
			ffff80001139f14c: R_AARCH64_CALL26	_mcount
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f150:	f9405e63 	ldr	x3, [x19,#184]
	struct netdev_adjacent *adj;

	adj = __netdev_find_adj(lower_dev, &upper_dev->adj_list.lower);
ffff80001139f154:	9102e260 	add	x0, x19, #0xb8
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f158:	eb03001f 	cmp	x0, x3
ffff80001139f15c:	d1006064 	sub	x4, x3, #0x18
ffff80001139f160:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f164:	54000180 	b.eq	ffff80001139f194 <__netdev_adjacent_dev_set+0x64>
		if (adj->dev == adj_dev)
ffff80001139f168:	f85e8062 	ldur	x2, [x3,#-24]
ffff80001139f16c:	eb02003f 	cmp	x1, x2
ffff80001139f170:	540000a1 	b.ne	ffff80001139f184 <__netdev_adjacent_dev_set+0x54>
ffff80001139f174:	1400001b 	b	ffff80001139f1e0 <__netdev_adjacent_dev_set+0xb0>
ffff80001139f178:	f85e8063 	ldur	x3, [x3,#-24]
ffff80001139f17c:	eb03003f 	cmp	x1, x3
ffff80001139f180:	54000300 	b.eq	ffff80001139f1e0 <__netdev_adjacent_dev_set+0xb0>
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f184:	f9400c83 	ldr	x3, [x4,#24]
ffff80001139f188:	eb03001f 	cmp	x0, x3
ffff80001139f18c:	d1006064 	sub	x4, x3, #0x18
ffff80001139f190:	54ffff41 	b.ne	ffff80001139f178 <__netdev_adjacent_dev_set+0x48>
ffff80001139f194:	f9405420 	ldr	x0, [x1,#168]
	if (adj)
		adj->ignore = val;

	adj = __netdev_find_adj(upper_dev, &lower_dev->adj_list.upper);
ffff80001139f198:	9102a021 	add	x1, x1, #0xa8
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f19c:	eb00003f 	cmp	x1, x0
ffff80001139f1a0:	d1006004 	sub	x4, x0, #0x18
ffff80001139f1a4:	54000180 	b.eq	ffff80001139f1d4 <__netdev_adjacent_dev_set+0xa4>
		if (adj->dev == adj_dev)
ffff80001139f1a8:	f85e8000 	ldur	x0, [x0,#-24]
ffff80001139f1ac:	eb00027f 	cmp	x19, x0
ffff80001139f1b0:	540000a1 	b.ne	ffff80001139f1c4 <__netdev_adjacent_dev_set+0x94>
ffff80001139f1b4:	1400000e 	b	ffff80001139f1ec <__netdev_adjacent_dev_set+0xbc>
ffff80001139f1b8:	f85e8063 	ldur	x3, [x3,#-24]
ffff80001139f1bc:	eb03027f 	cmp	x19, x3
ffff80001139f1c0:	54000160 	b.eq	ffff80001139f1ec <__netdev_adjacent_dev_set+0xbc>
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f1c4:	f9400c83 	ldr	x3, [x4,#24]
ffff80001139f1c8:	eb03003f 	cmp	x1, x3
ffff80001139f1cc:	d1006064 	sub	x4, x3, #0x18
ffff80001139f1d0:	54ffff41 	b.ne	ffff80001139f1b8 <__netdev_adjacent_dev_set+0x88>
	if (adj)
		adj->ignore = val;
}
ffff80001139f1d4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f1d8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f1dc:	d65f03c0 	ret
	if (adj)
ffff80001139f1e0:	b4fffda4 	cbz	x4, ffff80001139f194 <__netdev_adjacent_dev_set+0x64>
		adj->ignore = val;
ffff80001139f1e4:	39002494 	strb	w20, [x4,#9]
ffff80001139f1e8:	17ffffeb 	b	ffff80001139f194 <__netdev_adjacent_dev_set+0x64>
	if (adj)
ffff80001139f1ec:	b4ffff44 	cbz	x4, ffff80001139f1d4 <__netdev_adjacent_dev_set+0xa4>
		adj->ignore = val;
ffff80001139f1f0:	39002494 	strb	w20, [x4,#9]
}
ffff80001139f1f4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f1f8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f1fc:	d65f03c0 	ret

ffff80001139f200 <netdev_lower_dev_get_private>:
	}
}

void *netdev_lower_dev_get_private(struct net_device *dev,
				   struct net_device *lower_dev)
{
ffff80001139f200:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f204:	910003fd 	mov	x29, sp
ffff80001139f208:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f20c:	aa0003f3 	mov	x19, x0
ffff80001139f210:	aa1e03e0 	mov	x0, x30
ffff80001139f214:	f90017a1 	str	x1, [x29,#40]
ffff80001139f218:	94000000 	bl	0 <_mcount>
			ffff80001139f218: R_AARCH64_CALL26	_mcount
	struct netdev_adjacent *lower;

	if (!lower_dev)
ffff80001139f21c:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f220:	b4000301 	cbz	x1, ffff80001139f280 <netdev_lower_dev_get_private+0x80>
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f224:	f9405e62 	ldr	x2, [x19,#184]
		return NULL;
	lower = __netdev_find_adj(lower_dev, &dev->adj_list.lower);
ffff80001139f228:	9102e260 	add	x0, x19, #0xb8
	list_for_each_entry(adj, adj_list, list) {
ffff80001139f22c:	eb02001f 	cmp	x0, x2
ffff80001139f230:	d1006043 	sub	x3, x2, #0x18
ffff80001139f234:	540000c1 	b.ne	ffff80001139f24c <netdev_lower_dev_get_private+0x4c>
ffff80001139f238:	1400000e 	b	ffff80001139f270 <netdev_lower_dev_get_private+0x70>
ffff80001139f23c:	f9400c62 	ldr	x2, [x3,#24]
ffff80001139f240:	eb02001f 	cmp	x0, x2
ffff80001139f244:	d1006043 	sub	x3, x2, #0x18
ffff80001139f248:	54000140 	b.eq	ffff80001139f270 <netdev_lower_dev_get_private+0x70>
		if (adj->dev == adj_dev)
ffff80001139f24c:	f85e8042 	ldur	x2, [x2,#-24]
ffff80001139f250:	eb02003f 	cmp	x1, x2
ffff80001139f254:	54ffff41 	b.ne	ffff80001139f23c <netdev_lower_dev_get_private+0x3c>
		return NULL;
ffff80001139f258:	d2800000 	mov	x0, #0x0                   	// #0
	if (!lower)
ffff80001139f25c:	b40000c3 	cbz	x3, ffff80001139f274 <netdev_lower_dev_get_private+0x74>
		return NULL;

	return lower->private;
ffff80001139f260:	f9400860 	ldr	x0, [x3,#16]
}
ffff80001139f264:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f268:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f26c:	d65f03c0 	ret
		return NULL;
ffff80001139f270:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139f274:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f278:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f27c:	d65f03c0 	ret
		return NULL;
ffff80001139f280:	aa0103e0 	mov	x0, x1
ffff80001139f284:	17fffffc 	b	ffff80001139f274 <netdev_lower_dev_get_private+0x74>

ffff80001139f288 <dev_get_flags>:
 *	@dev: device
 *
 *	Get the combination of flag bits exported through APIs to userspace.
 */
unsigned int dev_get_flags(const struct net_device *dev)
{
ffff80001139f288:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f28c:	910003fd 	mov	x29, sp
ffff80001139f290:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f294:	aa0003f3 	mov	x19, x0
ffff80001139f298:	aa1e03e0 	mov	x0, x30
ffff80001139f29c:	94000000 	bl	0 <_mcount>
			ffff80001139f29c: R_AARCH64_CALL26	_mcount

	flags = (dev->flags & ~(IFF_PROMISC |
				IFF_ALLMULTI |
				IFF_RUNNING |
				IFF_LOWER_UP |
				IFF_DORMANT)) |
ffff80001139f2a0:	79446260 	ldrh	w0, [x19,#560]
	flags = (dev->flags & ~(IFF_PROMISC |
ffff80001139f2a4:	b9422a63 	ldr	w3, [x19,#552]
ffff80001139f2a8:	529f97e1 	mov	w1, #0xfcbf                	// #64703
ffff80001139f2ac:	72bfff81 	movk	w1, #0xfffc, lsl #16
 * @nr: bit number to test
 * @addr: Address to start counting from
 */
static inline int test_bit(int nr, const volatile unsigned long *addr)
{
	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
ffff80001139f2b0:	f9402262 	ldr	x2, [x19,#64]
				IFF_DORMANT)) |
ffff80001139f2b4:	12180400 	and	w0, w0, #0x300
	flags = (dev->flags & ~(IFF_PROMISC |
ffff80001139f2b8:	0a010061 	and	w1, w3, w1
ffff80001139f2bc:	2a010000 	orr	w0, w0, w1
		(dev->gflags & (IFF_PROMISC |
				IFF_ALLMULTI));

	if (netif_running(dev)) {
ffff80001139f2c0:	36000182 	tbz	w2, #0, ffff80001139f2f0 <dev_get_flags+0x68>
unsigned int dev_get_flags(const struct net_device *dev)
ffff80001139f2c4:	3948d261 	ldrb	w1, [x19,#564]
		if (netif_oper_up(dev))
ffff80001139f2c8:	350001a1 	cbnz	w1, ffff80001139f2fc <dev_get_flags+0x74>
			flags |= IFF_RUNNING;
ffff80001139f2cc:	321a0000 	orr	w0, w0, #0x40
ffff80001139f2d0:	f9402263 	ldr	x3, [x19,#64]
ffff80001139f2d4:	f9402261 	ldr	x1, [x19,#64]
ffff80001139f2d8:	d3420863 	ubfx	x3, x3, #2, #1
		if (netif_carrier_ok(dev))
			flags |= IFF_LOWER_UP;
ffff80001139f2dc:	32100002 	orr	w2, w0, #0x10000
ffff80001139f2e0:	6b1f007f 	cmp	w3, wzr
ffff80001139f2e4:	1a800040 	csel	w0, w2, w0, eq
ffff80001139f2e8:	d3441021 	ubfx	x1, x1, #4, #1
		if (netif_dormant(dev))
			flags |= IFF_DORMANT;
ffff80001139f2ec:	2a014400 	orr	w0, w0, w1, lsl #17
	}

	return flags;
}
ffff80001139f2f0:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f2f4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f2f8:	d65f03c0 	ret
		if (netif_oper_up(dev))
ffff80001139f2fc:	7100183f 	cmp	w1, #0x6
ffff80001139f300:	54fffe81 	b.ne	ffff80001139f2d0 <dev_get_flags+0x48>
ffff80001139f304:	17fffff2 	b	ffff80001139f2cc <dev_get_flags+0x44>

ffff80001139f308 <__dev_set_mtu>:
	return ret;
}
EXPORT_SYMBOL(dev_change_flags);

int __dev_set_mtu(struct net_device *dev, int new_mtu)
{
ffff80001139f308:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f30c:	910003fd 	mov	x29, sp
ffff80001139f310:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f314:	aa0003f3 	mov	x19, x0
ffff80001139f318:	aa1e03e0 	mov	x0, x30
ffff80001139f31c:	f90017a1 	str	x1, [x29,#40]
ffff80001139f320:	94000000 	bl	0 <_mcount>
			ffff80001139f320: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;

	if (ops->ndo_change_mtu)
ffff80001139f324:	f940fa60 	ldr	x0, [x19,#496]
ffff80001139f328:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f32c:	f9403402 	ldr	x2, [x0,#104]
ffff80001139f330:	b40000c2 	cbz	x2, ffff80001139f348 <__dev_set_mtu+0x40>
		return ops->ndo_change_mtu(dev, new_mtu);
ffff80001139f334:	aa1303e0 	mov	x0, x19
ffff80001139f338:	d63f0040 	blr	x2

	/* Pairs with all the lockless reads of dev->mtu in the stack */
	WRITE_ONCE(dev->mtu, new_mtu);
	return 0;
}
ffff80001139f33c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f340:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f344:	d65f03c0 	ret
static __always_inline void __write_once_size(volatile void *p, void *res, int size)
{
	switch (size) {
	case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
	case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff80001139f348:	b9023a61 	str	w1, [x19,#568]
ffff80001139f34c:	f9400bf3 	ldr	x19, [sp,#16]
	return 0;
ffff80001139f350:	2a0203e0 	mov	w0, w2
}
ffff80001139f354:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f358:	d65f03c0 	ret

ffff80001139f35c <dev_set_group>:
 *	dev_set_group - Change group this device belongs to
 *	@dev: device
 *	@new_group: group this device should belong to
 */
void dev_set_group(struct net_device *dev, int new_group)
{
ffff80001139f35c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f360:	910003fd 	mov	x29, sp
ffff80001139f364:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f368:	aa0003f3 	mov	x19, x0
ffff80001139f36c:	aa1e03e0 	mov	x0, x30
ffff80001139f370:	f90017a1 	str	x1, [x29,#40]
ffff80001139f374:	94000000 	bl	0 <_mcount>
			ffff80001139f374: R_AARCH64_CALL26	_mcount
	dev->group = new_group;
ffff80001139f378:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f37c:	b9010661 	str	w1, [x19,#260]
}
ffff80001139f380:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f384:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f388:	d65f03c0 	ret

ffff80001139f38c <dev_change_carrier>:
 *	@new_carrier: new value
 *
 *	Change device carrier
 */
int dev_change_carrier(struct net_device *dev, bool new_carrier)
{
ffff80001139f38c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f390:	910003fd 	mov	x29, sp
ffff80001139f394:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f398:	aa0003f3 	mov	x19, x0
ffff80001139f39c:	aa1e03e0 	mov	x0, x30
ffff80001139f3a0:	53001c34 	uxtb	w20, w1
ffff80001139f3a4:	94000000 	bl	0 <_mcount>
			ffff80001139f3a4: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;

	if (!ops->ndo_change_carrier)
ffff80001139f3a8:	f940fa60 	ldr	x0, [x19,#496]
ffff80001139f3ac:	f940f002 	ldr	x2, [x0,#480]
ffff80001139f3b0:	b4000162 	cbz	x2, ffff80001139f3dc <dev_change_carrier+0x50>
ffff80001139f3b4:	f9402260 	ldr	x0, [x19,#64]
		return -EOPNOTSUPP;
	if (!netif_device_present(dev))
ffff80001139f3b8:	360800e0 	tbz	w0, #1, ffff80001139f3d4 <dev_change_carrier+0x48>
		return -ENODEV;
	return ops->ndo_change_carrier(dev, new_carrier);
ffff80001139f3bc:	aa1303e0 	mov	x0, x19
ffff80001139f3c0:	2a1403e1 	mov	w1, w20
ffff80001139f3c4:	d63f0040 	blr	x2
}
ffff80001139f3c8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f3cc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f3d0:	d65f03c0 	ret
		return -ENODEV;
ffff80001139f3d4:	12800240 	mov	w0, #0xffffffed            	// #-19
ffff80001139f3d8:	17fffffc 	b	ffff80001139f3c8 <dev_change_carrier+0x3c>
		return -EOPNOTSUPP;
ffff80001139f3dc:	12800bc0 	mov	w0, #0xffffffa1            	// #-95
ffff80001139f3e0:	17fffffa 	b	ffff80001139f3c8 <dev_change_carrier+0x3c>

ffff80001139f3e4 <dev_get_phys_port_id>:
 *
 *	Get device physical port ID
 */
int dev_get_phys_port_id(struct net_device *dev,
			 struct netdev_phys_item_id *ppid)
{
ffff80001139f3e4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f3e8:	910003fd 	mov	x29, sp
ffff80001139f3ec:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f3f0:	aa0003f3 	mov	x19, x0
ffff80001139f3f4:	aa1e03e0 	mov	x0, x30
ffff80001139f3f8:	f90017a1 	str	x1, [x29,#40]
ffff80001139f3fc:	94000000 	bl	0 <_mcount>
			ffff80001139f3fc: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;

	if (!ops->ndo_get_phys_port_id)
ffff80001139f400:	f940fa60 	ldr	x0, [x19,#496]
ffff80001139f404:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f408:	f940f402 	ldr	x2, [x0,#488]
ffff80001139f40c:	b40000c2 	cbz	x2, ffff80001139f424 <dev_get_phys_port_id+0x40>
		return -EOPNOTSUPP;
	return ops->ndo_get_phys_port_id(dev, ppid);
ffff80001139f410:	aa1303e0 	mov	x0, x19
ffff80001139f414:	d63f0040 	blr	x2
}
ffff80001139f418:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f41c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f420:	d65f03c0 	ret
		return -EOPNOTSUPP;
ffff80001139f424:	12800bc0 	mov	w0, #0xffffffa1            	// #-95
ffff80001139f428:	17fffffc 	b	ffff80001139f418 <dev_get_phys_port_id+0x34>

ffff80001139f42c <dev_change_proto_down>:
 *
 *	This info can be used by switch drivers to set the phys state of the
 *	port.
 */
int dev_change_proto_down(struct net_device *dev, bool proto_down)
{
ffff80001139f42c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f430:	910003fd 	mov	x29, sp
ffff80001139f434:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f438:	aa0003f3 	mov	x19, x0
ffff80001139f43c:	aa1e03e0 	mov	x0, x30
ffff80001139f440:	53001c34 	uxtb	w20, w1
ffff80001139f444:	94000000 	bl	0 <_mcount>
			ffff80001139f444: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;

	if (!ops->ndo_change_proto_down)
ffff80001139f448:	f940fa60 	ldr	x0, [x19,#496]
ffff80001139f44c:	f9411802 	ldr	x2, [x0,#560]
ffff80001139f450:	b4000162 	cbz	x2, ffff80001139f47c <dev_change_proto_down+0x50>
ffff80001139f454:	f9402260 	ldr	x0, [x19,#64]
		return -EOPNOTSUPP;
	if (!netif_device_present(dev))
ffff80001139f458:	360800e0 	tbz	w0, #1, ffff80001139f474 <dev_change_proto_down+0x48>
		return -ENODEV;
	return ops->ndo_change_proto_down(dev, proto_down);
ffff80001139f45c:	aa1303e0 	mov	x0, x19
ffff80001139f460:	2a1403e1 	mov	w1, w20
ffff80001139f464:	d63f0040 	blr	x2
}
ffff80001139f468:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f46c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f470:	d65f03c0 	ret
		return -ENODEV;
ffff80001139f474:	12800240 	mov	w0, #0xffffffed            	// #-19
ffff80001139f478:	17fffffc 	b	ffff80001139f468 <dev_change_proto_down+0x3c>
		return -EOPNOTSUPP;
ffff80001139f47c:	12800bc0 	mov	w0, #0xffffffa1            	// #-95
ffff80001139f480:	17fffffa 	b	ffff80001139f468 <dev_change_proto_down+0x3c>

ffff80001139f484 <dev_new_index>:
 *	Returns a suitable unique value for a new device interface
 *	number.  The caller must hold the rtnl semaphore or the
 *	dev_base_lock to be sure it remains unique.
 */
static int dev_new_index(struct net *net)
{
ffff80001139f484:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f488:	910003fd 	mov	x29, sp
ffff80001139f48c:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f490:	aa0003f3 	mov	x19, x0
ffff80001139f494:	aa1e03e0 	mov	x0, x30
ffff80001139f498:	94000000 	bl	0 <_mcount>
			ffff80001139f498: R_AARCH64_CALL26	_mcount
	int ifindex = net->ifindex;
ffff80001139f49c:	b9401660 	ldr	w0, [x19,#20]
ffff80001139f4a0:	f9409a63 	ldr	x3, [x19,#304]

	for (;;) {
		if (++ifindex <= 0)
ffff80001139f4a4:	11000400 	add	w0, w0, #0x1
ffff80001139f4a8:	6b1f001f 	cmp	w0, wzr
ffff80001139f4ac:	540001ed 	b.le	ffff80001139f4e8 <dev_new_index+0x64>
ffff80001139f4b0:	d37d1c01 	ubfiz	x1, x0, #3, #8
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139f4b4:	f8616861 	ldr	x1, [x3,x1]
ffff80001139f4b8:	b4000041 	cbz	x1, ffff80001139f4c0 <dev_new_index+0x3c>
ffff80001139f4bc:	d10e4021 	sub	x1, x1, #0x390
ffff80001139f4c0:	b40000c1 	cbz	x1, ffff80001139f4d8 <dev_new_index+0x54>
		if (dev->ifindex == ifindex)
ffff80001139f4c4:	b9410022 	ldr	w2, [x1,#256]
ffff80001139f4c8:	6b02001f 	cmp	w0, w2
ffff80001139f4cc:	54fffec0 	b.eq	ffff80001139f4a4 <dev_new_index+0x20>
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139f4d0:	f941c821 	ldr	x1, [x1,#912]
ffff80001139f4d4:	b5ffff41 	cbnz	x1, ffff80001139f4bc <dev_new_index+0x38>
			ifindex = 1;
		if (!__dev_get_by_index(net, ifindex))
			return net->ifindex = ifindex;
ffff80001139f4d8:	b9001660 	str	w0, [x19,#20]
	}
}
ffff80001139f4dc:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f4e0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f4e4:	d65f03c0 	ret
ffff80001139f4e8:	d2800101 	mov	x1, #0x8                   	// #8
			ifindex = 1;
ffff80001139f4ec:	52800020 	mov	w0, #0x1                   	// #1
ffff80001139f4f0:	17fffff1 	b	ffff80001139f4b4 <dev_new_index+0x30>

ffff80001139f4f4 <netdev_update_lockdep_key>:
	lockdep_unregister_key(&dev->qdisc_xmit_lock_key);
	lockdep_unregister_key(&dev->addr_list_lock_key);
}

void netdev_update_lockdep_key(struct net_device *dev)
{
ffff80001139f4f4:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff80001139f4f8:	910003fd 	mov	x29, sp
ffff80001139f4fc:	aa1e03e0 	mov	x0, x30
ffff80001139f500:	94000000 	bl	0 <_mcount>
			ffff80001139f500: R_AARCH64_CALL26	_mcount
	lockdep_unregister_key(&dev->addr_list_lock_key);
	lockdep_register_key(&dev->addr_list_lock_key);

	lockdep_set_class(&dev->addr_list_lock, &dev->addr_list_lock_key);
}
ffff80001139f504:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff80001139f508:	d65f03c0 	ret

ffff80001139f50c <netdev_set_default_ethtool_ops>:

static const struct ethtool_ops default_ethtool_ops;

void netdev_set_default_ethtool_ops(struct net_device *dev,
				    const struct ethtool_ops *ops)
{
ffff80001139f50c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f510:	910003fd 	mov	x29, sp
ffff80001139f514:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f518:	aa0003f3 	mov	x19, x0
ffff80001139f51c:	aa1e03e0 	mov	x0, x30
ffff80001139f520:	f90017a1 	str	x1, [x29,#40]
ffff80001139f524:	94000000 	bl	0 <_mcount>
			ffff80001139f524: R_AARCH64_CALL26	_mcount
	if (dev->ethtool_ops == &default_ethtool_ops)
ffff80001139f528:	f940fe62 	ldr	x2, [x19,#504]
ffff80001139f52c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139f52c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff80001139f530:	91000000 	add	x0, x0, #0x0
			ffff80001139f530: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff80001139f534:	eb00005f 	cmp	x2, x0
ffff80001139f538:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f53c:	54000080 	b.eq	ffff80001139f54c <netdev_set_default_ethtool_ops+0x40>
		dev->ethtool_ops = ops;
}
ffff80001139f540:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f544:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f548:	d65f03c0 	ret
		dev->ethtool_ops = ops;
ffff80001139f54c:	f900fe61 	str	x1, [x19,#504]
}
ffff80001139f550:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f554:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f558:	d65f03c0 	ret

ffff80001139f55c <netdev_increment_features>:
 *	@one to the master device with current feature set @all.  Will not
 *	enable anything that is off in @mask. Returns the new feature set.
 */
netdev_features_t netdev_increment_features(netdev_features_t all,
	netdev_features_t one, netdev_features_t mask)
{
ffff80001139f55c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f560:	910003fd 	mov	x29, sp
ffff80001139f564:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f568:	aa0003f3 	mov	x19, x0
ffff80001139f56c:	aa1e03e0 	mov	x0, x30
ffff80001139f570:	f90017a1 	str	x1, [x29,#40]
ffff80001139f574:	f90013a2 	str	x2, [x29,#32]
ffff80001139f578:	94000000 	bl	0 <_mcount>
			ffff80001139f578: R_AARCH64_CALL26	_mcount
	if (mask & NETIF_F_HW_CSUM)
ffff80001139f57c:	f94013a2 	ldr	x2, [x29,#32]
ffff80001139f580:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f584:	36180062 	tbz	w2, #3, ffff80001139f590 <netdev_increment_features+0x34>
		mask |= NETIF_F_CSUM_MASK;
ffff80001139f588:	d2800340 	mov	x0, #0x1a                  	// #26
ffff80001139f58c:	aa000042 	orr	x2, x2, x0
	mask |= NETIF_F_VLAN_CHALLENGED;

	all |= one & (NETIF_F_ONE_FOR_ALL | NETIF_F_CSUM_MASK) & mask;
ffff80001139f590:	d2808f63 	mov	x3, #0x47b                 	// #1147
ffff80001139f594:	f2a803e3 	movk	x3, #0x401f, lsl #16
ffff80001139f598:	8a030020 	and	x0, x1, x3
	mask |= NETIF_F_VLAN_CHALLENGED;
ffff80001139f59c:	b2760042 	orr	x2, x2, #0x400
	all &= one | ~NETIF_F_ALL_FOR_ALL;
ffff80001139f5a0:	92c04003 	mov	x3, #0xfffffdffffffffff    	// #-2199023255553
	all |= one & (NETIF_F_ONE_FOR_ALL | NETIF_F_CSUM_MASK) & mask;
ffff80001139f5a4:	8a020000 	and	x0, x0, x2
	all &= one | ~NETIF_F_ALL_FOR_ALL;
ffff80001139f5a8:	f2bffbe3 	movk	x3, #0xffdf, lsl #16
	all |= one & (NETIF_F_ONE_FOR_ALL | NETIF_F_CSUM_MASK) & mask;
ffff80001139f5ac:	aa130000 	orr	x0, x0, x19
	all &= one | ~NETIF_F_ALL_FOR_ALL;
ffff80001139f5b0:	aa030021 	orr	x1, x1, x3
ffff80001139f5b4:	8a010000 	and	x0, x0, x1

	/* If one device supports hw checksumming, set for all. */
	if (all & NETIF_F_HW_CSUM)
ffff80001139f5b8:	36180060 	tbz	w0, #3, ffff80001139f5c4 <netdev_increment_features+0x68>
		all &= ~(NETIF_F_CSUM_MASK & ~NETIF_F_HW_CSUM);
ffff80001139f5bc:	92800241 	mov	x1, #0xffffffffffffffed    	// #-19
ffff80001139f5c0:	8a010000 	and	x0, x0, x1

	return all;
}
ffff80001139f5c4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f5c8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f5cc:	d65f03c0 	ret

ffff80001139f5d0 <netdev_boot_setup_check>:
{
ffff80001139f5d0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f5d4:	910003fd 	mov	x29, sp
ffff80001139f5d8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f5dc:	f90013f5 	str	x21, [sp,#32]
ffff80001139f5e0:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff80001139f5e0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff80001139f5e4:	910002b5 	add	x21, x21, #0x0
			ffff80001139f5e4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff80001139f5e8:	aa0003f4 	mov	x20, x0
ffff80001139f5ec:	aa1e03e0 	mov	x0, x30
ffff80001139f5f0:	910722b3 	add	x19, x21, #0x1c8
ffff80001139f5f4:	94000000 	bl	0 <_mcount>
			ffff80001139f5f4: R_AARCH64_CALL26	_mcount
ffff80001139f5f8:	910c22b5 	add	x21, x21, #0x308
		if (s[i].name[0] != '\0' && s[i].name[0] != ' ' &&
ffff80001139f5fc:	39400262 	ldrb	w2, [x19]
		    !strcmp(dev->name, s[i].name)) {
ffff80001139f600:	aa1303e1 	mov	x1, x19
		if (s[i].name[0] != '\0' && s[i].name[0] != ' ' &&
ffff80001139f604:	121a7842 	and	w2, w2, #0xffffffdf
ffff80001139f608:	53001c42 	uxtb	w2, w2
		    !strcmp(dev->name, s[i].name)) {
ffff80001139f60c:	aa1403e0 	mov	x0, x20
		if (s[i].name[0] != '\0' && s[i].name[0] != ' ' &&
ffff80001139f610:	34000062 	cbz	w2, ffff80001139f61c <netdev_boot_setup_check+0x4c>
		    !strcmp(dev->name, s[i].name)) {
ffff80001139f614:	94000000 	bl	0 <strcmp>
			ffff80001139f614: R_AARCH64_CALL26	strcmp
		if (s[i].name[0] != '\0' && s[i].name[0] != ' ' &&
ffff80001139f618:	34000120 	cbz	w0, ffff80001139f63c <netdev_boot_setup_check+0x6c>
ffff80001139f61c:	9100a273 	add	x19, x19, #0x28
	for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) {
ffff80001139f620:	eb15027f 	cmp	x19, x21
ffff80001139f624:	54fffec1 	b.ne	ffff80001139f5fc <netdev_boot_setup_check+0x2c>
	return 0;
ffff80001139f628:	52800000 	mov	w0, #0x0                   	// #0
}
ffff80001139f62c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f630:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139f634:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f638:	d65f03c0 	ret
			dev->irq = s[i].map.irq;
ffff80001139f63c:	39408a61 	ldrb	w1, [x19,#34]
			return 1;
ffff80001139f640:	52800020 	mov	w0, #0x1                   	// #1
			dev->irq = s[i].map.irq;
ffff80001139f644:	b9003a81 	str	w1, [x20,#56]
			dev->base_addr = s[i].map.base_addr;
ffff80001139f648:	79404261 	ldrh	w1, [x19,#32]
ffff80001139f64c:	f9001a81 	str	x1, [x20,#48]
			dev->mem_start = s[i].map.mem_start;
ffff80001139f650:	f9400a61 	ldr	x1, [x19,#16]
ffff80001139f654:	f9001681 	str	x1, [x20,#40]
			dev->mem_end = s[i].map.mem_end;
ffff80001139f658:	f9400e61 	ldr	x1, [x19,#24]
ffff80001139f65c:	f9001281 	str	x1, [x20,#32]
}
ffff80001139f660:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f664:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139f668:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f66c:	d65f03c0 	ret

ffff80001139f670 <netdev_name_node_lookup>:
{
ffff80001139f670:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f674:	910003fd 	mov	x29, sp
ffff80001139f678:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f67c:	aa0003f3 	mov	x19, x0
ffff80001139f680:	aa1e03e0 	mov	x0, x30
ffff80001139f684:	aa0103f4 	mov	x20, x1
ffff80001139f688:	94000000 	bl	0 <_mcount>
			ffff80001139f688: R_AARCH64_CALL26	_mcount

extern __kernel_size_t __real_strnlen(const char *, __kernel_size_t) __RENAME(strnlen);
__FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)
{
	size_t p_size = __builtin_object_size(p, 0);
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff80001139f68c:	aa1403e0 	mov	x0, x20
ffff80001139f690:	d2800201 	mov	x1, #0x10                  	// #16
ffff80001139f694:	94000000 	bl	0 <strnlen>
			ffff80001139f694: R_AARCH64_CALL26	strnlen
	if (p_size <= ret && maxlen != ret)
ffff80001139f698:	b100041f 	cmn	x0, #0x1
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff80001139f69c:	aa0003e2 	mov	x2, x0
	if (p_size <= ret && maxlen != ret)
ffff80001139f6a0:	540002a0 	b.eq	ffff80001139f6f4 <netdev_name_node_lookup+0x84>
	unsigned int hash = full_name_hash(net, name, strnlen(name, IFNAMSIZ));
ffff80001139f6a4:	aa1303e0 	mov	x0, x19
ffff80001139f6a8:	aa1403e1 	mov	x1, x20
ffff80001139f6ac:	94000000 	bl	0 <full_name_hash>
			ffff80001139f6ac: R_AARCH64_CALL26	full_name_hash
#ifndef HAVE_ARCH__HASH_32
#define __hash_32 __hash_32_generic
#endif
static inline u32 __hash_32_generic(u32 val)
{
	return val * GOLDEN_RATIO_32;
ffff80001139f6b0:	5290c8e1 	mov	w1, #0x8647                	// #34375
ffff80001139f6b4:	72ac3901 	movk	w1, #0x61c8, lsl #16
ffff80001139f6b8:	1b017c00 	mul	w0, w0, w1
	hlist_for_each_entry(name_node, head, hlist)
ffff80001139f6bc:	f9409662 	ldr	x2, [x19,#296]
	return &net->dev_name_head[hash_32(hash, NETDEV_HASHBITS)];
ffff80001139f6c0:	d3587c01 	ubfx	x1, x0, #24, #8
	hlist_for_each_entry(name_node, head, hlist)
ffff80001139f6c4:	f8617853 	ldr	x19, [x2,x1,lsl #3]
ffff80001139f6c8:	b40000f3 	cbz	x19, ffff80001139f6e4 <netdev_name_node_lookup+0x74>
		if (!strcmp(name_node->name, name))
ffff80001139f6cc:	f9401660 	ldr	x0, [x19,#40]
ffff80001139f6d0:	aa1403e1 	mov	x1, x20
ffff80001139f6d4:	94000000 	bl	0 <strcmp>
			ffff80001139f6d4: R_AARCH64_CALL26	strcmp
ffff80001139f6d8:	34000060 	cbz	w0, ffff80001139f6e4 <netdev_name_node_lookup+0x74>
	hlist_for_each_entry(name_node, head, hlist)
ffff80001139f6dc:	f9400273 	ldr	x19, [x19]
ffff80001139f6e0:	b5ffff73 	cbnz	x19, ffff80001139f6cc <netdev_name_node_lookup+0x5c>
}
ffff80001139f6e4:	aa1303e0 	mov	x0, x19
ffff80001139f6e8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f6ec:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f6f0:	d65f03c0 	ret
		fortify_panic(__func__);
ffff80001139f6f4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139f6f4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff80001139f6f8:	91000000 	add	x0, x0, #0x0
			ffff80001139f6f8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff80001139f6fc:	91044000 	add	x0, x0, #0x110
ffff80001139f700:	94000000 	bl	0 <fortify_panic>
			ffff80001139f700: R_AARCH64_CALL26	fortify_panic

ffff80001139f704 <__dev_get_by_name>:
{
ffff80001139f704:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f708:	910003fd 	mov	x29, sp
ffff80001139f70c:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f710:	aa0003f3 	mov	x19, x0
ffff80001139f714:	aa1e03e0 	mov	x0, x30
ffff80001139f718:	f90017a1 	str	x1, [x29,#40]
ffff80001139f71c:	94000000 	bl	0 <_mcount>
			ffff80001139f71c: R_AARCH64_CALL26	_mcount
	node_name = netdev_name_node_lookup(net, name);
ffff80001139f720:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f724:	aa1303e0 	mov	x0, x19
ffff80001139f728:	97ffffd2 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff80001139f72c:	b4000040 	cbz	x0, ffff80001139f734 <__dev_get_by_name+0x30>
ffff80001139f730:	f9401000 	ldr	x0, [x0,#32]
}
ffff80001139f734:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f738:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f73c:	d65f03c0 	ret

ffff80001139f740 <netdev_name_node_alloc>:
{
ffff80001139f740:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f744:	910003fd 	mov	x29, sp
ffff80001139f748:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f74c:	aa0003f4 	mov	x20, x0
ffff80001139f750:	aa1e03e0 	mov	x0, x30
ffff80001139f754:	aa0103f3 	mov	x19, x1
ffff80001139f758:	94000000 	bl	0 <_mcount>
			ffff80001139f758: R_AARCH64_CALL26	_mcount
		index = kmalloc_index(size);

		if (!index)
			return ZERO_SIZE_PTR;

		return kmem_cache_alloc_trace(
ffff80001139f75c:	90000002 	adrp	x2, 0 <kmalloc_caches>
			ffff80001139f75c: R_AARCH64_ADR_PREL_PG_HI21	kmalloc_caches+0x38
ffff80001139f760:	f9400040 	ldr	x0, [x2]
			ffff80001139f760: R_AARCH64_LDST64_ABS_LO12_NC	kmalloc_caches+0x38
ffff80001139f764:	52819801 	mov	w1, #0xcc0                 	// #3264
ffff80001139f768:	d2800602 	mov	x2, #0x30                  	// #48
ffff80001139f76c:	94000000 	bl	0 <kmem_cache_alloc_trace>
			ffff80001139f76c: R_AARCH64_CALL26	kmem_cache_alloc_trace
	if (!name_node)
ffff80001139f770:	b40000a0 	cbz	x0, ffff80001139f784 <netdev_name_node_alloc+0x44>
#define HLIST_HEAD_INIT { .first = NULL }
#define HLIST_HEAD(name) struct hlist_head name = {  .first = NULL }
#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
static inline void INIT_HLIST_NODE(struct hlist_node *h)
{
	h->next = NULL;
ffff80001139f774:	f900001f 	str	xzr, [x0]
	h->pprev = NULL;
ffff80001139f778:	f900041f 	str	xzr, [x0,#8]
	name_node->dev = dev;
ffff80001139f77c:	f9001014 	str	x20, [x0,#32]
	name_node->name = name;
ffff80001139f780:	f9001413 	str	x19, [x0,#40]
}
ffff80001139f784:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f788:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f78c:	d65f03c0 	ret

ffff80001139f790 <netdev_lower_get_first_private_rcu>:
{
ffff80001139f790:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f794:	910003fd 	mov	x29, sp
ffff80001139f798:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f79c:	aa0003f3 	mov	x19, x0
ffff80001139f7a0:	aa1e03e0 	mov	x0, x30
ffff80001139f7a4:	94000000 	bl	0 <_mcount>
			ffff80001139f7a4: R_AARCH64_CALL26	_mcount
ffff80001139f7a8:	90000002 	adrp	x2, 0 <__stack_chk_guard>
			ffff80001139f7a8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139f7ac:	f9400041 	ldr	x1, [x2]
			ffff80001139f7ac: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	__READ_ONCE_SIZE;
ffff80001139f7b0:	aa1303e0 	mov	x0, x19
ffff80001139f7b4:	f90017a1 	str	x1, [x29,#40]
ffff80001139f7b8:	f84b8c01 	ldr	x1, [x0,#184]!
	lower = list_first_or_null_rcu(&dev->adj_list.lower,
ffff80001139f7bc:	f90013a1 	str	x1, [x29,#32]
ffff80001139f7c0:	eb00003f 	cmp	x1, x0
ffff80001139f7c4:	540001a0 	b.eq	ffff80001139f7f8 <netdev_lower_get_first_private_rcu+0x68>
ffff80001139f7c8:	f94013a1 	ldr	x1, [x29,#32]
	if (lower)
ffff80001139f7cc:	f1006020 	subs	x0, x1, #0x18
ffff80001139f7d0:	54000040 	b.eq	ffff80001139f7d8 <netdev_lower_get_first_private_rcu+0x48>
		return lower->private;
ffff80001139f7d4:	f85f8020 	ldur	x0, [x1,#-8]
}
ffff80001139f7d8:	f94017a3 	ldr	x3, [x29,#40]
ffff80001139f7dc:	f9400041 	ldr	x1, [x2]
			ffff80001139f7dc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139f7e0:	eb01007f 	cmp	x3, x1
ffff80001139f7e4:	54000081 	b.ne	ffff80001139f7f4 <netdev_lower_get_first_private_rcu+0x64>
ffff80001139f7e8:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f7ec:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f7f0:	d65f03c0 	ret
ffff80001139f7f4:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139f7f4: R_AARCH64_CALL26	__stack_chk_fail
	return NULL;
ffff80001139f7f8:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139f7fc:	17fffff7 	b	ffff80001139f7d8 <netdev_lower_get_first_private_rcu+0x48>

ffff80001139f800 <netdev_master_upper_dev_get_rcu>:
{
ffff80001139f800:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f804:	910003fd 	mov	x29, sp
ffff80001139f808:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f80c:	aa0003f3 	mov	x19, x0
ffff80001139f810:	aa1e03e0 	mov	x0, x30
ffff80001139f814:	94000000 	bl	0 <_mcount>
			ffff80001139f814: R_AARCH64_CALL26	_mcount
ffff80001139f818:	90000002 	adrp	x2, 0 <__stack_chk_guard>
			ffff80001139f818: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139f81c:	f9400041 	ldr	x1, [x2]
			ffff80001139f81c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139f820:	aa1303e0 	mov	x0, x19
ffff80001139f824:	f90017a1 	str	x1, [x29,#40]
ffff80001139f828:	f84a8c01 	ldr	x1, [x0,#168]!
	upper = list_first_or_null_rcu(&dev->adj_list.upper,
ffff80001139f82c:	f90013a1 	str	x1, [x29,#32]
ffff80001139f830:	eb00003f 	cmp	x1, x0
ffff80001139f834:	540001c0 	b.eq	ffff80001139f86c <netdev_master_upper_dev_get_rcu+0x6c>
ffff80001139f838:	f94013a1 	ldr	x1, [x29,#32]
	if (upper && likely(upper->master))
ffff80001139f83c:	f1006020 	subs	x0, x1, #0x18
ffff80001139f840:	54000080 	b.eq	ffff80001139f850 <netdev_master_upper_dev_get_rcu+0x50>
ffff80001139f844:	385f0020 	ldurb	w0, [x1,#-16]
ffff80001139f848:	34000120 	cbz	w0, ffff80001139f86c <netdev_master_upper_dev_get_rcu+0x6c>
		return upper->dev;
ffff80001139f84c:	f85e8020 	ldur	x0, [x1,#-24]
}
ffff80001139f850:	f94017a3 	ldr	x3, [x29,#40]
ffff80001139f854:	f9400041 	ldr	x1, [x2]
			ffff80001139f854: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139f858:	eb01007f 	cmp	x3, x1
ffff80001139f85c:	540000c1 	b.ne	ffff80001139f874 <netdev_master_upper_dev_get_rcu+0x74>
ffff80001139f860:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f864:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f868:	d65f03c0 	ret
	return NULL;
ffff80001139f86c:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139f870:	17fffff8 	b	ffff80001139f850 <netdev_master_upper_dev_get_rcu+0x50>
}
ffff80001139f874:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139f874: R_AARCH64_CALL26	__stack_chk_fail

ffff80001139f878 <init_dummy_netdev>:
{
ffff80001139f878:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f87c:	910003fd 	mov	x29, sp
ffff80001139f880:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f884:	aa0003f3 	mov	x19, x0
ffff80001139f888:	aa1e03e0 	mov	x0, x30
ffff80001139f88c:	94000000 	bl	0 <_mcount>
			ffff80001139f88c: R_AARCH64_CALL26	_mcount
	size_t p_size = __builtin_object_size(p, 0);
	if (__builtin_constant_p(size) && p_size < size)
		__write_overflow();
	if (p_size < size)
		fortify_panic(__func__);
	return __builtin_memset(p, c, size);
ffff80001139f890:	aa1303e0 	mov	x0, x19
ffff80001139f894:	52800001 	mov	w1, #0x0                   	// #0
ffff80001139f898:	d2812002 	mov	x2, #0x900                 	// #2304
ffff80001139f89c:	94000000 	bl	0 <memset>
			ffff80001139f89c: R_AARCH64_CALL26	memset
	INIT_LIST_HEAD(&dev->napi_list);
ffff80001139f8a0:	91016260 	add	x0, x19, #0x58
	dev->reg_state = NETREG_DUMMY;
ffff80001139f8a4:	528000a1 	mov	w1, #0x5                   	// #5
ffff80001139f8a8:	39136261 	strb	w1, [x19,#1240]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff80001139f8ac:	f9002e60 	str	x0, [x19,#88]
	list->prev = list;
ffff80001139f8b0:	f9000400 	str	x0, [x0,#8]
	ATOMIC64_FETCH_OP (_relaxed,,  ,  ,         , __VA_ARGS__)	\
	ATOMIC64_FETCH_OP (_acquire,, a,  , "memory", __VA_ARGS__)	\
	ATOMIC64_FETCH_OP (_release,,  , l, "memory", __VA_ARGS__)

ATOMIC64_OPS(and, and, L)
ATOMIC64_OPS(or, orr, L)
ffff80001139f8b4:	91010262 	add	x2, x19, #0x40
ffff80001139f8b8:	f9800051 	prfm	pstl1strm, [x2]
ffff80001139f8bc:	c85f7c40 	ldxr	x0, [x2]
ffff80001139f8c0:	b27f0000 	orr	x0, x0, #0x2
ffff80001139f8c4:	c8017c40 	stxr	w1, x0, [x2]
ffff80001139f8c8:	35ffffa1 	cbnz	w1, ffff80001139f8bc <init_dummy_netdev+0x44>
ffff80001139f8cc:	f9800051 	prfm	pstl1strm, [x2]
ffff80001139f8d0:	c85f7c40 	ldxr	x0, [x2]
ffff80001139f8d4:	b2400000 	orr	x0, x0, #0x1
ffff80001139f8d8:	c8017c40 	stxr	w1, x0, [x2]
ffff80001139f8dc:	35ffffa1 	cbnz	w1, ffff80001139f8d0 <init_dummy_netdev+0x58>
} possible_net_t;

static inline void write_pnet(possible_net_t *pnet, struct net *net)
{
#ifdef CONFIG_NET_NS
	pnet->net = net;
ffff80001139f8e0:	90000000 	adrp	x0, 0 <init_net>
			ffff80001139f8e0: R_AARCH64_ADR_PREL_PG_HI21	init_net
ffff80001139f8e4:	91000000 	add	x0, x0, #0x0
			ffff80001139f8e4: R_AARCH64_ADD_ABS_LO12_NC	init_net
ffff80001139f8e8:	f9027a60 	str	x0, [x19,#1264]
}
ffff80001139f8ec:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f8f0:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139f8f4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f8f8:	d65f03c0 	ret

ffff80001139f8fc <netdev_stats_to_stats64>:
{
ffff80001139f8fc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139f900:	910003fd 	mov	x29, sp
ffff80001139f904:	f9000bf3 	str	x19, [sp,#16]
ffff80001139f908:	aa0003f3 	mov	x19, x0
ffff80001139f90c:	aa1e03e0 	mov	x0, x30
ffff80001139f910:	f90017a1 	str	x1, [x29,#40]
ffff80001139f914:	94000000 	bl	0 <_mcount>
			ffff80001139f914: R_AARCH64_CALL26	_mcount
		if (q_size < size)
			__read_overflow2();
	}
	if (p_size < size || q_size < size)
		fortify_panic(__func__);
	return __builtin_memcpy(p, q, size);
ffff80001139f918:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139f91c:	aa1303e0 	mov	x0, x19
ffff80001139f920:	d2801702 	mov	x2, #0xb8                  	// #184
ffff80001139f924:	94000000 	bl	0 <memcpy>
			ffff80001139f924: R_AARCH64_CALL26	memcpy
	return __builtin_memset(p, c, size);
ffff80001139f928:	f9005e7f 	str	xzr, [x19,#184]
}
ffff80001139f92c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139f930:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139f934:	d65f03c0 	ret

ffff80001139f938 <dev_get_stats>:
{
ffff80001139f938:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139f93c:	910003fd 	mov	x29, sp
ffff80001139f940:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139f944:	aa0003f4 	mov	x20, x0
ffff80001139f948:	aa1e03e0 	mov	x0, x30
ffff80001139f94c:	aa0103f3 	mov	x19, x1
ffff80001139f950:	94000000 	bl	0 <_mcount>
			ffff80001139f950: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;
ffff80001139f954:	f940fa80 	ldr	x0, [x20,#496]
	if (ops->ndo_get_stats64) {
ffff80001139f958:	f9404001 	ldr	x1, [x0,#128]
ffff80001139f95c:	b4000421 	cbz	x1, ffff80001139f9e0 <dev_get_stats+0xa8>
ffff80001139f960:	a9007e7f 	stp	xzr, xzr, [x19]
ffff80001139f964:	a9017e7f 	stp	xzr, xzr, [x19,#16]
ffff80001139f968:	a9027e7f 	stp	xzr, xzr, [x19,#32]
ffff80001139f96c:	a9037e7f 	stp	xzr, xzr, [x19,#48]
ffff80001139f970:	a9047e7f 	stp	xzr, xzr, [x19,#64]
ffff80001139f974:	a9057e7f 	stp	xzr, xzr, [x19,#80]
ffff80001139f978:	a9067e7f 	stp	xzr, xzr, [x19,#96]
ffff80001139f97c:	a9077e7f 	stp	xzr, xzr, [x19,#112]
ffff80001139f980:	a9087e7f 	stp	xzr, xzr, [x19,#128]
ffff80001139f984:	a9097e7f 	stp	xzr, xzr, [x19,#144]
ffff80001139f988:	a90a7e7f 	stp	xzr, xzr, [x19,#160]
ffff80001139f98c:	a90b7e7f 	stp	xzr, xzr, [x19,#176]
		ops->ndo_get_stats64(dev, storage);
ffff80001139f990:	f9404002 	ldr	x2, [x0,#128]
ffff80001139f994:	aa1303e1 	mov	x1, x19
ffff80001139f998:	aa1403e0 	mov	x0, x20
ffff80001139f99c:	d63f0040 	blr	x2
	__READ_ONCE_SIZE;
ffff80001139f9a0:	f940e280 	ldr	x0, [x20,#448]
	storage->rx_dropped += (unsigned long)atomic_long_read(&dev->rx_dropped);
ffff80001139f9a4:	f9401a62 	ldr	x2, [x19,#48]
	storage->tx_dropped += (unsigned long)atomic_long_read(&dev->tx_dropped);
ffff80001139f9a8:	f9401e61 	ldr	x1, [x19,#56]
	storage->rx_dropped += (unsigned long)atomic_long_read(&dev->rx_dropped);
ffff80001139f9ac:	8b000040 	add	x0, x2, x0
ffff80001139f9b0:	f9001a60 	str	x0, [x19,#48]
ffff80001139f9b4:	f940e680 	ldr	x0, [x20,#456]
	storage->rx_nohandler += (unsigned long)atomic_long_read(&dev->rx_nohandler);
ffff80001139f9b8:	f9405e62 	ldr	x2, [x19,#184]
	storage->tx_dropped += (unsigned long)atomic_long_read(&dev->tx_dropped);
ffff80001139f9bc:	8b000020 	add	x0, x1, x0
ffff80001139f9c0:	f9001e60 	str	x0, [x19,#56]
ffff80001139f9c4:	f940ea81 	ldr	x1, [x20,#464]
}
ffff80001139f9c8:	aa1303e0 	mov	x0, x19
	storage->rx_nohandler += (unsigned long)atomic_long_read(&dev->rx_nohandler);
ffff80001139f9cc:	8b010041 	add	x1, x2, x1
ffff80001139f9d0:	f9005e61 	str	x1, [x19,#184]
}
ffff80001139f9d4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139f9d8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139f9dc:	d65f03c0 	ret
	} else if (ops->ndo_get_stats) {
ffff80001139f9e0:	f9404c01 	ldr	x1, [x0,#152]
ffff80001139f9e4:	b40000e1 	cbz	x1, ffff80001139fa00 <dev_get_stats+0xc8>
		netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev));
ffff80001139f9e8:	aa1403e0 	mov	x0, x20
ffff80001139f9ec:	d63f0020 	blr	x1
ffff80001139f9f0:	aa0003e1 	mov	x1, x0
ffff80001139f9f4:	aa1303e0 	mov	x0, x19
ffff80001139f9f8:	94000000 	bl	ffff80001139f8fc <netdev_stats_to_stats64>
			ffff80001139f9f8: R_AARCH64_CALL26	netdev_stats_to_stats64
ffff80001139f9fc:	17ffffe9 	b	ffff80001139f9a0 <dev_get_stats+0x68>
		netdev_stats_to_stats64(storage, &dev->stats);
ffff80001139fa00:	aa1303e0 	mov	x0, x19
ffff80001139fa04:	91042281 	add	x1, x20, #0x108
ffff80001139fa08:	94000000 	bl	ffff80001139f8fc <netdev_stats_to_stats64>
			ffff80001139fa08: R_AARCH64_CALL26	netdev_stats_to_stats64
ffff80001139fa0c:	17ffffe5 	b	ffff80001139f9a0 <dev_get_stats+0x68>

ffff80001139fa10 <dev_getbyhwaddr_rcu>:
{
ffff80001139fa10:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139fa14:	910003fd 	mov	x29, sp
ffff80001139fa18:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139fa1c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139fa20:	aa0003f4 	mov	x20, x0
ffff80001139fa24:	aa1e03e0 	mov	x0, x30
ffff80001139fa28:	53003c35 	uxth	w21, w1
ffff80001139fa2c:	aa0203f6 	mov	x22, x2
ffff80001139fa30:	94000000 	bl	0 <_mcount>
			ffff80001139fa30: R_AARCH64_CALL26	_mcount
ffff80001139fa34:	f8490e93 	ldr	x19, [x20,#144]!
	for_each_netdev_rcu(net, dev)
ffff80001139fa38:	eb13029f 	cmp	x20, x19
ffff80001139fa3c:	d1012273 	sub	x19, x19, #0x48
ffff80001139fa40:	540000c1 	b.ne	ffff80001139fa58 <dev_getbyhwaddr_rcu+0x48>
ffff80001139fa44:	14000012 	b	ffff80001139fa8c <dev_getbyhwaddr_rcu+0x7c>
ffff80001139fa48:	f9402673 	ldr	x19, [x19,#72]
ffff80001139fa4c:	eb13029f 	cmp	x20, x19
ffff80001139fa50:	d1012273 	sub	x19, x19, #0x48
ffff80001139fa54:	540001c0 	b.eq	ffff80001139fa8c <dev_getbyhwaddr_rcu+0x7c>
		if (dev->type == type &&
ffff80001139fa58:	79448a63 	ldrh	w3, [x19,#580]
ffff80001139fa5c:	6b15007f 	cmp	w3, w21
ffff80001139fa60:	54ffff41 	b.ne	ffff80001139fa48 <dev_getbyhwaddr_rcu+0x38>
		if (q_size < size)
			__read_overflow2();
	}
	if (p_size < size || q_size < size)
		fortify_panic(__func__);
	return __builtin_memcmp(p, q, size);
ffff80001139fa64:	f9418e60 	ldr	x0, [x19,#792]
ffff80001139fa68:	3949be62 	ldrb	w2, [x19,#623]
ffff80001139fa6c:	aa1603e1 	mov	x1, x22
ffff80001139fa70:	94000000 	bl	0 <memcmp>
			ffff80001139fa70: R_AARCH64_CALL26	memcmp
ffff80001139fa74:	35fffea0 	cbnz	w0, ffff80001139fa48 <dev_getbyhwaddr_rcu+0x38>
ffff80001139fa78:	aa1303e0 	mov	x0, x19
}
ffff80001139fa7c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139fa80:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fa84:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139fa88:	d65f03c0 	ret
	return NULL;
ffff80001139fa8c:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139fa90:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fa94:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139fa98:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139fa9c:	d65f03c0 	ret

ffff80001139faa0 <__dev_getfirstbyhwtype>:
{
ffff80001139faa0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139faa4:	910003fd 	mov	x29, sp
ffff80001139faa8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139faac:	aa0003f4 	mov	x20, x0
ffff80001139fab0:	aa1e03e0 	mov	x0, x30
ffff80001139fab4:	53003c33 	uxth	w19, w1
ffff80001139fab8:	94000000 	bl	0 <_mcount>
			ffff80001139fab8: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139fabc:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139fabc: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139fac0:	34000320 	cbz	w0, ffff80001139fb24 <__dev_getfirstbyhwtype+0x84>
	for_each_netdev(net, dev)
ffff80001139fac4:	aa1403e0 	mov	x0, x20
ffff80001139fac8:	f8490c02 	ldr	x2, [x0,#144]!
ffff80001139facc:	eb02001f 	cmp	x0, x2
ffff80001139fad0:	d1012042 	sub	x2, x2, #0x48
ffff80001139fad4:	54000180 	b.eq	ffff80001139fb04 <__dev_getfirstbyhwtype+0x64>
		if (dev->type == type)
ffff80001139fad8:	79448841 	ldrh	w1, [x2,#580]
ffff80001139fadc:	6b13003f 	cmp	w1, w19
ffff80001139fae0:	540000a1 	b.ne	ffff80001139faf4 <__dev_getfirstbyhwtype+0x54>
ffff80001139fae4:	1400000c 	b	ffff80001139fb14 <__dev_getfirstbyhwtype+0x74>
ffff80001139fae8:	79448843 	ldrh	w3, [x2,#580]
ffff80001139faec:	6b13007f 	cmp	w3, w19
ffff80001139faf0:	54000120 	b.eq	ffff80001139fb14 <__dev_getfirstbyhwtype+0x74>
	for_each_netdev(net, dev)
ffff80001139faf4:	f9402442 	ldr	x2, [x2,#72]
ffff80001139faf8:	eb02001f 	cmp	x0, x2
ffff80001139fafc:	d1012042 	sub	x2, x2, #0x48
ffff80001139fb00:	54ffff41 	b.ne	ffff80001139fae8 <__dev_getfirstbyhwtype+0x48>
	return NULL;
ffff80001139fb04:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139fb08:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fb0c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fb10:	d65f03c0 	ret
	for_each_netdev(net, dev)
ffff80001139fb14:	aa0203e0 	mov	x0, x2
}
ffff80001139fb18:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fb1c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fb20:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139fb24:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fb24: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fb28:	39400060 	ldrb	w0, [x3]
			ffff80001139fb28: R_AARCH64_LDST8_ABS_LO12_NC	.data.once
ffff80001139fb2c:	35fffcc0 	cbnz	w0, ffff80001139fac4 <__dev_getfirstbyhwtype+0x24>
ffff80001139fb30:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fb30: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fb34:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fb34: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139fb38:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fb3c:	91000000 	add	x0, x0, #0x0
			ffff80001139fb3c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139fb40:	91000021 	add	x1, x1, #0x0
			ffff80001139fb40: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139fb44:	52807c42 	mov	w2, #0x3e2                 	// #994
ffff80001139fb48:	39000064 	strb	w4, [x3]
			ffff80001139fb48: R_AARCH64_LDST8_ABS_LO12_NC	.data.once
ffff80001139fb4c:	94000000 	bl	0 <__warn_printk>
			ffff80001139fb4c: R_AARCH64_CALL26	__warn_printk
ffff80001139fb50:	d4210000 	brk	#0x800
ffff80001139fb54:	17ffffdc 	b	ffff80001139fac4 <__dev_getfirstbyhwtype+0x24>

ffff80001139fb58 <__dev_get_by_flags>:
{
ffff80001139fb58:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139fb5c:	910003fd 	mov	x29, sp
ffff80001139fb60:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139fb64:	f90013f5 	str	x21, [sp,#32]
ffff80001139fb68:	aa0003f5 	mov	x21, x0
ffff80001139fb6c:	aa1e03e0 	mov	x0, x30
ffff80001139fb70:	53003c34 	uxth	w20, w1
ffff80001139fb74:	53003c53 	uxth	w19, w2
ffff80001139fb78:	94000000 	bl	0 <_mcount>
			ffff80001139fb78: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139fb7c:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139fb7c: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139fb80:	34000300 	cbz	w0, ffff80001139fbe0 <__dev_get_by_flags+0x88>
	for_each_netdev(net, dev) {
ffff80001139fb84:	aa1503e4 	mov	x4, x21
ffff80001139fb88:	f8490c80 	ldr	x0, [x4,#144]!
ffff80001139fb8c:	eb00009f 	cmp	x4, x0
ffff80001139fb90:	d1012000 	sub	x0, x0, #0x48
ffff80001139fb94:	540001c0 	b.eq	ffff80001139fbcc <__dev_get_by_flags+0x74>
		if (((dev->flags ^ if_flags) & mask) == 0) {
ffff80001139fb98:	b9422801 	ldr	w1, [x0,#552]
ffff80001139fb9c:	4a010281 	eor	w1, w20, w1
ffff80001139fba0:	6a13003f 	tst	w1, w19
ffff80001139fba4:	540000c1 	b.ne	ffff80001139fbbc <__dev_get_by_flags+0x64>
ffff80001139fba8:	1400000a 	b	ffff80001139fbd0 <__dev_get_by_flags+0x78>
ffff80001139fbac:	b9422803 	ldr	w3, [x0,#552]
ffff80001139fbb0:	4a030283 	eor	w3, w20, w3
ffff80001139fbb4:	6a13007f 	tst	w3, w19
ffff80001139fbb8:	540000c0 	b.eq	ffff80001139fbd0 <__dev_get_by_flags+0x78>
	for_each_netdev(net, dev) {
ffff80001139fbbc:	f9402400 	ldr	x0, [x0,#72]
ffff80001139fbc0:	eb00009f 	cmp	x4, x0
ffff80001139fbc4:	d1012000 	sub	x0, x0, #0x48
ffff80001139fbc8:	54ffff21 	b.ne	ffff80001139fbac <__dev_get_by_flags+0x54>
	ret = NULL;
ffff80001139fbcc:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff80001139fbd0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fbd4:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139fbd8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139fbdc:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139fbe0:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fbe0: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fbe4:	91000063 	add	x3, x3, #0x0
			ffff80001139fbe4: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139fbe8:	39400460 	ldrb	w0, [x3,#1]
ffff80001139fbec:	35fffcc0 	cbnz	w0, ffff80001139fb84 <__dev_get_by_flags+0x2c>
ffff80001139fbf0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fbf0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fbf4:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fbf4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139fbf8:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fbfc:	91000000 	add	x0, x0, #0x0
			ffff80001139fbfc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139fc00:	91000021 	add	x1, x1, #0x0
			ffff80001139fc00: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139fc04:	52808162 	mov	w2, #0x40b                 	// #1035
ffff80001139fc08:	39000464 	strb	w4, [x3,#1]
ffff80001139fc0c:	94000000 	bl	0 <__warn_printk>
			ffff80001139fc0c: R_AARCH64_CALL26	__warn_printk
ffff80001139fc10:	d4210000 	brk	#0x800
ffff80001139fc14:	17ffffdc 	b	ffff80001139fb84 <__dev_get_by_flags+0x2c>

ffff80001139fc18 <netdev_reg_state>:
{
	return dev->reg_state == NETREG_UNREGISTERING;
}

static inline const char *netdev_reg_state(const struct net_device *dev)
{
ffff80001139fc18:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139fc1c:	910003fd 	mov	x29, sp
ffff80001139fc20:	f9000bf3 	str	x19, [sp,#16]
	switch (dev->reg_state) {
ffff80001139fc24:	39536002 	ldrb	w2, [x0,#1240]
{
ffff80001139fc28:	aa0003e1 	mov	x1, x0
	switch (dev->reg_state) {
ffff80001139fc2c:	7100145f 	cmp	w2, #0x5
ffff80001139fc30:	54000169 	b.ls	ffff80001139fc5c <netdev_reg_state+0x44>
	case NETREG_UNREGISTERED: return " (unregistered)";
	case NETREG_RELEASED: return " (released)";
	case NETREG_DUMMY: return " (dummy)";
	}

	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff80001139fc34:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fc34: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fc38:	91000063 	add	x3, x3, #0x0
			ffff80001139fc38: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139fc3c:	39400860 	ldrb	w0, [x3,#2]
	return " (unknown)";
ffff80001139fc40:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fc40: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb8
ffff80001139fc44:	91000273 	add	x19, x19, #0x0
			ffff80001139fc44: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb8
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff80001139fc48:	340005e0 	cbz	w0, ffff80001139fd04 <netdev_reg_state+0xec>
}
ffff80001139fc4c:	aa1303e0 	mov	x0, x19
ffff80001139fc50:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fc54:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fc58:	d65f03c0 	ret
	switch (dev->reg_state) {
ffff80001139fc5c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fc5c: R_AARCH64_ADR_PREL_PG_HI21	.rodata
ffff80001139fc60:	91000000 	add	x0, x0, #0x0
			ffff80001139fc60: R_AARCH64_ADD_ABS_LO12_NC	.rodata
ffff80001139fc64:	38624801 	ldrb	w1, [x0,w2,uxtw]
ffff80001139fc68:	10000063 	adr	x3, ffff80001139fc74 <netdev_reg_state+0x5c>
ffff80001139fc6c:	8b218861 	add	x1, x3, w1, sxtb #2
ffff80001139fc70:	d61f0020 	br	x1
	case NETREG_REGISTERED: return "";
ffff80001139fc74:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fc74: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x68
ffff80001139fc78:	91000273 	add	x19, x19, #0x0
			ffff80001139fc78: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x68
}
ffff80001139fc7c:	aa1303e0 	mov	x0, x19
ffff80001139fc80:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fc84:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fc88:	d65f03c0 	ret
	case NETREG_UNREGISTERING: return " (unregistering)";
ffff80001139fc8c:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fc8c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x70
ffff80001139fc90:	91000273 	add	x19, x19, #0x0
			ffff80001139fc90: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x70
}
ffff80001139fc94:	aa1303e0 	mov	x0, x19
ffff80001139fc98:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fc9c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fca0:	d65f03c0 	ret
	case NETREG_UNREGISTERED: return " (unregistered)";
ffff80001139fca4:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fca4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x88
ffff80001139fca8:	91000273 	add	x19, x19, #0x0
			ffff80001139fca8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x88
}
ffff80001139fcac:	aa1303e0 	mov	x0, x19
ffff80001139fcb0:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fcb4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fcb8:	d65f03c0 	ret
	case NETREG_RELEASED: return " (released)";
ffff80001139fcbc:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fcbc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x98
ffff80001139fcc0:	91000273 	add	x19, x19, #0x0
			ffff80001139fcc0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x98
}
ffff80001139fcc4:	aa1303e0 	mov	x0, x19
ffff80001139fcc8:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fccc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fcd0:	d65f03c0 	ret
	case NETREG_DUMMY: return " (dummy)";
ffff80001139fcd4:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fcd4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa8
ffff80001139fcd8:	91000273 	add	x19, x19, #0x0
			ffff80001139fcd8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa8
}
ffff80001139fcdc:	aa1303e0 	mov	x0, x19
ffff80001139fce0:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fce4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fce8:	d65f03c0 	ret
	case NETREG_UNINITIALIZED: return " (uninitialized)";
ffff80001139fcec:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fcec: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x50
ffff80001139fcf0:	91000273 	add	x19, x19, #0x0
			ffff80001139fcf0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x50
}
ffff80001139fcf4:	aa1303e0 	mov	x0, x19
ffff80001139fcf8:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fcfc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fd00:	d65f03c0 	ret
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff80001139fd04:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fd04: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc8
ffff80001139fd08:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fd0c:	91000000 	add	x0, x0, #0x0
			ffff80001139fd0c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc8
ffff80001139fd10:	39000864 	strb	w4, [x3,#2]
ffff80001139fd14:	94000000 	bl	0 <__warn_printk>
			ffff80001139fd14: R_AARCH64_CALL26	__warn_printk
ffff80001139fd18:	d4210000 	brk	#0x800
ffff80001139fd1c:	17ffffcc 	b	ffff80001139fc4c <netdev_reg_state+0x34>

ffff80001139fd20 <netdev_is_rx_handler_busy>:
{
ffff80001139fd20:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139fd24:	910003fd 	mov	x29, sp
ffff80001139fd28:	f9000bf3 	str	x19, [sp,#16]
ffff80001139fd2c:	aa0003f3 	mov	x19, x0
ffff80001139fd30:	aa1e03e0 	mov	x0, x30
ffff80001139fd34:	94000000 	bl	0 <_mcount>
			ffff80001139fd34: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139fd38:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139fd38: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139fd3c:	34000180 	cbz	w0, ffff80001139fd6c <netdev_is_rx_handler_busy+0x4c>
	return dev && rtnl_dereference(dev->rx_handler);
ffff80001139fd40:	b40000f3 	cbz	x19, ffff80001139fd5c <netdev_is_rx_handler_busy+0x3c>
ffff80001139fd44:	f941a260 	ldr	x0, [x19,#832]
}
ffff80001139fd48:	f9400bf3 	ldr	x19, [sp,#16]
	return dev && rtnl_dereference(dev->rx_handler);
ffff80001139fd4c:	eb1f001f 	cmp	x0, xzr
ffff80001139fd50:	1a9f07e0 	cset	w0, ne
}
ffff80001139fd54:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fd58:	d65f03c0 	ret
ffff80001139fd5c:	2a1303e0 	mov	w0, w19
ffff80001139fd60:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fd64:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fd68:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139fd6c:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fd6c: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fd70:	91000063 	add	x3, x3, #0x0
			ffff80001139fd70: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139fd74:	39400c60 	ldrb	w0, [x3,#3]
ffff80001139fd78:	35fffe40 	cbnz	w0, ffff80001139fd40 <netdev_is_rx_handler_busy+0x20>
ffff80001139fd7c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fd7c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fd80:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fd80: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139fd84:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fd88:	91000000 	add	x0, x0, #0x0
			ffff80001139fd88: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139fd8c:	91000021 	add	x1, x1, #0x0
			ffff80001139fd8c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139fd90:	528263e2 	mov	w2, #0x131f                	// #4895
ffff80001139fd94:	39000c64 	strb	w4, [x3,#3]
ffff80001139fd98:	94000000 	bl	0 <__warn_printk>
			ffff80001139fd98: R_AARCH64_CALL26	__warn_printk
ffff80001139fd9c:	d4210000 	brk	#0x800
ffff80001139fda0:	17ffffe8 	b	ffff80001139fd40 <netdev_is_rx_handler_busy+0x20>

ffff80001139fda4 <netdev_rx_handler_register>:
{
ffff80001139fda4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139fda8:	910003fd 	mov	x29, sp
ffff80001139fdac:	f9000bf3 	str	x19, [sp,#16]
ffff80001139fdb0:	aa0003f3 	mov	x19, x0
ffff80001139fdb4:	aa1e03e0 	mov	x0, x30
ffff80001139fdb8:	f90017a1 	str	x1, [x29,#40]
ffff80001139fdbc:	f90013a2 	str	x2, [x29,#32]
ffff80001139fdc0:	94000000 	bl	0 <_mcount>
			ffff80001139fdc0: R_AARCH64_CALL26	_mcount
	if (netdev_is_rx_handler_busy(dev))
ffff80001139fdc4:	aa1303e0 	mov	x0, x19
ffff80001139fdc8:	94000000 	bl	ffff80001139fd20 <netdev_is_rx_handler_busy>
			ffff80001139fdc8: R_AARCH64_CALL26	netdev_is_rx_handler_busy
ffff80001139fdcc:	53001c00 	uxtb	w0, w0
ffff80001139fdd0:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139fdd4:	f94013a2 	ldr	x2, [x29,#32]
ffff80001139fdd8:	35000160 	cbnz	w0, ffff80001139fe04 <netdev_rx_handler_register+0x60>
	if (dev->priv_flags & IFF_NO_RX_HANDLER)
ffff80001139fddc:	b9422e60 	ldr	w0, [x19,#556]
ffff80001139fde0:	12060000 	and	w0, w0, #0x4000000
ffff80001139fde4:	35000140 	cbnz	w0, ffff80001139fe0c <netdev_rx_handler_register+0x68>
	rcu_assign_pointer(dev->rx_handler_data, rx_handler_data);
ffff80001139fde8:	910d2263 	add	x3, x19, #0x348
ffff80001139fdec:	c89ffc62 	stlr	x2, [x3]
	rcu_assign_pointer(dev->rx_handler, rx_handler);
ffff80001139fdf0:	910d0273 	add	x19, x19, #0x340
ffff80001139fdf4:	c89ffe61 	stlr	x1, [x19]
}
ffff80001139fdf8:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139fdfc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139fe00:	d65f03c0 	ret
		return -EBUSY;
ffff80001139fe04:	128001e0 	mov	w0, #0xfffffff0            	// #-16
ffff80001139fe08:	17fffffc 	b	ffff80001139fdf8 <netdev_rx_handler_register+0x54>
		return -EINVAL;
ffff80001139fe0c:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff80001139fe10:	17fffffa 	b	ffff80001139fdf8 <netdev_rx_handler_register+0x54>

ffff80001139fe14 <netdev_has_upper_dev>:
{
ffff80001139fe14:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139fe18:	910003fd 	mov	x29, sp
ffff80001139fe1c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139fe20:	aa0003f4 	mov	x20, x0
ffff80001139fe24:	aa1e03e0 	mov	x0, x30
ffff80001139fe28:	aa0103f3 	mov	x19, x1
ffff80001139fe2c:	94000000 	bl	0 <_mcount>
			ffff80001139fe2c: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139fe30:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139fe30: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139fe34:	34000160 	cbz	w0, ffff80001139fe60 <netdev_has_upper_dev+0x4c>
	return netdev_walk_all_upper_dev_rcu(dev, ____netdev_has_upper_dev,
ffff80001139fe38:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fe38: R_AARCH64_ADR_PREL_PG_HI21	.text+0x654
ffff80001139fe3c:	aa1303e2 	mov	x2, x19
ffff80001139fe40:	aa1403e0 	mov	x0, x20
ffff80001139fe44:	91000021 	add	x1, x1, #0x0
			ffff80001139fe44: R_AARCH64_ADD_ABS_LO12_NC	.text+0x654
ffff80001139fe48:	94000000 	bl	ffff80001139eb74 <netdev_walk_all_upper_dev_rcu>
			ffff80001139fe48: R_AARCH64_CALL26	netdev_walk_all_upper_dev_rcu
ffff80001139fe4c:	6b1f001f 	cmp	w0, wzr
}
ffff80001139fe50:	1a9f07e0 	cset	w0, ne
ffff80001139fe54:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139fe58:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fe5c:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139fe60:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fe60: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fe64:	91000063 	add	x3, x3, #0x0
			ffff80001139fe64: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139fe68:	39401060 	ldrb	w0, [x3,#4]
ffff80001139fe6c:	35fffe60 	cbnz	w0, ffff80001139fe38 <netdev_has_upper_dev+0x24>
ffff80001139fe70:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fe70: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fe74:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fe74: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139fe78:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fe7c:	91000000 	add	x0, x0, #0x0
			ffff80001139fe7c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139fe80:	91000021 	add	x1, x1, #0x0
			ffff80001139fe80: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139fe84:	52834782 	mov	w2, #0x1a3c                	// #6716
ffff80001139fe88:	39001064 	strb	w4, [x3,#4]
ffff80001139fe8c:	94000000 	bl	0 <__warn_printk>
			ffff80001139fe8c: R_AARCH64_CALL26	__warn_printk
ffff80001139fe90:	d4210000 	brk	#0x800
ffff80001139fe94:	17ffffe9 	b	ffff80001139fe38 <netdev_has_upper_dev+0x24>

ffff80001139fe98 <netdev_has_any_upper_dev>:
{
ffff80001139fe98:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139fe9c:	910003fd 	mov	x29, sp
ffff80001139fea0:	f9000bf3 	str	x19, [sp,#16]
ffff80001139fea4:	aa0003f3 	mov	x19, x0
ffff80001139fea8:	aa1e03e0 	mov	x0, x30
ffff80001139feac:	94000000 	bl	0 <_mcount>
			ffff80001139feac: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139feb0:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139feb0: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139feb4:	34000100 	cbz	w0, ffff80001139fed4 <netdev_has_any_upper_dev+0x3c>
ffff80001139feb8:	aa1303e0 	mov	x0, x19
ffff80001139febc:	f84a8c01 	ldr	x1, [x0,#168]!
}
ffff80001139fec0:	f9400bf3 	ldr	x19, [sp,#16]
	return !list_empty(&dev->adj_list.upper);
ffff80001139fec4:	eb01001f 	cmp	x0, x1
}
ffff80001139fec8:	1a9f07e0 	cset	w0, ne
ffff80001139fecc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139fed0:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139fed4:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fed4: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139fed8:	91000063 	add	x3, x3, #0x0
			ffff80001139fed8: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139fedc:	39401460 	ldrb	w0, [x3,#5]
ffff80001139fee0:	35fffec0 	cbnz	w0, ffff80001139feb8 <netdev_has_any_upper_dev+0x20>
ffff80001139fee4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fee4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fee8:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fee8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139feec:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139fef0:	91000000 	add	x0, x0, #0x0
			ffff80001139fef0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139fef4:	91000021 	add	x1, x1, #0x0
			ffff80001139fef4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139fef8:	52834bc2 	mov	w2, #0x1a5e                	// #6750
ffff80001139fefc:	39001464 	strb	w4, [x3,#5]
ffff80001139ff00:	94000000 	bl	0 <__warn_printk>
			ffff80001139ff00: R_AARCH64_CALL26	__warn_printk
ffff80001139ff04:	d4210000 	brk	#0x800
ffff80001139ff08:	17ffffec 	b	ffff80001139feb8 <netdev_has_any_upper_dev+0x20>

ffff80001139ff0c <netdev_master_upper_dev_get>:
{
ffff80001139ff0c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139ff10:	910003fd 	mov	x29, sp
ffff80001139ff14:	f9000bf3 	str	x19, [sp,#16]
ffff80001139ff18:	aa0003f3 	mov	x19, x0
ffff80001139ff1c:	aa1e03e0 	mov	x0, x30
ffff80001139ff20:	94000000 	bl	0 <_mcount>
			ffff80001139ff20: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139ff24:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139ff24: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139ff28:	340001c0 	cbz	w0, ffff80001139ff60 <netdev_master_upper_dev_get+0x54>
ffff80001139ff2c:	aa1303e1 	mov	x1, x19
ffff80001139ff30:	f84a8c20 	ldr	x0, [x1,#168]!
	if (list_empty(&dev->adj_list.upper))
ffff80001139ff34:	eb00003f 	cmp	x1, x0
ffff80001139ff38:	54000100 	b.eq	ffff80001139ff58 <netdev_master_upper_dev_get+0x4c>
	upper = list_first_entry(&dev->adj_list.upper,
ffff80001139ff3c:	f9405660 	ldr	x0, [x19,#168]
	if (likely(upper->master))
ffff80001139ff40:	385f0001 	ldurb	w1, [x0,#-16]
ffff80001139ff44:	340000a1 	cbz	w1, ffff80001139ff58 <netdev_master_upper_dev_get+0x4c>
		return upper->dev;
ffff80001139ff48:	f85e8000 	ldur	x0, [x0,#-24]
}
ffff80001139ff4c:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139ff50:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139ff54:	d65f03c0 	ret
		return NULL;
ffff80001139ff58:	d2800000 	mov	x0, #0x0                   	// #0
ffff80001139ff5c:	17fffffc 	b	ffff80001139ff4c <netdev_master_upper_dev_get+0x40>
	ASSERT_RTNL();
ffff80001139ff60:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ff60: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139ff64:	91000063 	add	x3, x3, #0x0
			ffff80001139ff64: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139ff68:	39401860 	ldrb	w0, [x3,#6]
ffff80001139ff6c:	35fffe00 	cbnz	w0, ffff80001139ff2c <netdev_master_upper_dev_get+0x20>
ffff80001139ff70:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ff70: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139ff74:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ff74: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139ff78:	52800024 	mov	w4, #0x1                   	// #1
ffff80001139ff7c:	91000000 	add	x0, x0, #0x0
			ffff80001139ff7c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff80001139ff80:	91000021 	add	x1, x1, #0x0
			ffff80001139ff80: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff80001139ff84:	52834de2 	mov	w2, #0x1a6f                	// #6767
ffff80001139ff88:	39001864 	strb	w4, [x3,#6]
ffff80001139ff8c:	94000000 	bl	0 <__warn_printk>
			ffff80001139ff8c: R_AARCH64_CALL26	__warn_printk
ffff80001139ff90:	d4210000 	brk	#0x800
ffff80001139ff94:	17ffffe6 	b	ffff80001139ff2c <netdev_master_upper_dev_get+0x20>

ffff80001139ff98 <__netdev_has_upper_dev>:
{
ffff80001139ff98:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139ff9c:	910003fd 	mov	x29, sp
ffff80001139ffa0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139ffa4:	aa0003f4 	mov	x20, x0
ffff80001139ffa8:	aa1e03e0 	mov	x0, x30
ffff80001139ffac:	aa0103f3 	mov	x19, x1
ffff80001139ffb0:	94000000 	bl	0 <_mcount>
			ffff80001139ffb0: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff80001139ffb4:	94000000 	bl	0 <rtnl_is_locked>
			ffff80001139ffb4: R_AARCH64_CALL26	rtnl_is_locked
ffff80001139ffb8:	34000160 	cbz	w0, ffff80001139ffe4 <__netdev_has_upper_dev+0x4c>
	return __netdev_walk_all_upper_dev(dev, ____netdev_has_upper_dev,
ffff80001139ffbc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ffbc: R_AARCH64_ADR_PREL_PG_HI21	.text+0x654
ffff80001139ffc0:	aa1303e2 	mov	x2, x19
ffff80001139ffc4:	aa1403e0 	mov	x0, x20
ffff80001139ffc8:	91000021 	add	x1, x1, #0x0
			ffff80001139ffc8: R_AARCH64_ADD_ABS_LO12_NC	.text+0x654
ffff80001139ffcc:	97fffaac 	bl	ffff80001139ea7c <__netdev_walk_all_upper_dev>
ffff80001139ffd0:	6b1f001f 	cmp	w0, wzr
}
ffff80001139ffd4:	1a9f07e0 	cset	w0, ne
ffff80001139ffd8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139ffdc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139ffe0:	d65f03c0 	ret
	ASSERT_RTNL();
ffff80001139ffe4:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff80001139ffe4: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff80001139ffe8:	91000063 	add	x3, x3, #0x0
			ffff80001139ffe8: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff80001139ffec:	39401c60 	ldrb	w0, [x3,#7]
ffff80001139fff0:	35fffe60 	cbnz	w0, ffff80001139ffbc <__netdev_has_upper_dev+0x24>
ffff80001139fff4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fff4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff80001139fff8:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff80001139fff8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff80001139fffc:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a0000:	91000000 	add	x0, x0, #0x0
			ffff8000113a0000: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a0004:	91000021 	add	x1, x1, #0x0
			ffff8000113a0004: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a0008:	52836862 	mov	w2, #0x1b43                	// #6979
ffff8000113a000c:	39001c64 	strb	w4, [x3,#7]
ffff8000113a0010:	94000000 	bl	0 <__warn_printk>
			ffff8000113a0010: R_AARCH64_CALL26	__warn_printk
ffff8000113a0014:	d4210000 	brk	#0x800
ffff8000113a0018:	17ffffe9 	b	ffff80001139ffbc <__netdev_has_upper_dev+0x24>

ffff8000113a001c <remove_xps_queue>:
{
ffff8000113a001c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a0020:	910003fd 	mov	x29, sp
ffff8000113a0024:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0028:	aa0003f4 	mov	x20, x0
ffff8000113a002c:	aa1e03e0 	mov	x0, x30
ffff8000113a0030:	f90017a1 	str	x1, [x29,#40]
ffff8000113a0034:	53003c53 	uxth	w19, w2
ffff8000113a0038:	94000000 	bl	0 <_mcount>
			ffff8000113a0038: R_AARCH64_CALL26	_mcount
	if (dev_maps)
ffff8000113a003c:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a0040:	b40004d4 	cbz	x20, ffff8000113a00d8 <remove_xps_queue+0xbc>
		map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a0044:	93407c21 	sxtw	x1, w1
ffff8000113a0048:	91000820 	add	x0, x1, #0x2
ffff8000113a004c:	f8607a84 	ldr	x4, [x20,x0,lsl #3]
		return false;
ffff8000113a0050:	52800000 	mov	w0, #0x0                   	// #0
	if (!map)
ffff8000113a0054:	b4000284 	cbz	x4, ffff8000113a00a4 <remove_xps_queue+0x88>
	for (pos = map->len; pos--;) {
ffff8000113a0058:	b9400082 	ldr	w2, [x4]
ffff8000113a005c:	51000440 	sub	w0, w2, #0x1
ffff8000113a0060:	2a0003e3 	mov	w3, w0
		if (map->queues[pos] != index)
ffff8000113a0064:	93407c65 	sxtw	x5, w3
ffff8000113a0068:	910020a5 	add	x5, x5, #0x8
	for (pos = map->len; pos--;) {
ffff8000113a006c:	3100047f 	cmn	w3, #0x1
		if (map->queues[pos] != index)
ffff8000113a0070:	8b050485 	add	x5, x4, x5, lsl #1
	for (pos = map->len; pos--;) {
ffff8000113a0074:	540003a0 	b.eq	ffff8000113a00e8 <remove_xps_queue+0xcc>
		if (map->queues[pos] != index)
ffff8000113a0078:	794010a6 	ldrh	w6, [x5,#8]
ffff8000113a007c:	51000463 	sub	w3, w3, #0x1
ffff8000113a0080:	6b1300df 	cmp	w6, w19
ffff8000113a0084:	54ffff01 	b.ne	ffff8000113a0064 <remove_xps_queue+0x48>
		if (map->len > 1) {
ffff8000113a0088:	7100045f 	cmp	w2, #0x1
ffff8000113a008c:	54000129 	b.ls	ffff8000113a00b0 <remove_xps_queue+0x94>
			map->queues[pos] = map->queues[--map->len];
ffff8000113a0090:	b9000080 	str	w0, [x4]
ffff8000113a0094:	8b204484 	add	x4, x4, w0, uxtw #1
ffff8000113a0098:	79403081 	ldrh	w1, [x4,#24]
	return true;
ffff8000113a009c:	52800020 	mov	w0, #0x1                   	// #1
			map->queues[pos] = map->queues[--map->len];
ffff8000113a00a0:	790010a1 	strh	w1, [x5,#8]
}
ffff8000113a00a4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a00a8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a00ac:	d65f03c0 	ret
		RCU_INIT_POINTER(dev_maps->attr_map[tci], NULL);
ffff8000113a00b0:	91000821 	add	x1, x1, #0x2
ffff8000113a00b4:	d37df021 	lsl	x1, x1, #3
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a00b8:	f8216a9f 	str	xzr, [x20,x1]
		kfree_rcu(map, rcu);
ffff8000113a00bc:	91002080 	add	x0, x4, #0x8
ffff8000113a00c0:	d2800101 	mov	x1, #0x8                   	// #8
ffff8000113a00c4:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a00c4: R_AARCH64_CALL26	kfree_call_rcu
}
ffff8000113a00c8:	a94153f3 	ldp	x19, x20, [sp,#16]
		return false;
ffff8000113a00cc:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a00d0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a00d4:	d65f03c0 	ret
		return false;
ffff8000113a00d8:	2a1403e0 	mov	w0, w20
}
ffff8000113a00dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a00e0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a00e4:	d65f03c0 	ret
ffff8000113a00e8:	a94153f3 	ldp	x19, x20, [sp,#16]
	return true;
ffff8000113a00ec:	52800020 	mov	w0, #0x1                   	// #1
}
ffff8000113a00f0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a00f4:	d65f03c0 	ret

ffff8000113a00f8 <call_netdevice_notifiers_info>:
{
ffff8000113a00f8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a00fc:	910003fd 	mov	x29, sp
ffff8000113a0100:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0104:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0108:	aa0003f4 	mov	x20, x0
ffff8000113a010c:	aa1e03e0 	mov	x0, x30
ffff8000113a0110:	aa0103f3 	mov	x19, x1
ffff8000113a0114:	94000000 	bl	0 <_mcount>
			ffff8000113a0114: R_AARCH64_CALL26	_mcount
}

static inline struct net *read_pnet(const possible_net_t *pnet)
{
#ifdef CONFIG_NET_NS
	return pnet->net;
ffff8000113a0118:	f9400260 	ldr	x0, [x19]
ffff8000113a011c:	f9427815 	ldr	x21, [x0,#1264]
	ASSERT_RTNL();
ffff8000113a0120:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a0120: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a0124:	34000200 	cbz	w0, ffff8000113a0164 <call_netdevice_notifiers_info+0x6c>
	ret = raw_notifier_call_chain(&net->netdev_chain, val, info);
ffff8000113a0128:	aa1403e1 	mov	x1, x20
ffff8000113a012c:	9104e2a0 	add	x0, x21, #0x138
ffff8000113a0130:	aa1303e2 	mov	x2, x19
ffff8000113a0134:	94000000 	bl	0 <raw_notifier_call_chain>
			ffff8000113a0134: R_AARCH64_CALL26	raw_notifier_call_chain
	if (ret & NOTIFY_STOP_MASK)
ffff8000113a0138:	377800e0 	tbnz	w0, #15, ffff8000113a0154 <call_netdevice_notifiers_info+0x5c>
	return raw_notifier_call_chain(&netdev_chain, val, info);
ffff8000113a013c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a013c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a0140:	91000000 	add	x0, x0, #0x0
			ffff8000113a0140: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a0144:	910c2000 	add	x0, x0, #0x308
ffff8000113a0148:	aa1403e1 	mov	x1, x20
ffff8000113a014c:	aa1303e2 	mov	x2, x19
ffff8000113a0150:	94000000 	bl	0 <raw_notifier_call_chain>
			ffff8000113a0150: R_AARCH64_CALL26	raw_notifier_call_chain
}
ffff8000113a0154:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0158:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a015c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a0160:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a0164:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0164: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a0168:	91000063 	add	x3, x3, #0x0
			ffff8000113a0168: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a016c:	39402060 	ldrb	w0, [x3,#8]
ffff8000113a0170:	35fffdc0 	cbnz	w0, ffff8000113a0128 <call_netdevice_notifiers_info+0x30>
ffff8000113a0174:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0174: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a0178:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0178: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a017c:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a0180:	91000000 	add	x0, x0, #0x0
			ffff8000113a0180: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a0184:	91000021 	add	x1, x1, #0x0
			ffff8000113a0184: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a0188:	5280f262 	mov	w2, #0x793                 	// #1939
ffff8000113a018c:	39002064 	strb	w4, [x3,#8]
ffff8000113a0190:	94000000 	bl	0 <__warn_printk>
			ffff8000113a0190: R_AARCH64_CALL26	__warn_printk
ffff8000113a0194:	d4210000 	brk	#0x800
ffff8000113a0198:	17ffffe4 	b	ffff8000113a0128 <call_netdevice_notifiers_info+0x30>

ffff8000113a019c <call_netdevice_notifiers>:
{
ffff8000113a019c:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a01a0:	910003fd 	mov	x29, sp
ffff8000113a01a4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a01a8:	f90013f5 	str	x21, [sp,#32]
ffff8000113a01ac:	aa0003f5 	mov	x21, x0
ffff8000113a01b0:	aa1e03e0 	mov	x0, x30
ffff8000113a01b4:	aa0103f4 	mov	x20, x1
ffff8000113a01b8:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a01b8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a01bc:	94000000 	bl	0 <_mcount>
			ffff8000113a01bc: R_AARCH64_CALL26	_mcount
ffff8000113a01c0:	f9400262 	ldr	x2, [x19]
			ffff8000113a01c0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a01c4:	9100e3a1 	add	x1, x29, #0x38
ffff8000113a01c8:	aa1503e0 	mov	x0, x21
{
ffff8000113a01cc:	f90027a2 	str	x2, [x29,#72]
	struct netdev_notifier_info info = {
ffff8000113a01d0:	f9001fb4 	str	x20, [x29,#56]
ffff8000113a01d4:	f90023bf 	str	xzr, [x29,#64]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a01d8:	97ffffc8 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113a01dc:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113a01e0:	f9400261 	ldr	x1, [x19]
			ffff8000113a01e0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a01e4:	eb01005f 	cmp	x2, x1
ffff8000113a01e8:	540000a1 	b.ne	ffff8000113a01fc <call_netdevice_notifiers+0x60>
ffff8000113a01ec:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a01f0:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a01f4:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a01f8:	d65f03c0 	ret
ffff8000113a01fc:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a01fc: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a0200 <netdev_features_change>:
{
ffff8000113a0200:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a0204:	910003fd 	mov	x29, sp
ffff8000113a0208:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a020c:	aa0003f4 	mov	x20, x0
ffff8000113a0210:	aa1e03e0 	mov	x0, x30
ffff8000113a0214:	94000000 	bl	0 <_mcount>
			ffff8000113a0214: R_AARCH64_CALL26	_mcount
ffff8000113a0218:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a0218: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a021c:	f9400262 	ldr	x2, [x19]
			ffff8000113a021c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a0220:	9100a3a1 	add	x1, x29, #0x28
ffff8000113a0224:	d2800180 	mov	x0, #0xc                   	// #12
{
ffff8000113a0228:	f9001fa2 	str	x2, [x29,#56]
	struct netdev_notifier_info info = {
ffff8000113a022c:	f90017b4 	str	x20, [x29,#40]
ffff8000113a0230:	f9001bbf 	str	xzr, [x29,#48]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a0234:	97ffffb1 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113a0238:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a023c:	f9400260 	ldr	x0, [x19]
			ffff8000113a023c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a0240:	eb00003f 	cmp	x1, x0
ffff8000113a0244:	54000081 	b.ne	ffff8000113a0254 <netdev_features_change+0x54>
ffff8000113a0248:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a024c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a0250:	d65f03c0 	ret
ffff8000113a0254:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a0254: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a0258 <netdev_bonding_info_change>:
{
ffff8000113a0258:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a025c:	910003fd 	mov	x29, sp
ffff8000113a0260:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0264:	aa0003f4 	mov	x20, x0
ffff8000113a0268:	aa1e03e0 	mov	x0, x30
ffff8000113a026c:	f90017a1 	str	x1, [x29,#40]
ffff8000113a0270:	94000000 	bl	0 <_mcount>
			ffff8000113a0270: R_AARCH64_CALL26	_mcount
	return __builtin_memcpy(p, q, size);
ffff8000113a0274:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a0278:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a0278: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a027c:	a9401424 	ldp	x4, x5, [x1]
ffff8000113a0280:	f9401027 	ldr	x7, [x1,#32]
ffff8000113a0284:	a9410c22 	ldp	x2, x3, [x1,#16]
	struct netdev_notifier_bonding_info info = {
ffff8000113a0288:	a9037fbf 	stp	xzr, xzr, [x29,#48]
ffff8000113a028c:	910103a6 	add	x6, x29, #0x40
ffff8000113a0290:	a90417a4 	stp	x4, x5, [x29,#64]
{
ffff8000113a0294:	f9400268 	ldr	x8, [x19]
			ffff8000113a0294: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	call_netdevice_notifiers_info(NETDEV_BONDING_INFO,
ffff8000113a0298:	9100c3a1 	add	x1, x29, #0x30
ffff8000113a029c:	d2800320 	mov	x0, #0x19                  	// #25
ffff8000113a02a0:	a9010cc2 	stp	x2, x3, [x6,#16]
ffff8000113a02a4:	f90010c7 	str	x7, [x6,#32]
{
ffff8000113a02a8:	f90037a8 	str	x8, [x29,#104]
	struct netdev_notifier_bonding_info info = {
ffff8000113a02ac:	f9001bb4 	str	x20, [x29,#48]
	call_netdevice_notifiers_info(NETDEV_BONDING_INFO,
ffff8000113a02b0:	97ffff92 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113a02b4:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113a02b8:	f9400260 	ldr	x0, [x19]
			ffff8000113a02b8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a02bc:	eb00003f 	cmp	x1, x0
ffff8000113a02c0:	54000081 	b.ne	ffff8000113a02d0 <netdev_bonding_info_change+0x78>
ffff8000113a02c4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a02c8:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a02cc:	d65f03c0 	ret
ffff8000113a02d0:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a02d0: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a02d4 <netdev_lower_state_changed>:
{
ffff8000113a02d4:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a02d8:	910003fd 	mov	x29, sp
ffff8000113a02dc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a02e0:	f90013f5 	str	x21, [sp,#32]
ffff8000113a02e4:	aa0003f5 	mov	x21, x0
ffff8000113a02e8:	aa1e03e0 	mov	x0, x30
ffff8000113a02ec:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a02ec: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a02f0:	aa0103f4 	mov	x20, x1
ffff8000113a02f4:	94000000 	bl	0 <_mcount>
			ffff8000113a02f4: R_AARCH64_CALL26	_mcount
ffff8000113a02f8:	f9400260 	ldr	x0, [x19]
			ffff8000113a02f8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct netdev_notifier_changelowerstate_info changelowerstate_info = {
ffff8000113a02fc:	a9037fbf 	stp	xzr, xzr, [x29,#48]
{
ffff8000113a0300:	f90027a0 	str	x0, [x29,#72]
	struct netdev_notifier_changelowerstate_info changelowerstate_info = {
ffff8000113a0304:	f90023bf 	str	xzr, [x29,#64]
ffff8000113a0308:	f9001bb5 	str	x21, [x29,#48]
	ASSERT_RTNL();
ffff8000113a030c:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a030c: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a0310:	340001a0 	cbz	w0, ffff8000113a0344 <netdev_lower_state_changed+0x70>
	call_netdevice_notifiers_info(NETDEV_CHANGELOWERSTATE,
ffff8000113a0314:	9100c3a1 	add	x1, x29, #0x30
ffff8000113a0318:	d2800360 	mov	x0, #0x1b                  	// #27
	changelowerstate_info.lower_state_info = lower_state_info;
ffff8000113a031c:	f90023b4 	str	x20, [x29,#64]
	call_netdevice_notifiers_info(NETDEV_CHANGELOWERSTATE,
ffff8000113a0320:	97ffff76 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113a0324:	f94027a1 	ldr	x1, [x29,#72]
ffff8000113a0328:	f9400260 	ldr	x0, [x19]
			ffff8000113a0328: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a032c:	eb00003f 	cmp	x1, x0
ffff8000113a0330:	54000261 	b.ne	ffff8000113a037c <netdev_lower_state_changed+0xa8>
ffff8000113a0334:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0338:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a033c:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a0340:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a0344:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0344: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a0348:	91000063 	add	x3, x3, #0x0
			ffff8000113a0348: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a034c:	39402460 	ldrb	w0, [x3,#9]
ffff8000113a0350:	35fffe20 	cbnz	w0, ffff8000113a0314 <netdev_lower_state_changed+0x40>
ffff8000113a0354:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0354: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a0358:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0358: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a035c:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a0360:	91000000 	add	x0, x0, #0x0
			ffff8000113a0360: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a0364:	91000021 	add	x1, x1, #0x0
			ffff8000113a0364: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a0368:	5283dae2 	mov	w2, #0x1ed7                	// #7895
ffff8000113a036c:	39002464 	strb	w4, [x3,#9]
ffff8000113a0370:	94000000 	bl	0 <__warn_printk>
			ffff8000113a0370: R_AARCH64_CALL26	__warn_printk
ffff8000113a0374:	d4210000 	brk	#0x800
ffff8000113a0378:	17ffffe7 	b	ffff8000113a0314 <netdev_lower_state_changed+0x40>
}
ffff8000113a037c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a037c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a0380 <dev_pre_changeaddr_notify>:
{
ffff8000113a0380:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a0384:	910003fd 	mov	x29, sp
ffff8000113a0388:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a038c:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0390:	aa0003f5 	mov	x21, x0
ffff8000113a0394:	aa1e03e0 	mov	x0, x30
ffff8000113a0398:	aa0103f4 	mov	x20, x1
ffff8000113a039c:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a03a0:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a03a0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a03a4:	94000000 	bl	0 <_mcount>
			ffff8000113a03a4: R_AARCH64_CALL26	_mcount
ffff8000113a03a8:	f9400263 	ldr	x3, [x19]
			ffff8000113a03a8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct netdev_notifier_pre_changeaddr_info info = {
ffff8000113a03ac:	f9401fa2 	ldr	x2, [x29,#56]
	rc = call_netdevice_notifiers_info(NETDEV_PRE_CHANGEADDR, &info.info);
ffff8000113a03b0:	d2800120 	mov	x0, #0x9                   	// #9
ffff8000113a03b4:	910103a1 	add	x1, x29, #0x40
{
ffff8000113a03b8:	f9002fa3 	str	x3, [x29,#88]
	struct netdev_notifier_pre_changeaddr_info info = {
ffff8000113a03bc:	f90023b5 	str	x21, [x29,#64]
ffff8000113a03c0:	f90027a2 	str	x2, [x29,#72]
ffff8000113a03c4:	f9002bb4 	str	x20, [x29,#80]
	rc = call_netdevice_notifiers_info(NETDEV_PRE_CHANGEADDR, &info.info);
ffff8000113a03c8:	97ffff4c 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113a03cc:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113a03d0:	7100041f 	cmp	w0, #0x1
ffff8000113a03d4:	5400016d 	b.le	ffff8000113a0400 <dev_pre_changeaddr_notify+0x80>
ffff8000113a03d8:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a03dc:	4b000020 	sub	w0, w1, w0
}
ffff8000113a03e0:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113a03e4:	f9400261 	ldr	x1, [x19]
			ffff8000113a03e4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a03e8:	eb01005f 	cmp	x2, x1
ffff8000113a03ec:	540000e1 	b.ne	ffff8000113a0408 <dev_pre_changeaddr_notify+0x88>
ffff8000113a03f0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a03f4:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a03f8:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a03fc:	d65f03c0 	ret
ffff8000113a0400:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a0404:	17fffff7 	b	ffff8000113a03e0 <dev_pre_changeaddr_notify+0x60>
ffff8000113a0408:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a0408: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a040c <netdev_notify_peers>:
{
ffff8000113a040c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a0410:	910003fd 	mov	x29, sp
ffff8000113a0414:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0418:	aa0003f4 	mov	x20, x0
ffff8000113a041c:	aa1e03e0 	mov	x0, x30
ffff8000113a0420:	94000000 	bl	0 <_mcount>
			ffff8000113a0420: R_AARCH64_CALL26	_mcount
ffff8000113a0424:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a0424: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a0428:	f9400260 	ldr	x0, [x19]
			ffff8000113a0428: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a042c:	f9001fa0 	str	x0, [x29,#56]
	rtnl_lock();
ffff8000113a0430:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a0430: R_AARCH64_CALL26	rtnl_lock
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a0434:	9100a3a1 	add	x1, x29, #0x28
ffff8000113a0438:	d2800260 	mov	x0, #0x13                  	// #19
	struct netdev_notifier_info info = {
ffff8000113a043c:	f90017b4 	str	x20, [x29,#40]
ffff8000113a0440:	f9001bbf 	str	xzr, [x29,#48]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a0444:	97ffff2d 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113a0448:	9100a3a1 	add	x1, x29, #0x28
ffff8000113a044c:	d28002c0 	mov	x0, #0x16                  	// #22
	struct netdev_notifier_info info = {
ffff8000113a0450:	f90017b4 	str	x20, [x29,#40]
ffff8000113a0454:	f9001bbf 	str	xzr, [x29,#48]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a0458:	97ffff28 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	rtnl_unlock();
ffff8000113a045c:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a045c: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a0460:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a0464:	f9400260 	ldr	x0, [x19]
			ffff8000113a0464: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a0468:	eb00003f 	cmp	x1, x0
ffff8000113a046c:	54000081 	b.ne	ffff8000113a047c <netdev_notify_peers+0x70>
ffff8000113a0470:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0474:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a0478:	d65f03c0 	ret
ffff8000113a047c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a047c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a0480 <__dev_close_many>:
{
ffff8000113a0480:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a0484:	910003fd 	mov	x29, sp
ffff8000113a0488:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a048c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a0490:	aa0003f5 	mov	x21, x0
ffff8000113a0494:	aa1e03e0 	mov	x0, x30
ffff8000113a0498:	94000000 	bl	0 <_mcount>
			ffff8000113a0498: R_AARCH64_CALL26	_mcount
ffff8000113a049c:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113a049c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a04a0:	f94002c0 	ldr	x0, [x22]
			ffff8000113a04a0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a04a4:	f90027a0 	str	x0, [x29,#72]
	ASSERT_RTNL();
ffff8000113a04a8:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a04a8: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a04ac:	340006a0 	cbz	w0, ffff8000113a0580 <__dev_close_many+0x100>
	might_sleep();
ffff8000113a04b0:	94000000 	bl	0 <_cond_resched>
			ffff8000113a04b0: R_AARCH64_CALL26	_cond_resched
	list_for_each_entry(dev, head, close_list) {
ffff8000113a04b4:	f94002b3 	ldr	x19, [x21]
/*
 * GAS converts the mysterious and undocumented BIC (immediate) alias to
 * an AND (immediate) instruction with the immediate inverted. We don't
 * have a constraint for this, so fall back to register.
 */
ATOMIC64_OPS(andnot, bic, )
ffff8000113a04b8:	d2800034 	mov	x20, #0x1                   	// #1
ffff8000113a04bc:	eb1302bf 	cmp	x21, x19
ffff8000113a04c0:	d101e273 	sub	x19, x19, #0x78
ffff8000113a04c4:	54000260 	b.eq	ffff8000113a0510 <__dev_close_many+0x90>
		netpoll_poll_disable(dev);
ffff8000113a04c8:	aa1303e0 	mov	x0, x19
ffff8000113a04cc:	94000000 	bl	0 <netpoll_poll_disable>
			ffff8000113a04cc: R_AARCH64_CALL26	netpoll_poll_disable
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a04d0:	9100e3a1 	add	x1, x29, #0x38
ffff8000113a04d4:	d2800140 	mov	x0, #0xa                   	// #10
	struct netdev_notifier_info info = {
ffff8000113a04d8:	f9001fb3 	str	x19, [x29,#56]
ffff8000113a04dc:	f90023bf 	str	xzr, [x29,#64]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a04e0:	97ffff06 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113a04e4:	91010262 	add	x2, x19, #0x40
ffff8000113a04e8:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a04ec:	c85f7c40 	ldxr	x0, [x2]
ffff8000113a04f0:	8a340000 	bic	x0, x0, x20
ffff8000113a04f4:	c8017c40 	stxr	w1, x0, [x2]
ffff8000113a04f8:	35ffffa1 	cbnz	w1, ffff8000113a04ec <__dev_close_many+0x6c>
		smp_mb__after_atomic(); /* Commit netif_running(). */
ffff8000113a04fc:	d5033bbf 	dmb	ish
	list_for_each_entry(dev, head, close_list) {
ffff8000113a0500:	f9403e73 	ldr	x19, [x19,#120]
ffff8000113a0504:	eb1302bf 	cmp	x21, x19
ffff8000113a0508:	d101e273 	sub	x19, x19, #0x78
ffff8000113a050c:	54fffde1 	b.ne	ffff8000113a04c8 <__dev_close_many+0x48>
	dev_deactivate_many(head);
ffff8000113a0510:	aa1503e0 	mov	x0, x21
ffff8000113a0514:	94000000 	bl	0 <dev_deactivate_many>
			ffff8000113a0514: R_AARCH64_CALL26	dev_deactivate_many
	list_for_each_entry(dev, head, close_list) {
ffff8000113a0518:	f94002b3 	ldr	x19, [x21]
ffff8000113a051c:	eb1302bf 	cmp	x21, x19
ffff8000113a0520:	d101e273 	sub	x19, x19, #0x78
ffff8000113a0524:	540001e0 	b.eq	ffff8000113a0560 <__dev_close_many+0xe0>
		if (ops->ndo_stop)
ffff8000113a0528:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113a052c:	f9400c01 	ldr	x1, [x0,#24]
ffff8000113a0530:	b4000061 	cbz	x1, ffff8000113a053c <__dev_close_many+0xbc>
			ops->ndo_stop(dev);
ffff8000113a0534:	aa1303e0 	mov	x0, x19
ffff8000113a0538:	d63f0020 	blr	x1
		dev->flags &= ~IFF_UP;
ffff8000113a053c:	b9422a61 	ldr	w1, [x19,#552]
		netpoll_poll_enable(dev);
ffff8000113a0540:	aa1303e0 	mov	x0, x19
		dev->flags &= ~IFF_UP;
ffff8000113a0544:	121f7821 	and	w1, w1, #0xfffffffe
ffff8000113a0548:	b9022a61 	str	w1, [x19,#552]
		netpoll_poll_enable(dev);
ffff8000113a054c:	94000000 	bl	0 <netpoll_poll_enable>
			ffff8000113a054c: R_AARCH64_CALL26	netpoll_poll_enable
	list_for_each_entry(dev, head, close_list) {
ffff8000113a0550:	f9403e73 	ldr	x19, [x19,#120]
ffff8000113a0554:	eb1302bf 	cmp	x21, x19
ffff8000113a0558:	d101e273 	sub	x19, x19, #0x78
ffff8000113a055c:	54fffe61 	b.ne	ffff8000113a0528 <__dev_close_many+0xa8>
}
ffff8000113a0560:	f94027a1 	ldr	x1, [x29,#72]
ffff8000113a0564:	f94002c0 	ldr	x0, [x22]
			ffff8000113a0564: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a0568:	eb00003f 	cmp	x1, x0
ffff8000113a056c:	54000261 	b.ne	ffff8000113a05b8 <__dev_close_many+0x138>
ffff8000113a0570:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0574:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a0578:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a057c:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a0580:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0580: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a0584:	91000063 	add	x3, x3, #0x0
			ffff8000113a0584: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a0588:	39402860 	ldrb	w0, [x3,#10]
ffff8000113a058c:	35fff920 	cbnz	w0, ffff8000113a04b0 <__dev_close_many+0x30>
ffff8000113a0590:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0590: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a0594:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0594: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a0598:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a059c:	91000000 	add	x0, x0, #0x0
			ffff8000113a059c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a05a0:	91000021 	add	x1, x1, #0x0
			ffff8000113a05a0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a05a4:	5280b9e2 	mov	w2, #0x5cf                 	// #1487
ffff8000113a05a8:	39002864 	strb	w4, [x3,#10]
ffff8000113a05ac:	94000000 	bl	0 <__warn_printk>
			ffff8000113a05ac: R_AARCH64_CALL26	__warn_printk
ffff8000113a05b0:	d4210000 	brk	#0x800
ffff8000113a05b4:	17ffffbf 	b	ffff8000113a04b0 <__dev_close_many+0x30>
}
ffff8000113a05b8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a05b8: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a05bc <register_netdevice_notifier>:
{
ffff8000113a05bc:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a05c0:	910003fd 	mov	x29, sp
ffff8000113a05c4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a05c8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a05cc:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a05d0:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a05d4:	aa0003f5 	mov	x21, x0
ffff8000113a05d8:	aa1e03e0 	mov	x0, x30
ffff8000113a05dc:	94000000 	bl	0 <_mcount>
			ffff8000113a05dc: R_AARCH64_CALL26	_mcount
	down_write(&pernet_ops_rwsem);
ffff8000113a05e0:	90000018 	adrp	x24, 0 <pernet_ops_rwsem>
			ffff8000113a05e0: R_AARCH64_ADR_PREL_PG_HI21	pernet_ops_rwsem
ffff8000113a05e4:	91000300 	add	x0, x24, #0x0
			ffff8000113a05e4: R_AARCH64_ADD_ABS_LO12_NC	pernet_ops_rwsem
ffff8000113a05e8:	94000000 	bl	0 <down_write>
			ffff8000113a05e8: R_AARCH64_CALL26	down_write
	rtnl_lock();
ffff8000113a05ec:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a05ec: R_AARCH64_CALL26	rtnl_lock
	err = raw_notifier_chain_register(&netdev_chain, nb);
ffff8000113a05f0:	90000019 	adrp	x25, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a05f0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a05f4:	91000320 	add	x0, x25, #0x0
			ffff8000113a05f4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a05f8:	910c2000 	add	x0, x0, #0x308
ffff8000113a05fc:	aa1503e1 	mov	x1, x21
ffff8000113a0600:	94000000 	bl	0 <raw_notifier_chain_register>
			ffff8000113a0600: R_AARCH64_CALL26	raw_notifier_chain_register
ffff8000113a0604:	2a0003f7 	mov	w23, w0
	if (err)
ffff8000113a0608:	350005c0 	cbnz	w0, ffff8000113a06c0 <register_netdevice_notifier+0x104>
	if (dev_boot_phase)
ffff8000113a060c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a060c: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a0610:	b9400000 	ldr	w0, [x0]
			ffff8000113a0610: R_AARCH64_LDST32_ABS_LO12_NC	.data
ffff8000113a0614:	35000560 	cbnz	w0, ffff8000113a06c0 <register_netdevice_notifier+0x104>
	for_each_net(net) {
ffff8000113a0618:	9000001a 	adrp	x26, 0 <net_namespace_list>
			ffff8000113a0618: R_AARCH64_ADR_PREL_PG_HI21	net_namespace_list
ffff8000113a061c:	f9400353 	ldr	x19, [x26]
			ffff8000113a061c: R_AARCH64_LDST64_ABS_LO12_NC	net_namespace_list
ffff8000113a0620:	91000354 	add	x20, x26, #0x0
			ffff8000113a0620: R_AARCH64_ADD_ABS_LO12_NC	net_namespace_list
ffff8000113a0624:	eb14027f 	cmp	x19, x20
ffff8000113a0628:	d1008273 	sub	x19, x19, #0x20
ffff8000113a062c:	540000c1 	b.ne	ffff8000113a0644 <register_netdevice_notifier+0x88>
ffff8000113a0630:	14000024 	b	ffff8000113a06c0 <register_netdevice_notifier+0x104>
ffff8000113a0634:	f9401273 	ldr	x19, [x19,#32]
ffff8000113a0638:	eb14027f 	cmp	x19, x20
ffff8000113a063c:	d1008273 	sub	x19, x19, #0x20
ffff8000113a0640:	54000400 	b.eq	ffff8000113a06c0 <register_netdevice_notifier+0x104>
		err = call_netdevice_register_net_notifiers(nb, net);
ffff8000113a0644:	aa1303e1 	mov	x1, x19
ffff8000113a0648:	aa1503e0 	mov	x0, x21
ffff8000113a064c:	97fff7e9 	bl	ffff80001139e5f0 <call_netdevice_register_net_notifiers>
ffff8000113a0650:	2a0003f6 	mov	w22, w0
		if (err)
ffff8000113a0654:	34ffff00 	cbz	w0, ffff8000113a0634 <register_netdevice_notifier+0x78>
	for_each_net_continue_reverse(net)
ffff8000113a0658:	f9401677 	ldr	x23, [x19,#40]
ffff8000113a065c:	9100035a 	add	x26, x26, #0x0
			ffff8000113a065c: R_AARCH64_ADD_ABS_LO12_NC	net_namespace_list
ffff8000113a0660:	eb1a02ff 	cmp	x23, x26
ffff8000113a0664:	d10082f7 	sub	x23, x23, #0x20
ffff8000113a0668:	54000220 	b.eq	ffff8000113a06ac <register_netdevice_notifier+0xf0>
	for_each_netdev(net, dev)
ffff8000113a066c:	aa1703f4 	mov	x20, x23
ffff8000113a0670:	f8490e93 	ldr	x19, [x20,#144]!
ffff8000113a0674:	eb13029f 	cmp	x20, x19
ffff8000113a0678:	d1012273 	sub	x19, x19, #0x48
ffff8000113a067c:	54000100 	b.eq	ffff8000113a069c <register_netdevice_notifier+0xe0>
		call_netdevice_unregister_notifiers(nb, dev);
ffff8000113a0680:	aa1303e1 	mov	x1, x19
ffff8000113a0684:	aa1503e0 	mov	x0, x21
ffff8000113a0688:	97fff7ae 	bl	ffff80001139e540 <call_netdevice_unregister_notifiers>
	for_each_netdev(net, dev)
ffff8000113a068c:	f9402673 	ldr	x19, [x19,#72]
ffff8000113a0690:	eb13029f 	cmp	x20, x19
ffff8000113a0694:	d1012273 	sub	x19, x19, #0x48
ffff8000113a0698:	54ffff41 	b.ne	ffff8000113a0680 <register_netdevice_notifier+0xc4>
	for_each_net_continue_reverse(net)
ffff8000113a069c:	f94016f7 	ldr	x23, [x23,#40]
ffff8000113a06a0:	eb1a02ff 	cmp	x23, x26
ffff8000113a06a4:	d10082f7 	sub	x23, x23, #0x20
ffff8000113a06a8:	54fffe21 	b.ne	ffff8000113a066c <register_netdevice_notifier+0xb0>
	raw_notifier_chain_unregister(&netdev_chain, nb);
ffff8000113a06ac:	91000320 	add	x0, x25, #0x0
			ffff8000113a06ac: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a06b0:	910c2000 	add	x0, x0, #0x308
ffff8000113a06b4:	aa1503e1 	mov	x1, x21
ffff8000113a06b8:	94000000 	bl	0 <raw_notifier_chain_unregister>
			ffff8000113a06b8: R_AARCH64_CALL26	raw_notifier_chain_unregister
		err = call_netdevice_register_net_notifiers(nb, net);
ffff8000113a06bc:	2a1603f7 	mov	w23, w22
	rtnl_unlock();
ffff8000113a06c0:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a06c0: R_AARCH64_CALL26	rtnl_unlock
	up_write(&pernet_ops_rwsem);
ffff8000113a06c4:	91000300 	add	x0, x24, #0x0
			ffff8000113a06c4: R_AARCH64_ADD_ABS_LO12_NC	pernet_ops_rwsem
ffff8000113a06c8:	94000000 	bl	0 <up_write>
			ffff8000113a06c8: R_AARCH64_CALL26	up_write
}
ffff8000113a06cc:	2a1703e0 	mov	w0, w23
ffff8000113a06d0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a06d4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a06d8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a06dc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a06e0:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a06e4:	d65f03c0 	ret

ffff8000113a06e8 <unregister_netdevice_notifier>:
{
ffff8000113a06e8:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a06ec:	910003fd 	mov	x29, sp
ffff8000113a06f0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a06f4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a06f8:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a06fc:	f90023f9 	str	x25, [sp,#64]
ffff8000113a0700:	aa0003f5 	mov	x21, x0
ffff8000113a0704:	aa1e03e0 	mov	x0, x30
ffff8000113a0708:	94000000 	bl	0 <_mcount>
			ffff8000113a0708: R_AARCH64_CALL26	_mcount
	down_write(&pernet_ops_rwsem);
ffff8000113a070c:	90000019 	adrp	x25, 0 <pernet_ops_rwsem>
			ffff8000113a070c: R_AARCH64_ADR_PREL_PG_HI21	pernet_ops_rwsem
ffff8000113a0710:	91000320 	add	x0, x25, #0x0
			ffff8000113a0710: R_AARCH64_ADD_ABS_LO12_NC	pernet_ops_rwsem
ffff8000113a0714:	94000000 	bl	0 <down_write>
			ffff8000113a0714: R_AARCH64_CALL26	down_write
	rtnl_lock();
ffff8000113a0718:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a0718: R_AARCH64_CALL26	rtnl_lock
	err = raw_notifier_chain_unregister(&netdev_chain, nb);
ffff8000113a071c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a071c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a0720:	91000000 	add	x0, x0, #0x0
			ffff8000113a0720: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a0724:	910c2000 	add	x0, x0, #0x308
ffff8000113a0728:	aa1503e1 	mov	x1, x21
ffff8000113a072c:	94000000 	bl	0 <raw_notifier_chain_unregister>
			ffff8000113a072c: R_AARCH64_CALL26	raw_notifier_chain_unregister
ffff8000113a0730:	2a0003f8 	mov	w24, w0
	if (err)
ffff8000113a0734:	350002e0 	cbnz	w0, ffff8000113a0790 <unregister_netdevice_notifier+0xa8>
	for_each_net(net)
ffff8000113a0738:	90000017 	adrp	x23, 0 <net_namespace_list>
			ffff8000113a0738: R_AARCH64_ADR_PREL_PG_HI21	net_namespace_list
ffff8000113a073c:	f94002f6 	ldr	x22, [x23]
			ffff8000113a073c: R_AARCH64_LDST64_ABS_LO12_NC	net_namespace_list
ffff8000113a0740:	910002f7 	add	x23, x23, #0x0
			ffff8000113a0740: R_AARCH64_ADD_ABS_LO12_NC	net_namespace_list
ffff8000113a0744:	eb1702df 	cmp	x22, x23
ffff8000113a0748:	d10082d6 	sub	x22, x22, #0x20
ffff8000113a074c:	54000220 	b.eq	ffff8000113a0790 <unregister_netdevice_notifier+0xa8>
	for_each_netdev(net, dev)
ffff8000113a0750:	aa1603f4 	mov	x20, x22
ffff8000113a0754:	f8490e93 	ldr	x19, [x20,#144]!
ffff8000113a0758:	eb13029f 	cmp	x20, x19
ffff8000113a075c:	d1012273 	sub	x19, x19, #0x48
ffff8000113a0760:	54000100 	b.eq	ffff8000113a0780 <unregister_netdevice_notifier+0x98>
		call_netdevice_unregister_notifiers(nb, dev);
ffff8000113a0764:	aa1303e1 	mov	x1, x19
ffff8000113a0768:	aa1503e0 	mov	x0, x21
ffff8000113a076c:	97fff775 	bl	ffff80001139e540 <call_netdevice_unregister_notifiers>
	for_each_netdev(net, dev)
ffff8000113a0770:	f9402673 	ldr	x19, [x19,#72]
ffff8000113a0774:	eb13029f 	cmp	x20, x19
ffff8000113a0778:	d1012273 	sub	x19, x19, #0x48
ffff8000113a077c:	54ffff41 	b.ne	ffff8000113a0764 <unregister_netdevice_notifier+0x7c>
	for_each_net(net)
ffff8000113a0780:	f94012d6 	ldr	x22, [x22,#32]
ffff8000113a0784:	eb1702df 	cmp	x22, x23
ffff8000113a0788:	d10082d6 	sub	x22, x22, #0x20
ffff8000113a078c:	54fffe21 	b.ne	ffff8000113a0750 <unregister_netdevice_notifier+0x68>
	rtnl_unlock();
ffff8000113a0790:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a0790: R_AARCH64_CALL26	rtnl_unlock
	up_write(&pernet_ops_rwsem);
ffff8000113a0794:	91000320 	add	x0, x25, #0x0
			ffff8000113a0794: R_AARCH64_ADD_ABS_LO12_NC	pernet_ops_rwsem
ffff8000113a0798:	94000000 	bl	0 <up_write>
			ffff8000113a0798: R_AARCH64_CALL26	up_write
}
ffff8000113a079c:	2a1803e0 	mov	w0, w24
ffff8000113a07a0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a07a4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a07a8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a07ac:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a07b0:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a07b4:	d65f03c0 	ret

ffff8000113a07b8 <__register_netdevice_notifier_net>:
{
ffff8000113a07b8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a07bc:	910003fd 	mov	x29, sp
ffff8000113a07c0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a07c4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a07c8:	aa0003f4 	mov	x20, x0
ffff8000113a07cc:	aa1e03e0 	mov	x0, x30
ffff8000113a07d0:	aa0103f3 	mov	x19, x1
ffff8000113a07d4:	53001c56 	uxtb	w22, w2
	err = raw_notifier_chain_register(&net->netdev_chain, nb);
ffff8000113a07d8:	9104e295 	add	x21, x20, #0x138
{
ffff8000113a07dc:	94000000 	bl	0 <_mcount>
			ffff8000113a07dc: R_AARCH64_CALL26	_mcount
	err = raw_notifier_chain_register(&net->netdev_chain, nb);
ffff8000113a07e0:	aa1503e0 	mov	x0, x21
ffff8000113a07e4:	aa1303e1 	mov	x1, x19
ffff8000113a07e8:	94000000 	bl	0 <raw_notifier_chain_register>
			ffff8000113a07e8: R_AARCH64_CALL26	raw_notifier_chain_register
	if (err)
ffff8000113a07ec:	350000a0 	cbnz	w0, ffff8000113a0800 <__register_netdevice_notifier_net+0x48>
	if (dev_boot_phase)
ffff8000113a07f0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a07f0: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a07f4:	b9400000 	ldr	w0, [x0]
			ffff8000113a07f4: R_AARCH64_LDST32_ABS_LO12_NC	.data
ffff8000113a07f8:	340000c0 	cbz	w0, ffff8000113a0810 <__register_netdevice_notifier_net+0x58>
		return 0;
ffff8000113a07fc:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a0800:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0804:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a0808:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a080c:	d65f03c0 	ret
	err = call_netdevice_register_net_notifiers(nb, net);
ffff8000113a0810:	aa1403e1 	mov	x1, x20
ffff8000113a0814:	aa1303e0 	mov	x0, x19
ffff8000113a0818:	97fff776 	bl	ffff80001139e5f0 <call_netdevice_register_net_notifiers>
ffff8000113a081c:	2a0003f4 	mov	w20, w0
	if (err && !ignore_call_fail)
ffff8000113a0820:	34fffee0 	cbz	w0, ffff8000113a07fc <__register_netdevice_notifier_net+0x44>
ffff8000113a0824:	710006df 	cmp	w22, #0x1
ffff8000113a0828:	54fffea0 	b.eq	ffff8000113a07fc <__register_netdevice_notifier_net+0x44>
	raw_notifier_chain_unregister(&net->netdev_chain, nb);
ffff8000113a082c:	aa1503e0 	mov	x0, x21
ffff8000113a0830:	aa1303e1 	mov	x1, x19
ffff8000113a0834:	94000000 	bl	0 <raw_notifier_chain_unregister>
			ffff8000113a0834: R_AARCH64_CALL26	raw_notifier_chain_unregister
	return err;
ffff8000113a0838:	2a1403e0 	mov	w0, w20
ffff8000113a083c:	17fffff1 	b	ffff8000113a0800 <__register_netdevice_notifier_net+0x48>

ffff8000113a0840 <register_netdevice_notifier_net>:
{
ffff8000113a0840:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a0844:	910003fd 	mov	x29, sp
ffff8000113a0848:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a084c:	aa0003f3 	mov	x19, x0
ffff8000113a0850:	aa1e03e0 	mov	x0, x30
ffff8000113a0854:	f90017a1 	str	x1, [x29,#40]
ffff8000113a0858:	94000000 	bl	0 <_mcount>
			ffff8000113a0858: R_AARCH64_CALL26	_mcount
	rtnl_lock();
ffff8000113a085c:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a085c: R_AARCH64_CALL26	rtnl_lock
	err = __register_netdevice_notifier_net(net, nb, false);
ffff8000113a0860:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a0864:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a0868:	aa1303e0 	mov	x0, x19
ffff8000113a086c:	97ffffd3 	bl	ffff8000113a07b8 <__register_netdevice_notifier_net>
	rtnl_unlock();
ffff8000113a0870:	f90017a0 	str	x0, [x29,#40]
ffff8000113a0874:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a0874: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a0878:	f94017a0 	ldr	x0, [x29,#40]
ffff8000113a087c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a0880:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a0884:	d65f03c0 	ret

ffff8000113a0888 <get_rps_cpu>:
{
ffff8000113a0888:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a088c:	910003fd 	mov	x29, sp
ffff8000113a0890:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0894:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a0898:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a089c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a08a0:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a08a4:	aa0003f5 	mov	x21, x0
ffff8000113a08a8:	aa1e03e0 	mov	x0, x30
ffff8000113a08ac:	aa0103f3 	mov	x19, x1
ffff8000113a08b0:	aa0203f7 	mov	x23, x2
ffff8000113a08b4:	94000000 	bl	0 <_mcount>
			ffff8000113a08b4: R_AARCH64_CALL26	_mcount
static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb,
ffff8000113a08b8:	7940fa60 	ldrh	w0, [x19,#124]
	struct netdev_rx_queue *rxqueue = dev->_rx;
ffff8000113a08bc:	f94192a4 	ldr	x4, [x21,#800]
	if (skb_rx_queue_recorded(skb)) {
ffff8000113a08c0:	34000100 	cbz	w0, ffff8000113a08e0 <get_rps_cpu+0x58>
	skb->queue_mapping = rx_queue + 1;
}

static inline u16 skb_get_rx_queue(const struct sk_buff *skb)
{
	return skb->queue_mapping - 1;
ffff8000113a08c4:	51000400 	sub	w0, w0, #0x1
		if (unlikely(index >= dev->real_num_rx_queues)) {
ffff8000113a08c8:	b9432ea3 	ldr	w3, [x21,#812]
ffff8000113a08cc:	53003c02 	uxth	w2, w0
ffff8000113a08d0:	6b03005f 	cmp	w2, w3
ffff8000113a08d4:	540009c2 	b.cs	ffff8000113a0a0c <get_rps_cpu+0x184>
		rxqueue += index;
ffff8000113a08d8:	d3783c42 	ubfiz	x2, x2, #8, #16
ffff8000113a08dc:	8b020084 	add	x4, x4, x2
	__READ_ONCE_SIZE;
ffff8000113a08e0:	f9400496 	ldr	x22, [x4,#8]
ffff8000113a08e4:	f9400094 	ldr	x20, [x4]
	if (!flow_table && !map)
ffff8000113a08e8:	b4000bd4 	cbz	x20, ffff8000113a0a60 <get_rps_cpu+0x1d8>
	skb->network_header = skb->data - skb->head;
ffff8000113a08ec:	f9406662 	ldr	x2, [x19,#200]
ffff8000113a08f0:	f9406261 	ldr	x1, [x19,#192]
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a08f4:	39420660 	ldrb	w0, [x19,#129]
	skb->network_header = skb->data - skb->head;
ffff8000113a08f8:	cb010041 	sub	x1, x2, x1
ffff8000113a08fc:	79016a61 	strh	w1, [x19,#180]
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a0900:	12000400 	and	w0, w0, #0x3
ffff8000113a0904:	34000640 	cbz	w0, ffff8000113a09cc <get_rps_cpu+0x144>
	return skb->hash;
ffff8000113a0908:	b9409663 	ldr	w3, [x19,#148]
ffff8000113a090c:	2a0303f8 	mov	w24, w3
	if (!hash)
ffff8000113a0910:	34000983 	cbz	w3, ffff8000113a0a40 <get_rps_cpu+0x1b8>
ffff8000113a0914:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0914: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a0918:	91000000 	add	x0, x0, #0x0
			ffff8000113a0918: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a091c:	f9441001 	ldr	x1, [x0,#2080]
	if (flow_table && sock_flow_table) {
ffff8000113a0920:	b40002f6 	cbz	x22, ffff8000113a097c <get_rps_cpu+0xf4>
ffff8000113a0924:	b40002c1 	cbz	x1, ffff8000113a097c <get_rps_cpu+0xf4>
		ident = sock_flow_table->ents[hash & sock_flow_table->mask];
ffff8000113a0928:	b9400022 	ldr	w2, [x1]
		if ((ident ^ hash) & ~rps_cpu_mask)
ffff8000113a092c:	b9482800 	ldr	w0, [x0,#2088]
		ident = sock_flow_table->ents[hash & sock_flow_table->mask];
ffff8000113a0930:	0a020062 	and	w2, w3, w2
ffff8000113a0934:	91004042 	add	x2, x2, #0x10
ffff8000113a0938:	b8627821 	ldr	w1, [x1,x2,lsl #2]
		if ((ident ^ hash) & ~rps_cpu_mask)
ffff8000113a093c:	4a030022 	eor	w2, w1, w3
ffff8000113a0940:	0a200042 	bic	w2, w2, w0
ffff8000113a0944:	350001c2 	cbnz	w2, ffff8000113a097c <get_rps_cpu+0xf4>
		rflow = &flow_table->flows[hash & flow_table->mask];
ffff8000113a0948:	b94002c2 	ldr	w2, [x22]
		next_cpu = ident & rps_cpu_mask;
ffff8000113a094c:	0a000039 	and	w25, w1, w0
		rflow = &flow_table->flows[hash & flow_table->mask];
ffff8000113a0950:	0a020060 	and	w0, w3, w2
ffff8000113a0954:	91000800 	add	x0, x0, #0x2
ffff8000113a0958:	8b000ed6 	add	x22, x22, x0, lsl #3
		tcpu = rflow->cpu;
ffff8000113a095c:	794012c0 	ldrh	w0, [x22,#8]
ffff8000113a0960:	9000001a 	adrp	x26, 0 <nr_cpu_ids>
			ffff8000113a0960: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
		if (unlikely(tcpu != next_cpu) &&
ffff8000113a0964:	6b00033f 	cmp	w25, w0
		rflow = &flow_table->flows[hash & flow_table->mask];
ffff8000113a0968:	910022d6 	add	x22, x22, #0x8
		if (unlikely(tcpu != next_cpu) &&
ffff8000113a096c:	54000801 	b.ne	ffff8000113a0a6c <get_rps_cpu+0x1e4>
		if (tcpu < nr_cpu_ids && cpu_online(tcpu)) {
ffff8000113a0970:	b9400341 	ldr	w1, [x26]
			ffff8000113a0970: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
ffff8000113a0974:	6b01001f 	cmp	w0, w1
ffff8000113a0978:	54000303 	b.cc	ffff8000113a09d8 <get_rps_cpu+0x150>
	if (map) {
ffff8000113a097c:	b4000634 	cbz	x20, ffff8000113a0a40 <get_rps_cpu+0x1b8>
		tcpu = map->cpus[reciprocal_scale(hash, map->len)];
ffff8000113a0980:	b9400280 	ldr	w0, [x20]
ffff8000113a0984:	90000001 	adrp	x1, 0 <__cpu_online_mask>
			ffff8000113a0984: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
 *
 * Return: a result based on @val in interval [0, @ep_ro).
 */
static inline u32 reciprocal_scale(u32 val, u32 ep_ro)
{
	return (u32)(((u64) val * ep_ro) >> 32);
ffff8000113a0988:	9bb87c18 	umull	x24, w0, w24
ffff8000113a098c:	d360ff18 	lsr	x24, x24, #32
ffff8000113a0990:	8b180694 	add	x20, x20, x24, lsl #1
ffff8000113a0994:	79403280 	ldrh	w0, [x20,#24]
ffff8000113a0998:	91000021 	add	x1, x1, #0x0
			ffff8000113a0998: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a099c:	13067c02 	asr	w2, w0, #6
ffff8000113a09a0:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113a09a4:	f8616841 	ldr	x1, [x2,x1]
ffff8000113a09a8:	9ac02421 	lsr	x1, x1, x0
		if (cpu_online(tcpu)) {
ffff8000113a09ac:	360004a1 	tbz	w1, #0, ffff8000113a0a40 <get_rps_cpu+0x1b8>
}
ffff8000113a09b0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a09b4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a09b8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a09bc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a09c0:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a09c4:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a09c8:	d65f03c0 	ret
		__skb_get_hash(skb);
ffff8000113a09cc:	aa1303e0 	mov	x0, x19
ffff8000113a09d0:	94000000 	bl	0 <__skb_get_hash>
			ffff8000113a09d0: R_AARCH64_CALL26	__skb_get_hash
ffff8000113a09d4:	17ffffcd 	b	ffff8000113a0908 <get_rps_cpu+0x80>
ffff8000113a09d8:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a09d8: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a09dc:	12001401 	and	w1, w0, #0x3f
ffff8000113a09e0:	1100fc03 	add	w3, w0, #0x3f
ffff8000113a09e4:	6b1f001f 	cmp	w0, wzr
ffff8000113a09e8:	1a80b063 	csel	w3, w3, w0, lt
ffff8000113a09ec:	13067c63 	asr	w3, w3, #6
ffff8000113a09f0:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a09f4:	91000042 	add	x2, x2, #0x0
			ffff8000113a09f4: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a09f8:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a09fc:	9ac12441 	lsr	x1, x2, x1
		if (tcpu < nr_cpu_ids && cpu_online(tcpu)) {
ffff8000113a0a00:	3607fbe1 	tbz	w1, #0, ffff8000113a097c <get_rps_cpu+0xf4>
			*rflowp = rflow;
ffff8000113a0a04:	f90002f6 	str	x22, [x23]
			goto done;
ffff8000113a0a08:	17ffffea 	b	ffff8000113a09b0 <get_rps_cpu+0x128>
			WARN_ONCE(dev->real_num_rx_queues > 1,
ffff8000113a0a0c:	7100047f 	cmp	w3, #0x1
ffff8000113a0a10:	54000189 	b.ls	ffff8000113a0a40 <get_rps_cpu+0x1b8>
ffff8000113a0a14:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0a14: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a0a18:	91000084 	add	x4, x4, #0x0
			ffff8000113a0a18: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a0a1c:	39402c80 	ldrb	w0, [x4,#11]
ffff8000113a0a20:	35000100 	cbnz	w0, ffff8000113a0a40 <get_rps_cpu+0x1b8>
ffff8000113a0a24:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0a24: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xe8
ffff8000113a0a28:	52800025 	mov	w5, #0x1                   	// #1
ffff8000113a0a2c:	91000000 	add	x0, x0, #0x0
			ffff8000113a0a2c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xe8
ffff8000113a0a30:	aa1503e1 	mov	x1, x21
ffff8000113a0a34:	39002c85 	strb	w5, [x4,#11]
ffff8000113a0a38:	94000000 	bl	0 <__warn_printk>
			ffff8000113a0a38: R_AARCH64_CALL26	__warn_printk
ffff8000113a0a3c:	d4210000 	brk	#0x800
	int cpu = -1;
ffff8000113a0a40:	12800000 	mov	w0, #0xffffffff            	// #-1
}
ffff8000113a0a44:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0a48:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a0a4c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a0a50:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a0a54:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a0a58:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a0a5c:	d65f03c0 	ret
	if (!flow_table && !map)
ffff8000113a0a60:	b5fff476 	cbnz	x22, ffff8000113a08ec <get_rps_cpu+0x64>
	int cpu = -1;
ffff8000113a0a64:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113a0a68:	17fffff7 	b	ffff8000113a0a44 <get_rps_cpu+0x1bc>
		    (tcpu >= nr_cpu_ids || !cpu_online(tcpu) ||
ffff8000113a0a6c:	b9400345 	ldr	w5, [x26]
			ffff8000113a0a6c: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
		if (unlikely(tcpu != next_cpu) &&
ffff8000113a0a70:	6b05001f 	cmp	w0, w5
ffff8000113a0a74:	54000262 	b.cs	ffff8000113a0ac0 <get_rps_cpu+0x238>
ffff8000113a0a78:	13067c04 	asr	w4, w0, #6
ffff8000113a0a7c:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a0a7c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a0a80:	91000041 	add	x1, x2, #0x0
			ffff8000113a0a80: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a0a84:	937d7c84 	sbfiz	x4, x4, #3, #32
ffff8000113a0a88:	f8616884 	ldr	x4, [x4,x1]
ffff8000113a0a8c:	12001401 	and	w1, w0, #0x3f
ffff8000113a0a90:	9ac12484 	lsr	x4, x4, x1
		    (tcpu >= nr_cpu_ids || !cpu_online(tcpu) ||
ffff8000113a0a94:	36000164 	tbz	w4, #0, ffff8000113a0ac0 <get_rps_cpu+0x238>
		     ((int)(per_cpu(softnet_data, tcpu).input_queue_head -
ffff8000113a0a98:	90000004 	adrp	x4, 0 <__per_cpu_offset>
			ffff8000113a0a98: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a0a9c:	91000084 	add	x4, x4, #0x0
			ffff8000113a0a9c: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a0aa0:	f8605886 	ldr	x6, [x4,w0,uxtw #3]
ffff8000113a0aa4:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0aa4: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a0aa8:	91000084 	add	x4, x4, #0x0
			ffff8000113a0aa8: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a0aac:	8b060084 	add	x4, x4, x6
ffff8000113a0ab0:	b9408086 	ldr	w6, [x4,#128]
ffff8000113a0ab4:	b94006c4 	ldr	w4, [x22,#4]
ffff8000113a0ab8:	4b0400c4 	sub	w4, w6, w4
		    (tcpu >= nr_cpu_ids || !cpu_online(tcpu) ||
ffff8000113a0abc:	37fff924 	tbnz	w4, #31, ffff8000113a09e0 <get_rps_cpu+0x158>
	if (next_cpu < nr_cpu_ids) {
ffff8000113a0ac0:	12003f3c 	and	w28, w25, #0xffff
			rflow = set_rps_cpu(dev, skb, rflow, next_cpu);
ffff8000113a0ac4:	53003f24 	uxth	w4, w25
	if (next_cpu < nr_cpu_ids) {
ffff8000113a0ac8:	6b1c00bf 	cmp	w5, w28
			rflow = set_rps_cpu(dev, skb, rflow, next_cpu);
ffff8000113a0acc:	b9006fa4 	str	w4, [x29,#108]
	if (next_cpu < nr_cpu_ids) {
ffff8000113a0ad0:	54000689 	b.ls	ffff8000113a0ba0 <get_rps_cpu+0x318>
set_rps_cpu(struct net_device *dev, struct sk_buff *skb,
ffff8000113a0ad4:	7940fa60 	ldrh	w0, [x19,#124]
		if (!skb_rx_queue_recorded(skb) || !dev->rx_cpu_rmap ||
ffff8000113a0ad8:	34000540 	cbz	w0, ffff8000113a0b80 <get_rps_cpu+0x2f8>
ffff8000113a0adc:	f941c6a1 	ldr	x1, [x21,#904]
ffff8000113a0ae0:	b4000501 	cbz	x1, ffff8000113a0b80 <get_rps_cpu+0x2f8>
		    !(dev->features & NETIF_F_NTUPLE))
ffff8000113a0ae4:	f94066a2 	ldr	x2, [x21,#200]
		if (!skb_rx_queue_recorded(skb) || !dev->rx_cpu_rmap ||
ffff8000113a0ae8:	b63004c2 	tbz	x2, #38, ffff8000113a0b80 <get_rps_cpu+0x2f8>
extern int cpu_rmap_update(struct cpu_rmap *rmap, u16 index,
			   const struct cpumask *affinity);

static inline u16 cpu_rmap_lookup_index(struct cpu_rmap *rmap, unsigned int cpu)
{
	return rmap->near[cpu].index;
ffff8000113a0aec:	8b3c2821 	add	x1, x1, w28, uxth #2
ffff8000113a0af0:	79402022 	ldrh	w2, [x1,#16]
	return skb->queue_mapping - 1;
ffff8000113a0af4:	51000400 	sub	w0, w0, #0x1
		if (rxq_index == skb_get_rx_queue(skb))
ffff8000113a0af8:	6b20205f 	cmp	w2, w0, uxth
ffff8000113a0afc:	54000420 	b.eq	ffff8000113a0b80 <get_rps_cpu+0x2f8>
		rxqueue = dev->_rx + rxq_index;
ffff8000113a0b00:	f94192a1 	ldr	x1, [x21,#800]
ffff8000113a0b04:	d3783c40 	ubfiz	x0, x2, #8, #16
ffff8000113a0b08:	8b000020 	add	x0, x1, x0
ffff8000113a0b0c:	f940041b 	ldr	x27, [x0,#8]
		if (!flow_table)
ffff8000113a0b10:	b400039b 	cbz	x27, ffff8000113a0b80 <get_rps_cpu+0x2f8>
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a0b14:	39420660 	ldrb	w0, [x19,#129]
ffff8000113a0b18:	12000400 	and	w0, w0, #0x3
ffff8000113a0b1c:	350000c0 	cbnz	w0, ffff8000113a0b34 <get_rps_cpu+0x2ac>
		__skb_get_hash(skb);
ffff8000113a0b20:	aa1303e0 	mov	x0, x19
ffff8000113a0b24:	f90033a2 	str	x2, [x29,#96]
ffff8000113a0b28:	94000000 	bl	0 <__skb_get_hash>
			ffff8000113a0b28: R_AARCH64_CALL26	__skb_get_hash
ffff8000113a0b2c:	b9409663 	ldr	w3, [x19,#148]
ffff8000113a0b30:	f94033a2 	ldr	x2, [x29,#96]
		rc = dev->netdev_ops->ndo_rx_flow_steer(dev, skb,
ffff8000113a0b34:	f940faa0 	ldr	x0, [x21,#496]
		flow_id = skb_get_hash(skb) & flow_table->mask;
ffff8000113a0b38:	b9400365 	ldr	w5, [x27]
		rc = dev->netdev_ops->ndo_rx_flow_steer(dev, skb,
ffff8000113a0b3c:	f940b806 	ldr	x6, [x0,#368]
		flow_id = skb_get_hash(skb) & flow_table->mask;
ffff8000113a0b40:	0a0300a5 	and	w5, w5, w3
		rc = dev->netdev_ops->ndo_rx_flow_steer(dev, skb,
ffff8000113a0b44:	2a0503e3 	mov	w3, w5
ffff8000113a0b48:	f90033a5 	str	x5, [x29,#96]
ffff8000113a0b4c:	aa1503e0 	mov	x0, x21
ffff8000113a0b50:	aa1303e1 	mov	x1, x19
ffff8000113a0b54:	d63f00c0 	blr	x6
		if (rc < 0)
ffff8000113a0b58:	f94033a5 	ldr	x5, [x29,#96]
ffff8000113a0b5c:	37f80120 	tbnz	w0, #31, ffff8000113a0b80 <get_rps_cpu+0x2f8>
		rflow = &flow_table->flows[flow_id];
ffff8000113a0b60:	8b254f64 	add	x4, x27, w5, uxtw #3
		rflow->filter = rc;
ffff8000113a0b64:	53003c00 	uxth	w0, w0
		rflow = &flow_table->flows[flow_id];
ffff8000113a0b68:	91006084 	add	x4, x4, #0x18
		rflow->filter = rc;
ffff8000113a0b6c:	79000480 	strh	w0, [x4,#2]
		if (old_rflow->filter == rflow->filter)
ffff8000113a0b70:	794006c1 	ldrh	w1, [x22,#2]
ffff8000113a0b74:	6b00003f 	cmp	w1, w0
ffff8000113a0b78:	540001c0 	b.eq	ffff8000113a0bb0 <get_rps_cpu+0x328>
		rflow = &flow_table->flows[flow_id];
ffff8000113a0b7c:	aa0403f6 	mov	x22, x4
			per_cpu(softnet_data, next_cpu).input_queue_head;
ffff8000113a0b80:	90000000 	adrp	x0, 0 <__per_cpu_offset>
			ffff8000113a0b80: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a0b84:	91000000 	add	x0, x0, #0x0
			ffff8000113a0b84: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a0b88:	f87cd801 	ldr	x1, [x0,w28,sxtw #3]
ffff8000113a0b8c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0b8c: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a0b90:	91000000 	add	x0, x0, #0x0
			ffff8000113a0b90: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a0b94:	8b010000 	add	x0, x0, x1
ffff8000113a0b98:	b9408000 	ldr	w0, [x0,#128]
		rflow->last_qtail =
ffff8000113a0b9c:	b90006c0 	str	w0, [x22,#4]
	rflow->cpu = next_cpu;
ffff8000113a0ba0:	7940dba2 	ldrh	w2, [x29,#108]
ffff8000113a0ba4:	2a1903e0 	mov	w0, w25
ffff8000113a0ba8:	790002c2 	strh	w2, [x22]
ffff8000113a0bac:	17ffff71 	b	ffff8000113a0970 <get_rps_cpu+0xe8>
			old_rflow->filter = RPS_NO_FILTER;
ffff8000113a0bb0:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113a0bb4:	790006c0 	strh	w0, [x22,#2]
		rflow = &flow_table->flows[flow_id];
ffff8000113a0bb8:	aa0403f6 	mov	x22, x4
ffff8000113a0bbc:	17fffff1 	b	ffff8000113a0b80 <get_rps_cpu+0x2f8>

ffff8000113a0bc0 <__get_xps_queue_idx>:
{
ffff8000113a0bc0:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a0bc4:	910003fd 	mov	x29, sp
ffff8000113a0bc8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0bcc:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0bd0:	aa0003f4 	mov	x20, x0
ffff8000113a0bd4:	aa1e03e0 	mov	x0, x30
ffff8000113a0bd8:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a0bdc:	f9001ba3 	str	x3, [x29,#48]
ffff8000113a0be0:	aa0103f5 	mov	x21, x1
ffff8000113a0be4:	94000000 	bl	0 <_mcount>
			ffff8000113a0be4: R_AARCH64_CALL26	_mcount
	if (dev->num_tc) {
ffff8000113a0be8:	79d09280 	ldrsh	w0, [x20,#2120]
ffff8000113a0bec:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a0bf0:	f9401ba3 	ldr	x3, [x29,#48]
ffff8000113a0bf4:	340000e0 	cbz	w0, ffff8000113a0c10 <__get_xps_queue_idx+0x50>
	return dev->prio_tc_map[prio & TC_BITMASK];
ffff8000113a0bf8:	b9408ea1 	ldr	w1, [x21,#140]
		tci *= dev->num_tc;
ffff8000113a0bfc:	1b007c63 	mul	w3, w3, w0
ffff8000113a0c00:	92400c20 	and	x0, x1, #0xf
ffff8000113a0c04:	8b000280 	add	x0, x20, x0
		tci += netdev_get_prio_tc_map(dev, skb->priority);
ffff8000113a0c08:	39622801 	ldrb	w1, [x0,#2186]
ffff8000113a0c0c:	0b010063 	add	w3, w3, w1
	map = rcu_dereference(dev_maps->attr_map[tci]);
ffff8000113a0c10:	2a0303e3 	mov	w3, w3
ffff8000113a0c14:	91000863 	add	x3, x3, #0x2
ffff8000113a0c18:	d37df063 	lsl	x3, x3, #3
ffff8000113a0c1c:	f8636853 	ldr	x19, [x2,x3]
	if (map) {
ffff8000113a0c20:	b40002f3 	cbz	x19, ffff8000113a0c7c <__get_xps_queue_idx+0xbc>
		if (map->len == 1)
ffff8000113a0c24:	b9400260 	ldr	w0, [x19]
ffff8000113a0c28:	7100041f 	cmp	w0, #0x1
ffff8000113a0c2c:	54000100 	b.eq	ffff8000113a0c4c <__get_xps_queue_idx+0x8c>
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a0c30:	394206a1 	ldrb	w1, [x21,#129]
ffff8000113a0c34:	12000421 	and	w1, w1, #0x3
ffff8000113a0c38:	340001a1 	cbz	w1, ffff8000113a0c6c <__get_xps_queue_idx+0xac>
	return skb->hash;
ffff8000113a0c3c:	b94096a1 	ldr	w1, [x21,#148]
ffff8000113a0c40:	9ba17c00 	umull	x0, w0, w1
			queue_index = map->queues[reciprocal_scale(
ffff8000113a0c44:	d360fc00 	lsr	x0, x0, #32
ffff8000113a0c48:	8b000673 	add	x19, x19, x0, lsl #1
ffff8000113a0c4c:	79403260 	ldrh	w0, [x19,#24]
		if (unlikely(queue_index >= dev->real_num_tx_queues))
ffff8000113a0c50:	b943ce81 	ldr	w1, [x20,#972]
			queue_index = -1;
ffff8000113a0c54:	6b01001f 	cmp	w0, w1
ffff8000113a0c58:	5a9f3000 	csinv	w0, w0, wzr, cc
}
ffff8000113a0c5c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0c60:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a0c64:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a0c68:	d65f03c0 	ret
		__skb_get_hash(skb);
ffff8000113a0c6c:	aa1503e0 	mov	x0, x21
ffff8000113a0c70:	94000000 	bl	0 <__skb_get_hash>
			ffff8000113a0c70: R_AARCH64_CALL26	__skb_get_hash
ffff8000113a0c74:	b9400260 	ldr	w0, [x19]
ffff8000113a0c78:	17fffff1 	b	ffff8000113a0c3c <__get_xps_queue_idx+0x7c>
	int queue_index = -1;
ffff8000113a0c7c:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113a0c80:	17fffff7 	b	ffff8000113a0c5c <__get_xps_queue_idx+0x9c>

ffff8000113a0c84 <netif_set_real_num_rx_queues>:
{
ffff8000113a0c84:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a0c88:	910003fd 	mov	x29, sp
ffff8000113a0c8c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0c90:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0c94:	aa0003f3 	mov	x19, x0
ffff8000113a0c98:	2a0103f4 	mov	w20, w1
ffff8000113a0c9c:	aa1e03e0 	mov	x0, x30
ffff8000113a0ca0:	94000000 	bl	0 <_mcount>
			ffff8000113a0ca0: R_AARCH64_CALL26	_mcount
	if (rxq < 1 || rxq > dev->num_rx_queues)
ffff8000113a0ca4:	340002b4 	cbz	w20, ffff8000113a0cf8 <netif_set_real_num_rx_queues+0x74>
ffff8000113a0ca8:	b9432a60 	ldr	w0, [x19,#808]
ffff8000113a0cac:	6b00029f 	cmp	w20, w0
ffff8000113a0cb0:	54000248 	b.hi	ffff8000113a0cf8 <netif_set_real_num_rx_queues+0x74>
	if (dev->reg_state == NETREG_REGISTERED) {
ffff8000113a0cb4:	39536275 	ldrb	w21, [x19,#1240]
ffff8000113a0cb8:	710006bf 	cmp	w21, #0x1
ffff8000113a0cbc:	540000e0 	b.eq	ffff8000113a0cd8 <netif_set_real_num_rx_queues+0x54>
	dev->real_num_rx_queues = rxq;
ffff8000113a0cc0:	b9032e74 	str	w20, [x19,#812]
	return 0;
ffff8000113a0cc4:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a0cc8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0ccc:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a0cd0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a0cd4:	d65f03c0 	ret
		ASSERT_RTNL();
ffff8000113a0cd8:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a0cd8: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a0cdc:	34000120 	cbz	w0, ffff8000113a0d00 <netif_set_real_num_rx_queues+0x7c>
		rc = net_rx_queue_update_kobjects(dev, dev->real_num_rx_queues,
ffff8000113a0ce0:	b9432e61 	ldr	w1, [x19,#812]
ffff8000113a0ce4:	aa1303e0 	mov	x0, x19
ffff8000113a0ce8:	2a1403e2 	mov	w2, w20
ffff8000113a0cec:	94000000 	bl	0 <net_rx_queue_update_kobjects>
			ffff8000113a0cec: R_AARCH64_CALL26	net_rx_queue_update_kobjects
		if (rc)
ffff8000113a0cf0:	34fffe80 	cbz	w0, ffff8000113a0cc0 <netif_set_real_num_rx_queues+0x3c>
ffff8000113a0cf4:	17fffff5 	b	ffff8000113a0cc8 <netif_set_real_num_rx_queues+0x44>
		return -EINVAL;
ffff8000113a0cf8:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a0cfc:	17fffff3 	b	ffff8000113a0cc8 <netif_set_real_num_rx_queues+0x44>
		ASSERT_RTNL();
ffff8000113a0d00:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0d00: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a0d04:	91000063 	add	x3, x3, #0x0
			ffff8000113a0d04: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a0d08:	39403060 	ldrb	w0, [x3,#12]
ffff8000113a0d0c:	35fffea0 	cbnz	w0, ffff8000113a0ce0 <netif_set_real_num_rx_queues+0x5c>
ffff8000113a0d10:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0d10: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a0d14:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0d14: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a0d18:	91000000 	add	x0, x0, #0x0
			ffff8000113a0d18: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a0d1c:	91000021 	add	x1, x1, #0x0
			ffff8000113a0d1c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a0d20:	52816c22 	mov	w2, #0xb61                 	// #2913
ffff8000113a0d24:	39003075 	strb	w21, [x3,#12]
ffff8000113a0d28:	94000000 	bl	0 <__warn_printk>
			ffff8000113a0d28: R_AARCH64_CALL26	__warn_printk
ffff8000113a0d2c:	d4210000 	brk	#0x800
ffff8000113a0d30:	17ffffec 	b	ffff8000113a0ce0 <netif_set_real_num_rx_queues+0x5c>

ffff8000113a0d34 <pskb_may_pull>:
{
ffff8000113a0d34:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff8000113a0d38:	910003fd 	mov	x29, sp
static inline bool pskb_may_pull(struct sk_buff *skb, unsigned int len)
ffff8000113a0d3c:	b9407003 	ldr	w3, [x0,#112]
	return skb->len - skb->data_len;
ffff8000113a0d40:	b9407404 	ldr	w4, [x0,#116]
		return true;
ffff8000113a0d44:	52800022 	mov	w2, #0x1                   	// #1
	return skb->len - skb->data_len;
ffff8000113a0d48:	4b040064 	sub	w4, w3, w4
	if (likely(len <= skb_headlen(skb)))
ffff8000113a0d4c:	6b04003f 	cmp	w1, w4
ffff8000113a0d50:	54000088 	b.hi	ffff8000113a0d60 <pskb_may_pull+0x2c>
}
ffff8000113a0d54:	2a0203e0 	mov	w0, w2
ffff8000113a0d58:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff8000113a0d5c:	d65f03c0 	ret
	if (unlikely(len > skb->len))
ffff8000113a0d60:	6b01007f 	cmp	w3, w1
ffff8000113a0d64:	540000c3 	b.cc	ffff8000113a0d7c <pskb_may_pull+0x48>
	return __pskb_pull_tail(skb, len - skb_headlen(skb)) != NULL;
ffff8000113a0d68:	4b040021 	sub	w1, w1, w4
ffff8000113a0d6c:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a0d6c: R_AARCH64_CALL26	__pskb_pull_tail
ffff8000113a0d70:	eb1f001f 	cmp	x0, xzr
ffff8000113a0d74:	1a9f07e2 	cset	w2, ne
ffff8000113a0d78:	17fffff7 	b	ffff8000113a0d54 <pskb_may_pull+0x20>
		return false;
ffff8000113a0d7c:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a0d80:	17fffff5 	b	ffff8000113a0d54 <pskb_may_pull+0x20>

ffff8000113a0d84 <skb_cow_head>:
{
ffff8000113a0d84:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff8000113a0d88:	910003fd 	mov	x29, sp
ffff8000113a0d8c:	aa0003e2 	mov	x2, x0
	if (!skb->cloned)
ffff8000113a0d90:	3941f800 	ldrb	w0, [x0,#126]
ffff8000113a0d94:	12000000 	and	w0, w0, #0x1
ffff8000113a0d98:	34000320 	cbz	w0, ffff8000113a0dfc <skb_cow_head+0x78>
static inline int skb_header_cloned(const struct sk_buff *skb)
ffff8000113a0d9c:	f9406040 	ldr	x0, [x2,#192]
	return skb->head + skb->end;
ffff8000113a0da0:	b940bc44 	ldr	w4, [x2,#188]
	return dataref != 1;
ffff8000113a0da4:	aa0003e3 	mov	x3, x0
	return skb->head + skb->end;
ffff8000113a0da8:	8b040000 	add	x0, x0, x4
ffff8000113a0dac:	b9402000 	ldr	w0, [x0,#32]
	dataref = (dataref & SKB_DATAREF_MASK) - (dataref >> SKB_DATAREF_SHIFT);
ffff8000113a0db0:	12003c04 	and	w4, w0, #0xffff
ffff8000113a0db4:	4b804080 	sub	w0, w4, w0, asr #16
	return dataref != 1;
ffff8000113a0db8:	7100041f 	cmp	w0, #0x1
ffff8000113a0dbc:	1a9f07e0 	cset	w0, ne
	return skb->data - skb->head;
ffff8000113a0dc0:	f9406444 	ldr	x4, [x2,#200]
ffff8000113a0dc4:	cb030083 	sub	x3, x4, x3
		delta = headroom - skb_headroom(skb);
ffff8000113a0dc8:	4b030024 	sub	w4, w1, w3
ffff8000113a0dcc:	6b03003f 	cmp	w1, w3
ffff8000113a0dd0:	1a9f8081 	csel	w1, w4, wzr, hi
	if (delta || cloned)
ffff8000113a0dd4:	2a000020 	orr	w0, w1, w0
ffff8000113a0dd8:	340000e0 	cbz	w0, ffff8000113a0df4 <skb_cow_head+0x70>
		return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD), 0,
ffff8000113a0ddc:	1100fc21 	add	w1, w1, #0x3f
ffff8000113a0de0:	aa0203e0 	mov	x0, x2
ffff8000113a0de4:	121a6421 	and	w1, w1, #0xffffffc0
ffff8000113a0de8:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a0dec:	52814403 	mov	w3, #0xa20                 	// #2592
ffff8000113a0df0:	94000000 	bl	0 <pskb_expand_head>
			ffff8000113a0df0: R_AARCH64_CALL26	pskb_expand_head
}
ffff8000113a0df4:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff8000113a0df8:	d65f03c0 	ret
ffff8000113a0dfc:	f9406043 	ldr	x3, [x2,#192]
ffff8000113a0e00:	17fffff0 	b	ffff8000113a0dc0 <skb_cow_head+0x3c>

ffff8000113a0e04 <gro_pull_from_frag0>:
{
ffff8000113a0e04:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a0e08:	910003fd 	mov	x29, sp
ffff8000113a0e0c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0e10:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0e14:	aa0003f3 	mov	x19, x0
ffff8000113a0e18:	aa1e03e0 	mov	x0, x30
ffff8000113a0e1c:	2a0103f4 	mov	w20, w1
ffff8000113a0e20:	94000000 	bl	0 <_mcount>
			ffff8000113a0e20: R_AARCH64_CALL26	_mcount
	BUG_ON(skb->end - skb->tail < grow);
ffff8000113a0e24:	b940ba62 	ldr	w2, [x19,#184]
static void gro_pull_from_frag0(struct sk_buff *skb, int grow)
ffff8000113a0e28:	b940be75 	ldr	w21, [x19,#188]
ffff8000113a0e2c:	f9406260 	ldr	x0, [x19,#192]
	BUG_ON(skb->end - skb->tail < grow);
ffff8000113a0e30:	4b0202a1 	sub	w1, w21, w2
ffff8000113a0e34:	6b14003f 	cmp	w1, w20
	return skb->head + skb->end;
ffff8000113a0e38:	8b354015 	add	x21, x0, w21, uxtw
ffff8000113a0e3c:	540002c3 	b.cc	ffff8000113a0e94 <gro_pull_from_frag0+0x90>
ffff8000113a0e40:	f9401661 	ldr	x1, [x19,#40]
ffff8000113a0e44:	8b224000 	add	x0, x0, w2, uxtw
ffff8000113a0e48:	93407e82 	sxtw	x2, w20
ffff8000113a0e4c:	94000000 	bl	0 <memcpy>
			ffff8000113a0e4c: R_AARCH64_CALL26	memcpy
	skb->data_len -= grow;
ffff8000113a0e50:	b9407661 	ldr	w1, [x19,#116]
	skb->tail += grow;
ffff8000113a0e54:	b940ba60 	ldr	w0, [x19,#184]
	skb->data_len -= grow;
ffff8000113a0e58:	4b140021 	sub	w1, w1, w20
	skb->tail += grow;
ffff8000113a0e5c:	0b140000 	add	w0, w0, w20
	skb->data_len -= grow;
ffff8000113a0e60:	b9007661 	str	w1, [x19,#116]
	skb->tail += grow;
ffff8000113a0e64:	b900ba60 	str	w0, [x19,#184]
	frag->bv_offset += delta;
ffff8000113a0e68:	b9403ea0 	ldr	w0, [x21,#60]
	frag->bv_len -= delta;
ffff8000113a0e6c:	b9403aa1 	ldr	w1, [x21,#56]
	frag->bv_offset += delta;
ffff8000113a0e70:	0b140000 	add	w0, w0, w20
	frag->bv_len -= delta;
ffff8000113a0e74:	4b140034 	sub	w20, w1, w20
	frag->bv_offset += delta;
ffff8000113a0e78:	b9003ea0 	str	w0, [x21,#60]
	frag->bv_len -= delta;
ffff8000113a0e7c:	b9003ab4 	str	w20, [x21,#56]
	if (unlikely(!skb_frag_size(&pinfo->frags[0]))) {
ffff8000113a0e80:	340000d4 	cbz	w20, ffff8000113a0e98 <gro_pull_from_frag0+0x94>
}
ffff8000113a0e84:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0e88:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a0e8c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a0e90:	d65f03c0 	ret
	BUG_ON(skb->end - skb->tail < grow);
ffff8000113a0e94:	d4210000 	brk	#0x800
static inline void __skb_frag_unref(skb_frag_t *frag)
ffff8000113a0e98:	f9406261 	ldr	x1, [x19,#192]
	return skb->head + skb->end;
ffff8000113a0e9c:	b940be60 	ldr	w0, [x19,#188]
static inline void __skb_frag_unref(skb_frag_t *frag)
ffff8000113a0ea0:	8b000020 	add	x0, x1, x0
ffff8000113a0ea4:	f9401800 	ldr	x0, [x0,#48]
ffff8000113a0ea8:	f9400401 	ldr	x1, [x0,#8]

static inline struct page *compound_head(struct page *page)
{
	unsigned long head = READ_ONCE(page->compound_head);

	if (unlikely(head & 1))
ffff8000113a0eac:	92400022 	and	x2, x1, #0x1
		return (struct page *) (head - 1);
ffff8000113a0eb0:	eb1f005f 	cmp	x2, xzr
ffff8000113a0eb4:	d1000421 	sub	x1, x1, #0x1
ffff8000113a0eb8:	9a810000 	csel	x0, x0, x1, eq
ATOMIC_OPS(sub, sub, J)
ffff8000113a0ebc:	9100d004 	add	x4, x0, #0x34
ffff8000113a0ec0:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a0ec4:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a0ec8:	885f7c82 	ldxr	w2, [x4]
ffff8000113a0ecc:	4b010042 	sub	w2, w2, w1
ffff8000113a0ed0:	8803fc82 	stlxr	w3, w2, [x4]
ffff8000113a0ed4:	35ffffa3 	cbnz	w3, ffff8000113a0ec8 <gro_pull_from_frag0+0xc4>
ffff8000113a0ed8:	d5033bbf 	dmb	ish
	if (page_is_devmap_managed(page)) {
		put_devmap_managed_page(page);
		return;
	}

	if (put_page_testzero(page))
ffff8000113a0edc:	35000042 	cbnz	w2, ffff8000113a0ee4 <gro_pull_from_frag0+0xe0>
		__put_page(page);
ffff8000113a0ee0:	94000000 	bl	0 <__put_page>
			ffff8000113a0ee0: R_AARCH64_CALL26	__put_page
			--pinfo->nr_frags * sizeof(pinfo->frags[0]));
ffff8000113a0ee4:	39400aa2 	ldrb	w2, [x21,#2]
	return __builtin_memmove(p, q, size);
ffff8000113a0ee8:	9100c2a0 	add	x0, x21, #0x30
ffff8000113a0eec:	51000442 	sub	w2, w2, #0x1
ffff8000113a0ef0:	53001c42 	uxtb	w2, w2
		memmove(pinfo->frags, pinfo->frags + 1,
ffff8000113a0ef4:	39000aa2 	strb	w2, [x21,#2]
ffff8000113a0ef8:	910102a1 	add	x1, x21, #0x40
ffff8000113a0efc:	d37c1c42 	ubfiz	x2, x2, #4, #8
ffff8000113a0f00:	94000000 	bl	0 <memmove>
			ffff8000113a0f00: R_AARCH64_CALL26	memmove
ffff8000113a0f04:	17ffffe0 	b	ffff8000113a0e84 <gro_pull_from_frag0+0x80>

ffff8000113a0f08 <netdev_adjacent_sysfs_add>:
{
ffff8000113a0f08:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a0f0c:	910003fd 	mov	x29, sp
ffff8000113a0f10:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0f14:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0f18:	aa0003f5 	mov	x21, x0
ffff8000113a0f1c:	aa1e03e0 	mov	x0, x30
ffff8000113a0f20:	aa0103f4 	mov	x20, x1
ffff8000113a0f24:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a0f28:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a0f28: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a0f2c:	94000000 	bl	0 <_mcount>
			ffff8000113a0f2c: R_AARCH64_CALL26	_mcount
ffff8000113a0f30:	f9400261 	ldr	x1, [x19]
			ffff8000113a0f30: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a0f34:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a0f38:	9102a2a0 	add	x0, x21, #0xa8
{
ffff8000113a0f3c:	f9002fa1 	str	x1, [x29,#88]
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a0f40:	eb00005f 	cmp	x2, x0
ffff8000113a0f44:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0f44: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x138
ffff8000113a0f48:	91000021 	add	x1, x1, #0x0
			ffff8000113a0f48: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x138
ffff8000113a0f4c:	54000200 	b.eq	ffff8000113a0f8c <netdev_adjacent_sysfs_add+0x84>
ffff8000113a0f50:	aa1403e2 	mov	x2, x20
ffff8000113a0f54:	910103a0 	add	x0, x29, #0x40
ffff8000113a0f58:	94000000 	bl	0 <sprintf>
			ffff8000113a0f58: R_AARCH64_CALL26	sprintf
	return sysfs_create_link(&(dev->dev.kobj), &(adj_dev->dev.kobj),
ffff8000113a0f5c:	91144281 	add	x1, x20, #0x510
ffff8000113a0f60:	910103a2 	add	x2, x29, #0x40
ffff8000113a0f64:	911442a0 	add	x0, x21, #0x510
ffff8000113a0f68:	94000000 	bl	0 <sysfs_create_link>
			ffff8000113a0f68: R_AARCH64_CALL26	sysfs_create_link
}
ffff8000113a0f6c:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113a0f70:	f9400261 	ldr	x1, [x19]
			ffff8000113a0f70: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a0f74:	eb01005f 	cmp	x2, x1
ffff8000113a0f78:	54000101 	b.ne	ffff8000113a0f98 <netdev_adjacent_sysfs_add+0x90>
ffff8000113a0f7c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a0f80:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a0f84:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a0f88:	d65f03c0 	ret
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a0f8c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0f8c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x128
ffff8000113a0f90:	91000021 	add	x1, x1, #0x0
			ffff8000113a0f90: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x128
ffff8000113a0f94:	17ffffef 	b	ffff8000113a0f50 <netdev_adjacent_sysfs_add+0x48>
}
ffff8000113a0f98:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a0f98: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a0f9c <netdev_adjacent_sysfs_del>:
{
ffff8000113a0f9c:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a0fa0:	910003fd 	mov	x29, sp
ffff8000113a0fa4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a0fa8:	f90013f5 	str	x21, [sp,#32]
ffff8000113a0fac:	aa0003f4 	mov	x20, x0
ffff8000113a0fb0:	aa1e03e0 	mov	x0, x30
ffff8000113a0fb4:	aa0103f5 	mov	x21, x1
ffff8000113a0fb8:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a0fbc:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a0fbc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a0fc0:	94000000 	bl	0 <_mcount>
			ffff8000113a0fc0: R_AARCH64_CALL26	_mcount
ffff8000113a0fc4:	f9400261 	ldr	x1, [x19]
			ffff8000113a0fc4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a0fc8:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a0fcc:	9102a280 	add	x0, x20, #0xa8
{
ffff8000113a0fd0:	f9002fa1 	str	x1, [x29,#88]
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a0fd4:	eb00005f 	cmp	x2, x0
ffff8000113a0fd8:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a0fd8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x138
ffff8000113a0fdc:	91000021 	add	x1, x1, #0x0
			ffff8000113a0fdc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x138
ffff8000113a0fe0:	540001e0 	b.eq	ffff8000113a101c <netdev_adjacent_sysfs_del+0x80>
ffff8000113a0fe4:	aa1503e2 	mov	x2, x21
ffff8000113a0fe8:	910103a0 	add	x0, x29, #0x40
ffff8000113a0fec:	94000000 	bl	0 <sprintf>
			ffff8000113a0fec: R_AARCH64_CALL26	sprintf
	sysfs_remove_link(&(dev->dev.kobj), linkname);
ffff8000113a0ff0:	91144280 	add	x0, x20, #0x510
ffff8000113a0ff4:	910103a1 	add	x1, x29, #0x40
ffff8000113a0ff8:	94000000 	bl	0 <sysfs_remove_link>
			ffff8000113a0ff8: R_AARCH64_CALL26	sysfs_remove_link
}
ffff8000113a0ffc:	f9402fa1 	ldr	x1, [x29,#88]
ffff8000113a1000:	f9400260 	ldr	x0, [x19]
			ffff8000113a1000: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a1004:	eb00003f 	cmp	x1, x0
ffff8000113a1008:	54000101 	b.ne	ffff8000113a1028 <netdev_adjacent_sysfs_del+0x8c>
ffff8000113a100c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1010:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a1014:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a1018:	d65f03c0 	ret
	sprintf(linkname, dev_list == &dev->adj_list.upper ?
ffff8000113a101c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a101c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x128
ffff8000113a1020:	91000021 	add	x1, x1, #0x0
			ffff8000113a1020: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x128
ffff8000113a1024:	17fffff0 	b	ffff8000113a0fe4 <netdev_adjacent_sysfs_del+0x48>
}
ffff8000113a1028:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a1028: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a102c <dev_get_phys_port_name>:
{
ffff8000113a102c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1030:	910003fd 	mov	x29, sp
ffff8000113a1034:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1038:	f90013f5 	str	x21, [sp,#32]
ffff8000113a103c:	aa0003f3 	mov	x19, x0
ffff8000113a1040:	aa1e03e0 	mov	x0, x30
ffff8000113a1044:	aa0103f5 	mov	x21, x1
ffff8000113a1048:	aa0203f4 	mov	x20, x2
ffff8000113a104c:	94000000 	bl	0 <_mcount>
			ffff8000113a104c: R_AARCH64_CALL26	_mcount
	if (ops->ndo_get_phys_port_name) {
ffff8000113a1050:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113a1054:	f940fc03 	ldr	x3, [x0,#504]
ffff8000113a1058:	b4000163 	cbz	x3, ffff8000113a1084 <dev_get_phys_port_name+0x58>
		err = ops->ndo_get_phys_port_name(dev, name, len);
ffff8000113a105c:	aa1303e0 	mov	x0, x19
ffff8000113a1060:	aa1503e1 	mov	x1, x21
ffff8000113a1064:	aa1403e2 	mov	x2, x20
ffff8000113a1068:	d63f0060 	blr	x3
		if (err != -EOPNOTSUPP)
ffff8000113a106c:	31017c1f 	cmn	w0, #0x5f
ffff8000113a1070:	540000a0 	b.eq	ffff8000113a1084 <dev_get_phys_port_name+0x58>
}
ffff8000113a1074:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1078:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a107c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1080:	d65f03c0 	ret
	return devlink_compat_phys_port_name_get(dev, name, len);
ffff8000113a1084:	aa1503e1 	mov	x1, x21
ffff8000113a1088:	aa1403e2 	mov	x2, x20
ffff8000113a108c:	aa1303e0 	mov	x0, x19
ffff8000113a1090:	94000000 	bl	0 <devlink_compat_phys_port_name_get>
			ffff8000113a1090: R_AARCH64_CALL26	devlink_compat_phys_port_name_get
}
ffff8000113a1094:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1098:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a109c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a10a0:	d65f03c0 	ret

ffff8000113a10a4 <dev_get_port_parent_id>:
{
ffff8000113a10a4:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a10a8:	910003fd 	mov	x29, sp
ffff8000113a10ac:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a10b0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a10b4:	aa0003f5 	mov	x21, x0
ffff8000113a10b8:	aa1e03e0 	mov	x0, x30
ffff8000113a10bc:	aa0103f3 	mov	x19, x1
ffff8000113a10c0:	53001c54 	uxtb	w20, w2
ffff8000113a10c4:	94000000 	bl	0 <_mcount>
			ffff8000113a10c4: R_AARCH64_CALL26	_mcount
ffff8000113a10c8:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113a10c8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113a10cc:	f940faa1 	ldr	x1, [x21,#496]
{
ffff8000113a10d0:	f94002c0 	ldr	x0, [x22]
			ffff8000113a10d0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (ops->ndo_get_port_parent_id) {
ffff8000113a10d4:	f940f823 	ldr	x3, [x1,#496]
{
ffff8000113a10d8:	f9002fa0 	str	x0, [x29,#88]
	struct netdev_phys_item_id first = { };
ffff8000113a10dc:	a9037fbf 	stp	xzr, xzr, [x29,#48]
ffff8000113a10e0:	a9047fbf 	stp	xzr, xzr, [x29,#64]
ffff8000113a10e4:	390143bf 	strb	wzr, [x29,#80]
	if (ops->ndo_get_port_parent_id) {
ffff8000113a10e8:	b4000203 	cbz	x3, ffff8000113a1128 <dev_get_port_parent_id+0x84>
		err = ops->ndo_get_port_parent_id(dev, ppid);
ffff8000113a10ec:	aa1303e1 	mov	x1, x19
ffff8000113a10f0:	aa1503e0 	mov	x0, x21
ffff8000113a10f4:	d63f0060 	blr	x3
		if (err != -EOPNOTSUPP)
ffff8000113a10f8:	31017c1f 	cmn	w0, #0x5f
		err = ops->ndo_get_port_parent_id(dev, ppid);
ffff8000113a10fc:	2a0003e1 	mov	w1, w0
		if (err != -EOPNOTSUPP)
ffff8000113a1100:	54000140 	b.eq	ffff8000113a1128 <dev_get_port_parent_id+0x84>
}
ffff8000113a1104:	f9402fa3 	ldr	x3, [x29,#88]
ffff8000113a1108:	f94002c2 	ldr	x2, [x22]
			ffff8000113a1108: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a110c:	2a0103e0 	mov	w0, w1
ffff8000113a1110:	eb02007f 	cmp	x3, x2
ffff8000113a1114:	54000601 	b.ne	ffff8000113a11d4 <dev_get_port_parent_id+0x130>
ffff8000113a1118:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a111c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1120:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a1124:	d65f03c0 	ret
	err = devlink_compat_switch_id_get(dev, ppid);
ffff8000113a1128:	aa1303e1 	mov	x1, x19
ffff8000113a112c:	aa1503e0 	mov	x0, x21
ffff8000113a1130:	94000000 	bl	0 <devlink_compat_switch_id_get>
			ffff8000113a1130: R_AARCH64_CALL26	devlink_compat_switch_id_get
	if (!err || err != -EOPNOTSUPP)
ffff8000113a1134:	31017c1f 	cmn	w0, #0x5f
	err = devlink_compat_switch_id_get(dev, ppid);
ffff8000113a1138:	2a0003e1 	mov	w1, w0
	if (!err || err != -EOPNOTSUPP)
ffff8000113a113c:	54fffe41 	b.ne	ffff8000113a1104 <dev_get_port_parent_id+0x60>
	if (!recurse)
ffff8000113a1140:	34fffe34 	cbz	w20, ffff8000113a1104 <dev_get_port_parent_id+0x60>
	netdev_for_each_lower_dev(dev, lower_dev, iter) {
ffff8000113a1144:	f84b8ea0 	ldr	x0, [x21,#184]!
	if (&lower->list == &dev->adj_list.lower)
ffff8000113a1148:	eb0002bf 	cmp	x21, x0
ffff8000113a114c:	d1006002 	sub	x2, x0, #0x18
ffff8000113a1150:	54fffda0 	b.eq	ffff8000113a1104 <dev_get_port_parent_id+0x60>
	return lower->dev;
ffff8000113a1154:	f85e8000 	ldur	x0, [x0,#-24]
	*iter = lower->list.next;
ffff8000113a1158:	f9400c54 	ldr	x20, [x2,#24]
	netdev_for_each_lower_dev(dev, lower_dev, iter) {
ffff8000113a115c:	b50001a0 	cbnz	x0, ffff8000113a1190 <dev_get_port_parent_id+0xec>
ffff8000113a1160:	17ffffe9 	b	ffff8000113a1104 <dev_get_port_parent_id+0x60>
			first = *ppid;
ffff8000113a1164:	39408260 	ldrb	w0, [x19,#32]
ffff8000113a1168:	a9401664 	ldp	x4, x5, [x19]
ffff8000113a116c:	a9410e62 	ldp	x2, x3, [x19,#16]
ffff8000113a1170:	a90317a4 	stp	x4, x5, [x29,#48]
ffff8000113a1174:	a9040fa2 	stp	x2, x3, [x29,#64]
ffff8000113a1178:	390143a0 	strb	w0, [x29,#80]
	if (&lower->list == &dev->adj_list.lower)
ffff8000113a117c:	eb1402bf 	cmp	x21, x20
ffff8000113a1180:	54000220 	b.eq	ffff8000113a11c4 <dev_get_port_parent_id+0x120>
	return lower->dev;
ffff8000113a1184:	f85e8280 	ldur	x0, [x20,#-24]
	*iter = lower->list.next;
ffff8000113a1188:	f9400294 	ldr	x20, [x20]
	netdev_for_each_lower_dev(dev, lower_dev, iter) {
ffff8000113a118c:	b4000200 	cbz	x0, ffff8000113a11cc <dev_get_port_parent_id+0x128>
		err = dev_get_port_parent_id(lower_dev, ppid, recurse);
ffff8000113a1190:	aa1303e1 	mov	x1, x19
ffff8000113a1194:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a1198:	94000000 	bl	ffff8000113a10a4 <dev_get_port_parent_id>
			ffff8000113a1198: R_AARCH64_CALL26	dev_get_port_parent_id
		if (err)
ffff8000113a119c:	35000180 	cbnz	w0, ffff8000113a11cc <dev_get_port_parent_id+0x128>
		if (!first.id_len)
ffff8000113a11a0:	394143a0 	ldrb	w0, [x29,#80]
ffff8000113a11a4:	34fffe00 	cbz	w0, ffff8000113a1164 <dev_get_port_parent_id+0xc0>
	return __builtin_memcmp(p, q, size);
ffff8000113a11a8:	9100c3a0 	add	x0, x29, #0x30
ffff8000113a11ac:	aa1303e1 	mov	x1, x19
ffff8000113a11b0:	d2800422 	mov	x2, #0x21                  	// #33
ffff8000113a11b4:	94000000 	bl	0 <memcmp>
			ffff8000113a11b4: R_AARCH64_CALL26	memcmp
		else if (memcmp(&first, ppid, sizeof(*ppid)))
ffff8000113a11b8:	34fffe20 	cbz	w0, ffff8000113a117c <dev_get_port_parent_id+0xd8>
			return -ENODATA;
ffff8000113a11bc:	12800781 	mov	w1, #0xffffffc3            	// #-61
ffff8000113a11c0:	17ffffd1 	b	ffff8000113a1104 <dev_get_port_parent_id+0x60>
	if (&lower->list == &dev->adj_list.lower)
ffff8000113a11c4:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a11c8:	17ffffcf 	b	ffff8000113a1104 <dev_get_port_parent_id+0x60>
ffff8000113a11cc:	2a0003e1 	mov	w1, w0
ffff8000113a11d0:	17ffffcd 	b	ffff8000113a1104 <dev_get_port_parent_id+0x60>
}
ffff8000113a11d4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a11d4: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a11d8 <netdev_port_same_parent_id>:
{
ffff8000113a11d8:	a9b77bfd 	stp	x29, x30, [sp,#-144]!
ffff8000113a11dc:	910003fd 	mov	x29, sp
ffff8000113a11e0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a11e4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a11e8:	aa0003f5 	mov	x21, x0
ffff8000113a11ec:	aa1e03e0 	mov	x0, x30
ffff8000113a11f0:	aa0103f6 	mov	x22, x1
ffff8000113a11f4:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a11f4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a11f8:	94000000 	bl	0 <_mcount>
			ffff8000113a11f8: R_AARCH64_CALL26	_mcount
	struct netdev_phys_item_id a_id = { };
ffff8000113a11fc:	9100e3b3 	add	x19, x29, #0x38
{
ffff8000113a1200:	f9400283 	ldr	x3, [x20]
			ffff8000113a1200: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (dev_get_port_parent_id(a, &a_id, true) ||
ffff8000113a1204:	aa1503e0 	mov	x0, x21
ffff8000113a1208:	aa1303e1 	mov	x1, x19
ffff8000113a120c:	52800022 	mov	w2, #0x1                   	// #1
{
ffff8000113a1210:	f90047a3 	str	x3, [x29,#136]
	struct netdev_phys_item_id a_id = { };
ffff8000113a1214:	a9007e7f 	stp	xzr, xzr, [x19]
ffff8000113a1218:	a9017e7f 	stp	xzr, xzr, [x19,#16]
ffff8000113a121c:	390163bf 	strb	wzr, [x29,#88]
	struct netdev_phys_item_id b_id = { };
ffff8000113a1220:	a9067fbf 	stp	xzr, xzr, [x29,#96]
ffff8000113a1224:	a9077fbf 	stp	xzr, xzr, [x29,#112]
ffff8000113a1228:	390203bf 	strb	wzr, [x29,#128]
	if (dev_get_port_parent_id(a, &a_id, true) ||
ffff8000113a122c:	94000000 	bl	ffff8000113a10a4 <dev_get_port_parent_id>
			ffff8000113a122c: R_AARCH64_CALL26	dev_get_port_parent_id
ffff8000113a1230:	34000140 	cbz	w0, ffff8000113a1258 <netdev_port_same_parent_id+0x80>
		return false;
ffff8000113a1234:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a1238:	f94047a2 	ldr	x2, [x29,#136]
ffff8000113a123c:	f9400281 	ldr	x1, [x20]
			ffff8000113a123c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a1240:	eb01005f 	cmp	x2, x1
ffff8000113a1244:	540002e1 	b.ne	ffff8000113a12a0 <netdev_port_same_parent_id+0xc8>
ffff8000113a1248:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a124c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1250:	a8c97bfd 	ldp	x29, x30, [sp],#144
ffff8000113a1254:	d65f03c0 	ret
	    dev_get_port_parent_id(b, &b_id, true))
ffff8000113a1258:	aa1603e0 	mov	x0, x22
ffff8000113a125c:	910183a1 	add	x1, x29, #0x60
ffff8000113a1260:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a1264:	94000000 	bl	ffff8000113a10a4 <dev_get_port_parent_id>
			ffff8000113a1264: R_AARCH64_CALL26	dev_get_port_parent_id
	if (dev_get_port_parent_id(a, &a_id, true) ||
ffff8000113a1268:	35fffe60 	cbnz	w0, ffff8000113a1234 <netdev_port_same_parent_id+0x5c>
	return a->id_len == b->id_len &&
ffff8000113a126c:	39408261 	ldrb	w1, [x19,#32]
ffff8000113a1270:	394203a2 	ldrb	w2, [x29,#128]
ffff8000113a1274:	6b01005f 	cmp	w2, w1
ffff8000113a1278:	54fffe01 	b.ne	ffff8000113a1238 <netdev_port_same_parent_id+0x60>
	       memcmp(a->id, b->id, a->id_len) == 0;
ffff8000113a127c:	53001c42 	uxtb	w2, w2
	if (p_size < size || q_size < size)
ffff8000113a1280:	f100845f 	cmp	x2, #0x21
ffff8000113a1284:	54000108 	b.hi	ffff8000113a12a4 <netdev_port_same_parent_id+0xcc>
	return __builtin_memcmp(p, q, size);
ffff8000113a1288:	aa1303e0 	mov	x0, x19
ffff8000113a128c:	910183a1 	add	x1, x29, #0x60
ffff8000113a1290:	94000000 	bl	0 <memcmp>
			ffff8000113a1290: R_AARCH64_CALL26	memcmp
	return a->id_len == b->id_len &&
ffff8000113a1294:	6b1f001f 	cmp	w0, wzr
ffff8000113a1298:	1a9f17e0 	cset	w0, eq
ffff8000113a129c:	17ffffe7 	b	ffff8000113a1238 <netdev_port_same_parent_id+0x60>
}
ffff8000113a12a0:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a12a0: R_AARCH64_CALL26	__stack_chk_fail
		fortify_panic(__func__);
ffff8000113a12a4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a12a4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a12a8:	91000000 	add	x0, x0, #0x0
			ffff8000113a12a8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a12ac:	94000000 	bl	0 <fortify_panic>
			ffff8000113a12ac: R_AARCH64_CALL26	fortify_panic

ffff8000113a12b0 <dev_change_proto_down_generic>:
{
ffff8000113a12b0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a12b4:	910003fd 	mov	x29, sp
ffff8000113a12b8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a12bc:	aa0003f3 	mov	x19, x0
ffff8000113a12c0:	aa1e03e0 	mov	x0, x30
ffff8000113a12c4:	53001c34 	uxtb	w20, w1
ffff8000113a12c8:	94000000 	bl	0 <_mcount>
			ffff8000113a12c8: R_AARCH64_CALL26	_mcount
		netif_carrier_off(dev);
ffff8000113a12cc:	aa1303e0 	mov	x0, x19
	if (proto_down)
ffff8000113a12d0:	350000f4 	cbnz	w20, ffff8000113a12ec <dev_change_proto_down_generic+0x3c>
		netif_carrier_on(dev);
ffff8000113a12d4:	94000000 	bl	0 <netif_carrier_on>
			ffff8000113a12d4: R_AARCH64_CALL26	netif_carrier_on
	dev->proto_down = proto_down;
ffff8000113a12d8:	3922e274 	strb	w20, [x19,#2232]
}
ffff8000113a12dc:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a12e0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a12e4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a12e8:	d65f03c0 	ret
		netif_carrier_off(dev);
ffff8000113a12ec:	94000000 	bl	0 <netif_carrier_off>
			ffff8000113a12ec: R_AARCH64_CALL26	netif_carrier_off
	dev->proto_down = proto_down;
ffff8000113a12f0:	3922e274 	strb	w20, [x19,#2232]
}
ffff8000113a12f4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a12f8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a12fc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a1300:	d65f03c0 	ret

ffff8000113a1304 <netdev_refcnt_read>:
{
ffff8000113a1304:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a1308:	910003fd 	mov	x29, sp
ffff8000113a130c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1310:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a1314:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a1318:	aa0003f6 	mov	x22, x0
ffff8000113a131c:	aa1e03e0 	mov	x0, x30
ffff8000113a1320:	94000000 	bl	0 <_mcount>
			ffff8000113a1320: R_AARCH64_CALL26	_mcount
	for_each_possible_cpu(i)
ffff8000113a1324:	90000014 	adrp	x20, 0 <__cpu_possible_mask>
			ffff8000113a1324: R_AARCH64_ADR_PREL_PG_HI21	__cpu_possible_mask
ffff8000113a1328:	90000017 	adrp	x23, 0 <nr_cpu_ids>
			ffff8000113a1328: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
	int i, refcnt = 0;
ffff8000113a132c:	52800013 	mov	w19, #0x0                   	// #0
	for_each_possible_cpu(i)
ffff8000113a1330:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113a1334:	91000294 	add	x20, x20, #0x0
			ffff8000113a1334: R_AARCH64_ADD_ABS_LO12_NC	__cpu_possible_mask
ffff8000113a1338:	910002f7 	add	x23, x23, #0x0
			ffff8000113a1338: R_AARCH64_ADD_ABS_LO12_NC	nr_cpu_ids
		refcnt += *per_cpu_ptr(dev->pcpu_refcnt, i);
ffff8000113a133c:	90000015 	adrp	x21, 0 <__per_cpu_offset>
			ffff8000113a133c: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
	for_each_possible_cpu(i)
ffff8000113a1340:	14000006 	b	ffff8000113a1358 <netdev_refcnt_read+0x54>
		refcnt += *per_cpu_ptr(dev->pcpu_refcnt, i);
ffff8000113a1344:	910002a2 	add	x2, x21, #0x0
			ffff8000113a1344: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a1348:	f860d843 	ldr	x3, [x2,w0,sxtw #3]
ffff8000113a134c:	f94262c2 	ldr	x2, [x22,#1216]
ffff8000113a1350:	b8636842 	ldr	w2, [x2,x3]
ffff8000113a1354:	0b020273 	add	w19, w19, w2
	for_each_possible_cpu(i)
ffff8000113a1358:	aa1403e1 	mov	x1, x20
ffff8000113a135c:	94000000 	bl	0 <cpumask_next>
			ffff8000113a135c: R_AARCH64_CALL26	cpumask_next
ffff8000113a1360:	b94002e2 	ldr	w2, [x23]
ffff8000113a1364:	6b02001f 	cmp	w0, w2
ffff8000113a1368:	54fffee3 	b.cc	ffff8000113a1344 <netdev_refcnt_read+0x40>
}
ffff8000113a136c:	2a1303e0 	mov	w0, w19
ffff8000113a1370:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1374:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1378:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a137c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a1380:	d65f03c0 	ret

ffff8000113a1384 <synchronize_net>:
{
ffff8000113a1384:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff8000113a1388:	910003fd 	mov	x29, sp
ffff8000113a138c:	aa1e03e0 	mov	x0, x30
ffff8000113a1390:	94000000 	bl	0 <_mcount>
			ffff8000113a1390: R_AARCH64_CALL26	_mcount
	might_sleep();
ffff8000113a1394:	94000000 	bl	0 <_cond_resched>
			ffff8000113a1394: R_AARCH64_CALL26	_cond_resched
	if (rtnl_is_locked())
ffff8000113a1398:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a1398: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a139c:	35000080 	cbnz	w0, ffff8000113a13ac <synchronize_net+0x28>
		synchronize_rcu();
ffff8000113a13a0:	94000000 	bl	0 <synchronize_rcu>
			ffff8000113a13a0: R_AARCH64_CALL26	synchronize_rcu
}
ffff8000113a13a4:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff8000113a13a8:	d65f03c0 	ret
		synchronize_rcu_expedited();
ffff8000113a13ac:	94000000 	bl	0 <synchronize_rcu_expedited>
			ffff8000113a13ac: R_AARCH64_CALL26	synchronize_rcu_expedited
}
ffff8000113a13b0:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff8000113a13b4:	d65f03c0 	ret

ffff8000113a13b8 <netdev_rx_handler_unregister>:
{
ffff8000113a13b8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a13bc:	910003fd 	mov	x29, sp
ffff8000113a13c0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a13c4:	aa0003f3 	mov	x19, x0
ffff8000113a13c8:	aa1e03e0 	mov	x0, x30
ffff8000113a13cc:	94000000 	bl	0 <_mcount>
			ffff8000113a13cc: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff8000113a13d0:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a13d0: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a13d4:	340000e0 	cbz	w0, ffff8000113a13f0 <netdev_rx_handler_unregister+0x38>
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a13d8:	f901a27f 	str	xzr, [x19,#832]
	synchronize_net();
ffff8000113a13dc:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a13dc: R_AARCH64_CALL26	synchronize_net
ffff8000113a13e0:	f901a67f 	str	xzr, [x19,#840]
}
ffff8000113a13e4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a13e8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a13ec:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a13f0:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a13f0: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a13f4:	91000063 	add	x3, x3, #0x0
			ffff8000113a13f4: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a13f8:	39403460 	ldrb	w0, [x3,#13]
ffff8000113a13fc:	35fffee0 	cbnz	w0, ffff8000113a13d8 <netdev_rx_handler_unregister+0x20>
ffff8000113a1400:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1400: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a1404:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1404: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a1408:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a140c:	91000000 	add	x0, x0, #0x0
			ffff8000113a140c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a1410:	91000021 	add	x1, x1, #0x0
			ffff8000113a1410: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a1414:	528269e2 	mov	w2, #0x134f                	// #4943
ffff8000113a1418:	39003464 	strb	w4, [x3,#13]
ffff8000113a141c:	94000000 	bl	0 <__warn_printk>
			ffff8000113a141c: R_AARCH64_CALL26	__warn_printk
ffff8000113a1420:	d4210000 	brk	#0x800
ffff8000113a1424:	17ffffed 	b	ffff8000113a13d8 <netdev_rx_handler_unregister+0x20>

ffff8000113a1428 <net_rps_send_ipi>:
{
ffff8000113a1428:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a142c:	910003fd 	mov	x29, sp
ffff8000113a1430:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1434:	f90013f5 	str	x21, [sp,#32]
ffff8000113a1438:	90000015 	adrp	x21, 0 <__cpu_online_mask>
			ffff8000113a1438: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a143c:	aa0003f3 	mov	x19, x0
ffff8000113a1440:	aa1e03e0 	mov	x0, x30
ffff8000113a1444:	94000000 	bl	0 <_mcount>
			ffff8000113a1444: R_AARCH64_CALL26	_mcount
ffff8000113a1448:	910002b5 	add	x21, x21, #0x0
			ffff8000113a1448: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
	while (remsd) {
ffff8000113a144c:	b4000233 	cbz	x19, ffff8000113a1490 <net_rps_send_ipi+0x68>
		if (cpu_online(remsd->cpu))
ffff8000113a1450:	b940ea60 	ldr	w0, [x19,#232]
		struct softnet_data *next = remsd->rps_ipi_next;
ffff8000113a1454:	f9407274 	ldr	x20, [x19,#224]
ffff8000113a1458:	1100fc01 	add	w1, w0, #0x3f
ffff8000113a145c:	6b1f001f 	cmp	w0, wzr
ffff8000113a1460:	1a80b021 	csel	w1, w1, w0, lt
ffff8000113a1464:	13067c21 	asr	w1, w1, #6
ffff8000113a1468:	937d7c21 	sbfiz	x1, x1, #3, #32
ffff8000113a146c:	f8756821 	ldr	x1, [x1,x21]
ffff8000113a1470:	9ac02421 	lsr	x1, x1, x0
		if (cpu_online(remsd->cpu))
ffff8000113a1474:	37000081 	tbnz	w1, #0, ffff8000113a1484 <net_rps_send_ipi+0x5c>
	while (remsd) {
ffff8000113a1478:	b40000d4 	cbz	x20, ffff8000113a1490 <net_rps_send_ipi+0x68>
ffff8000113a147c:	aa1403f3 	mov	x19, x20
ffff8000113a1480:	17fffff4 	b	ffff8000113a1450 <net_rps_send_ipi+0x28>
			smp_call_function_single_async(remsd->cpu, &remsd->csd);
ffff8000113a1484:	91030261 	add	x1, x19, #0xc0
ffff8000113a1488:	94000000 	bl	0 <smp_call_function_single_async>
			ffff8000113a1488: R_AARCH64_CALL26	smp_call_function_single_async
	while (remsd) {
ffff8000113a148c:	b5ffff94 	cbnz	x20, ffff8000113a147c <net_rps_send_ipi+0x54>
}
ffff8000113a1490:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1494:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a1498:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a149c:	d65f03c0 	ret

ffff8000113a14a0 <skb_gro_reset_offset>:
{
ffff8000113a14a0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a14a4:	910003fd 	mov	x29, sp
ffff8000113a14a8:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a14ac:	aa0003f3 	mov	x19, x0
ffff8000113a14b0:	aa1e03e0 	mov	x0, x30
ffff8000113a14b4:	94000000 	bl	0 <_mcount>
			ffff8000113a14b4: R_AARCH64_CALL26	_mcount
	if (!skb_headlen(skb) && pinfo->nr_frags &&
ffff8000113a14b8:	b9407262 	ldr	w2, [x19,#112]
ffff8000113a14bc:	b9407661 	ldr	w1, [x19,#116]
	NAPI_GRO_CB(skb)->data_offset = 0;
ffff8000113a14c0:	b900367f 	str	wzr, [x19,#52]
	NAPI_GRO_CB(skb)->frag0 = NULL;
ffff8000113a14c4:	f900167f 	str	xzr, [x19,#40]
	NAPI_GRO_CB(skb)->frag0_len = 0;
ffff8000113a14c8:	b900327f 	str	wzr, [x19,#48]
	if (!skb_headlen(skb) && pinfo->nr_frags &&
ffff8000113a14cc:	6b01005f 	cmp	w2, w1
static void skb_gro_reset_offset(struct sk_buff *skb)
ffff8000113a14d0:	b940be63 	ldr	w3, [x19,#188]
ffff8000113a14d4:	f9406264 	ldr	x4, [x19,#192]
	if (!skb_headlen(skb) && pinfo->nr_frags &&
ffff8000113a14d8:	54000080 	b.eq	ffff8000113a14e8 <skb_gro_reset_offset+0x48>
}
ffff8000113a14dc:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a14e0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a14e4:	d65f03c0 	ret
	return skb->head + skb->end;
ffff8000113a14e8:	8b234081 	add	x1, x4, w3, uxtw
	if (!skb_headlen(skb) && pinfo->nr_frags &&
ffff8000113a14ec:	39400822 	ldrb	w2, [x1,#2]
ffff8000113a14f0:	34ffff62 	cbz	w2, ffff8000113a14dc <skb_gro_reset_offset+0x3c>
 */
#include <linux/vmstat.h>

static __always_inline void *lowmem_page_address(const struct page *page)
{
	return page_to_virt(page);
ffff8000113a14f4:	f9401824 	ldr	x4, [x1,#48]
ffff8000113a14f8:	d2a00402 	mov	x2, #0x200000              	// #2097152
ffff8000113a14fc:	f2c00402 	movk	x2, #0x20, lsl #32
ffff8000113a1500:	8b020082 	add	x2, x4, x2
ffff8000113a1504:	d2ffffe5 	mov	x5, #0xffff000000000000    	// #-281474976710656
	return page_address(skb_frag_page(frag)) + skb_frag_off(frag);
ffff8000113a1508:	b9403c24 	ldr	w4, [x1,#60]
ffff8000113a150c:	d346fc42 	lsr	x2, x2, #6
ffff8000113a1510:	8b0240a2 	add	x2, x5, x2, lsl #16
ffff8000113a1514:	8b040042 	add	x2, x2, x4
		NAPI_GRO_CB(skb)->frag0 = skb_frag_address(frag0);
ffff8000113a1518:	f9001662 	str	x2, [x19,#40]
		NAPI_GRO_CB(skb)->frag0_len = min_t(unsigned int,
ffff8000113a151c:	b940ba62 	ldr	w2, [x19,#184]
ffff8000113a1520:	b9403821 	ldr	w1, [x1,#56]
ffff8000113a1524:	4b020063 	sub	w3, w3, w2
ffff8000113a1528:	6b03003f 	cmp	w1, w3
ffff8000113a152c:	1a839023 	csel	w3, w1, w3, ls
ffff8000113a1530:	b9003263 	str	w3, [x19,#48]
}
ffff8000113a1534:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a1538:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a153c:	d65f03c0 	ret

ffff8000113a1540 <is_skb_forwardable>:
{
ffff8000113a1540:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1544:	910003fd 	mov	x29, sp
ffff8000113a1548:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a154c:	aa0003f3 	mov	x19, x0
ffff8000113a1550:	aa1e03e0 	mov	x0, x30
ffff8000113a1554:	f90017a1 	str	x1, [x29,#40]
ffff8000113a1558:	94000000 	bl	0 <_mcount>
			ffff8000113a1558: R_AARCH64_CALL26	_mcount
	if (!(dev->flags & IFF_UP))
ffff8000113a155c:	b9422a62 	ldr	w2, [x19,#552]
		return false;
ffff8000113a1560:	52800000 	mov	w0, #0x0                   	// #0
	if (!(dev->flags & IFF_UP))
ffff8000113a1564:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a1568:	360001e2 	tbz	w2, #0, ffff8000113a15a4 <is_skb_forwardable+0x64>
	len = dev->mtu + dev->hard_header_len + VLAN_HLEN;
ffff8000113a156c:	b9423a62 	ldr	w2, [x19,#568]
ffff8000113a1570:	79448e63 	ldrh	w3, [x19,#582]
	if (skb->len <= len)
ffff8000113a1574:	b9407020 	ldr	w0, [x1,#112]
	len = dev->mtu + dev->hard_header_len + VLAN_HLEN;
ffff8000113a1578:	11001042 	add	w2, w2, #0x4
ffff8000113a157c:	0b030042 	add	w2, w2, w3
	if (skb->len <= len)
ffff8000113a1580:	6b00005f 	cmp	w2, w0
		return true;
ffff8000113a1584:	52800020 	mov	w0, #0x1                   	// #1
	if (skb->len <= len)
ffff8000113a1588:	540000e2 	b.cs	ffff8000113a15a4 <is_skb_forwardable+0x64>
	return skb->head + skb->end;
ffff8000113a158c:	b940bc20 	ldr	w0, [x1,#188]
	return csum_fold(csum_partial(csum_start, plen, partial));
}

static inline bool skb_is_gso(const struct sk_buff *skb)
{
	return skb_shinfo(skb)->gso_size;
ffff8000113a1590:	f9406021 	ldr	x1, [x1,#192]
ffff8000113a1594:	8b000020 	add	x0, x1, x0
	if (skb_is_gso(skb))
ffff8000113a1598:	79400800 	ldrh	w0, [x0,#4]
ffff8000113a159c:	6b1f001f 	cmp	w0, wzr
ffff8000113a15a0:	1a9f07e0 	cset	w0, ne
}
ffff8000113a15a4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a15a8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a15ac:	d65f03c0 	ret

ffff8000113a15b0 <dev_valid_name>:
{
ffff8000113a15b0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a15b4:	910003fd 	mov	x29, sp
ffff8000113a15b8:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a15bc:	aa0003f3 	mov	x19, x0
ffff8000113a15c0:	aa1e03e0 	mov	x0, x30
ffff8000113a15c4:	94000000 	bl	0 <_mcount>
			ffff8000113a15c4: R_AARCH64_CALL26	_mcount
	if (*name == '\0')
ffff8000113a15c8:	39400260 	ldrb	w0, [x19]
ffff8000113a15cc:	350000a0 	cbnz	w0, ffff8000113a15e0 <dev_valid_name+0x30>
			return false;
ffff8000113a15d0:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a15d4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a15d8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a15dc:	d65f03c0 	ret
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a15e0:	aa1303e0 	mov	x0, x19
ffff8000113a15e4:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a15e8:	94000000 	bl	0 <strnlen>
			ffff8000113a15e8: R_AARCH64_CALL26	strnlen
	if (p_size <= ret && maxlen != ret)
ffff8000113a15ec:	b100041f 	cmn	x0, #0x1
ffff8000113a15f0:	54000480 	b.eq	ffff8000113a1680 <dev_valid_name+0xd0>
	if (strnlen(name, IFNAMSIZ) == IFNAMSIZ)
ffff8000113a15f4:	f100401f 	cmp	x0, #0x10
ffff8000113a15f8:	54fffec0 	b.eq	ffff8000113a15d0 <dev_valid_name+0x20>
	if (!strcmp(name, ".") || !strcmp(name, ".."))
ffff8000113a15fc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a15fc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x148
ffff8000113a1600:	aa1303e0 	mov	x0, x19
ffff8000113a1604:	91000021 	add	x1, x1, #0x0
			ffff8000113a1604: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x148
ffff8000113a1608:	94000000 	bl	0 <strcmp>
			ffff8000113a1608: R_AARCH64_CALL26	strcmp
ffff8000113a160c:	34fffe20 	cbz	w0, ffff8000113a15d0 <dev_valid_name+0x20>
ffff8000113a1610:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1610: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x150
ffff8000113a1614:	aa1303e0 	mov	x0, x19
ffff8000113a1618:	91000021 	add	x1, x1, #0x0
			ffff8000113a1618: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x150
ffff8000113a161c:	94000000 	bl	0 <strcmp>
			ffff8000113a161c: R_AARCH64_CALL26	strcmp
ffff8000113a1620:	34fffd80 	cbz	w0, ffff8000113a15d0 <dev_valid_name+0x20>
	while (*name) {
ffff8000113a1624:	39400261 	ldrb	w1, [x19]
ffff8000113a1628:	34000281 	cbz	w1, ffff8000113a1678 <dev_valid_name+0xc8>
		if (*name == '/' || *name == ':' || isspace(*name))
ffff8000113a162c:	7100e83f 	cmp	w1, #0x3a
ffff8000113a1630:	54fffd00 	b.eq	ffff8000113a15d0 <dev_valid_name+0x20>
ffff8000113a1634:	7100bc3f 	cmp	w1, #0x2f
ffff8000113a1638:	1a9f17e0 	cset	w0, eq
ffff8000113a163c:	35fffca0 	cbnz	w0, ffff8000113a15d0 <dev_valid_name+0x20>
ffff8000113a1640:	90000002 	adrp	x2, 0 <_ctype>
			ffff8000113a1640: R_AARCH64_ADR_PREL_PG_HI21	_ctype
ffff8000113a1644:	91000042 	add	x2, x2, #0x0
			ffff8000113a1644: R_AARCH64_ADD_ABS_LO12_NC	_ctype
ffff8000113a1648:	3861c841 	ldrb	w1, [x2,w1,sxtw]
ffff8000113a164c:	36280121 	tbz	w1, #5, ffff8000113a1670 <dev_valid_name+0xc0>
ffff8000113a1650:	17ffffe1 	b	ffff8000113a15d4 <dev_valid_name+0x24>
ffff8000113a1654:	7100e83f 	cmp	w1, #0x3a
ffff8000113a1658:	54fffbc0 	b.eq	ffff8000113a15d0 <dev_valid_name+0x20>
ffff8000113a165c:	7100bc3f 	cmp	w1, #0x2f
ffff8000113a1660:	1a9f17e0 	cset	w0, eq
ffff8000113a1664:	35fffb60 	cbnz	w0, ffff8000113a15d0 <dev_valid_name+0x20>
ffff8000113a1668:	3861c841 	ldrb	w1, [x2,w1,sxtw]
ffff8000113a166c:	372ffb41 	tbnz	w1, #5, ffff8000113a15d4 <dev_valid_name+0x24>
	while (*name) {
ffff8000113a1670:	38401e61 	ldrb	w1, [x19,#1]!
ffff8000113a1674:	35ffff01 	cbnz	w1, ffff8000113a1654 <dev_valid_name+0xa4>
	return true;
ffff8000113a1678:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113a167c:	17ffffd6 	b	ffff8000113a15d4 <dev_valid_name+0x24>
		fortify_panic(__func__);
ffff8000113a1680:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1680: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff8000113a1684:	91000000 	add	x0, x0, #0x0
			ffff8000113a1684: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff8000113a1688:	91044000 	add	x0, x0, #0x110
ffff8000113a168c:	94000000 	bl	0 <fortify_panic>
			ffff8000113a168c: R_AARCH64_CALL26	fortify_panic

ffff8000113a1690 <dev_alloc_name_ns>:
{
ffff8000113a1690:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113a1694:	910003fd 	mov	x29, sp
ffff8000113a1698:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a169c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a16a0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a16a4:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a16a8:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a16ac:	aa0003f8 	mov	x24, x0
ffff8000113a16b0:	aa1e03e0 	mov	x0, x30
ffff8000113a16b4:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff8000113a16b4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a16b8:	aa0103fb 	mov	x27, x1
ffff8000113a16bc:	aa0203f4 	mov	x20, x2
ffff8000113a16c0:	94000000 	bl	0 <_mcount>
			ffff8000113a16c0: R_AARCH64_CALL26	_mcount
ffff8000113a16c4:	f9400340 	ldr	x0, [x26]
			ffff8000113a16c4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a16c8:	f9003fa0 	str	x0, [x29,#120]
	BUG_ON(!net);
ffff8000113a16cc:	b4000eb8 	cbz	x24, ffff8000113a18a0 <dev_alloc_name_ns+0x210>
	if (!dev_valid_name(name))
ffff8000113a16d0:	aa1403e0 	mov	x0, x20
	int i = 0;
ffff8000113a16d4:	b90067bf 	str	wzr, [x29,#100]
	if (!dev_valid_name(name))
ffff8000113a16d8:	94000000 	bl	ffff8000113a15b0 <dev_valid_name>
			ffff8000113a16d8: R_AARCH64_CALL26	dev_valid_name
ffff8000113a16dc:	53001c00 	uxtb	w0, w0
ffff8000113a16e0:	34000d20 	cbz	w0, ffff8000113a1884 <dev_alloc_name_ns+0x1f4>
	p = strchr(name, '%');
ffff8000113a16e4:	aa1403e0 	mov	x0, x20
ffff8000113a16e8:	528004a1 	mov	w1, #0x25                  	// #37
ffff8000113a16ec:	94000000 	bl	0 <strchr>
			ffff8000113a16ec: R_AARCH64_CALL26	strchr
ffff8000113a16f0:	9101a3b6 	add	x22, x29, #0x68
	if (p) {
ffff8000113a16f4:	b40007e0 	cbz	x0, ffff8000113a17f0 <dev_alloc_name_ns+0x160>
		if (p[1] != 'd' || strchr(p + 2, '%'))
ffff8000113a16f8:	39400401 	ldrb	w1, [x0,#1]
ffff8000113a16fc:	7101903f 	cmp	w1, #0x64
ffff8000113a1700:	54000c21 	b.ne	ffff8000113a1884 <dev_alloc_name_ns+0x1f4>
ffff8000113a1704:	91000800 	add	x0, x0, #0x2
ffff8000113a1708:	528004a1 	mov	w1, #0x25                  	// #37
ffff8000113a170c:	94000000 	bl	0 <strchr>
			ffff8000113a170c: R_AARCH64_CALL26	strchr
ffff8000113a1710:	b5000ba0 	cbnz	x0, ffff8000113a1884 <dev_alloc_name_ns+0x1f4>
		inuse = (unsigned long *) get_zeroed_page(GFP_ATOMIC);
ffff8000113a1714:	52814400 	mov	w0, #0xa20                 	// #2592
ffff8000113a1718:	94000000 	bl	0 <get_zeroed_page>
			ffff8000113a1718: R_AARCH64_CALL26	get_zeroed_page
ffff8000113a171c:	aa0003f7 	mov	x23, x0
		if (!inuse)
ffff8000113a1720:	b4000ba0 	cbz	x0, ffff8000113a1894 <dev_alloc_name_ns+0x204>
		for_each_netdev(net, d) {
ffff8000113a1724:	aa1803f5 	mov	x21, x24
ffff8000113a1728:	f8490eb3 	ldr	x19, [x21,#144]!
ffff8000113a172c:	9101a3b6 	add	x22, x29, #0x68
ffff8000113a1730:	eb1302bf 	cmp	x21, x19
ffff8000113a1734:	d1012273 	sub	x19, x19, #0x48
ffff8000113a1738:	540004c0 	b.eq	ffff8000113a17d0 <dev_alloc_name_ns+0x140>
			if (i < 0 || i >= max_netdevices)
ffff8000113a173c:	12bfff19 	mov	w25, #0x7ffff               	// #524287
 */

static inline void set_bit(unsigned int nr, volatile unsigned long *p)
{
	p += BIT_WORD(nr);
	atomic_long_or(BIT_MASK(nr), (atomic_long_t *)p);
ffff8000113a1740:	d280003c 	mov	x28, #0x1                   	// #1
ffff8000113a1744:	14000005 	b	ffff8000113a1758 <dev_alloc_name_ns+0xc8>
		for_each_netdev(net, d) {
ffff8000113a1748:	f9402673 	ldr	x19, [x19,#72]
ffff8000113a174c:	eb1302bf 	cmp	x21, x19
ffff8000113a1750:	d1012273 	sub	x19, x19, #0x48
ffff8000113a1754:	540003e0 	b.eq	ffff8000113a17d0 <dev_alloc_name_ns+0x140>
			if (!sscanf(d->name, name, &i))
ffff8000113a1758:	aa1303e0 	mov	x0, x19
ffff8000113a175c:	aa1403e1 	mov	x1, x20
ffff8000113a1760:	910193a2 	add	x2, x29, #0x64
ffff8000113a1764:	94000000 	bl	0 <sscanf>
			ffff8000113a1764: R_AARCH64_CALL26	sscanf
ffff8000113a1768:	34ffff00 	cbz	w0, ffff8000113a1748 <dev_alloc_name_ns+0xb8>
			if (i < 0 || i >= max_netdevices)
ffff8000113a176c:	b94067a3 	ldr	w3, [x29,#100]
ffff8000113a1770:	6b19007f 	cmp	w3, w25
ffff8000113a1774:	54fffea8 	b.hi	ffff8000113a1748 <dev_alloc_name_ns+0xb8>
			snprintf(buf, IFNAMSIZ, name, i);
ffff8000113a1778:	aa1403e2 	mov	x2, x20
ffff8000113a177c:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a1780:	aa1603e0 	mov	x0, x22
ffff8000113a1784:	94000000 	bl	0 <snprintf>
			ffff8000113a1784: R_AARCH64_CALL26	snprintf
			if (!strncmp(buf, d->name, IFNAMSIZ))
ffff8000113a1788:	aa1603e0 	mov	x0, x22
ffff8000113a178c:	aa1303e1 	mov	x1, x19
ffff8000113a1790:	d2800202 	mov	x2, #0x10                  	// #16
ffff8000113a1794:	94000000 	bl	0 <strncmp>
			ffff8000113a1794: R_AARCH64_CALL26	strncmp
ffff8000113a1798:	35fffd80 	cbnz	w0, ffff8000113a1748 <dev_alloc_name_ns+0xb8>
				set_bit(i, inuse);
ffff8000113a179c:	b94067a1 	ldr	w1, [x29,#100]
	p += BIT_WORD(nr);
ffff8000113a17a0:	d3467c20 	ubfx	x0, x1, #6, #26
ATOMIC64_OPS(or, orr, L)
ffff8000113a17a4:	8b000ee4 	add	x4, x23, x0, lsl #3
	atomic_long_or(BIT_MASK(nr), (atomic_long_t *)p);
ffff8000113a17a8:	9ac12381 	lsl	x1, x28, x1
ffff8000113a17ac:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a17b0:	c85f7c82 	ldxr	x2, [x4]
ffff8000113a17b4:	aa010042 	orr	x2, x2, x1
ffff8000113a17b8:	c8037c82 	stxr	w3, x2, [x4]
ffff8000113a17bc:	35ffffa3 	cbnz	w3, ffff8000113a17b0 <dev_alloc_name_ns+0x120>
		for_each_netdev(net, d) {
ffff8000113a17c0:	f9402673 	ldr	x19, [x19,#72]
ffff8000113a17c4:	eb1302bf 	cmp	x21, x19
ffff8000113a17c8:	d1012273 	sub	x19, x19, #0x48
ffff8000113a17cc:	54fffc61 	b.ne	ffff8000113a1758 <dev_alloc_name_ns+0xc8>
		i = find_first_zero_bit(inuse, max_netdevices);
ffff8000113a17d0:	d2a00101 	mov	x1, #0x80000               	// #524288
ffff8000113a17d4:	aa1703e0 	mov	x0, x23
ffff8000113a17d8:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a17dc:	94000000 	bl	0 <find_next_zero_bit>
			ffff8000113a17dc: R_AARCH64_CALL26	find_next_zero_bit
ffff8000113a17e0:	b90067a0 	str	w0, [x29,#100]
		free_page((unsigned long) inuse);
ffff8000113a17e4:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a17e8:	aa1703e0 	mov	x0, x23
ffff8000113a17ec:	94000000 	bl	0 <free_pages>
			ffff8000113a17ec: R_AARCH64_CALL26	free_pages
	snprintf(buf, IFNAMSIZ, name, i);
ffff8000113a17f0:	b94067a3 	ldr	w3, [x29,#100]
ffff8000113a17f4:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a17f8:	aa1403e2 	mov	x2, x20
ffff8000113a17fc:	aa1603e0 	mov	x0, x22
ffff8000113a1800:	94000000 	bl	0 <snprintf>
			ffff8000113a1800: R_AARCH64_CALL26	snprintf
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a1804:	aa1803e0 	mov	x0, x24
ffff8000113a1808:	aa1603e1 	mov	x1, x22
ffff8000113a180c:	97fff799 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff8000113a1810:	b4000060 	cbz	x0, ffff8000113a181c <dev_alloc_name_ns+0x18c>
	if (!__dev_get_by_name(net, buf))
ffff8000113a1814:	f9401000 	ldr	x0, [x0,#32]
ffff8000113a1818:	b50003a0 	cbnz	x0, ffff8000113a188c <dev_alloc_name_ns+0x1fc>
		return i;
ffff8000113a181c:	b94067b4 	ldr	w20, [x29,#100]
	if (ret >= 0)
ffff8000113a1820:	37f801b4 	tbnz	w20, #31, ffff8000113a1854 <dev_alloc_name_ns+0x1c4>
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a1824:	aa1603e0 	mov	x0, x22
ffff8000113a1828:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a182c:	94000000 	bl	0 <strnlen>
			ffff8000113a182c: R_AARCH64_CALL26	strnlen
	if (p_size <= ret && maxlen != ret)
ffff8000113a1830:	f100401f 	cmp	x0, #0x10
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a1834:	aa0003f3 	mov	x19, x0
	if (p_size <= ret && maxlen != ret)
ffff8000113a1838:	54000368 	b.hi	ffff8000113a18a4 <dev_alloc_name_ns+0x214>
	if (p_size <= ret)
ffff8000113a183c:	540003c0 	b.eq	ffff8000113a18b4 <dev_alloc_name_ns+0x224>
		__builtin_memcpy(p, q, len);
ffff8000113a1840:	aa1b03e0 	mov	x0, x27
ffff8000113a1844:	aa1603e1 	mov	x1, x22
ffff8000113a1848:	aa1303e2 	mov	x2, x19
ffff8000113a184c:	94000000 	bl	0 <memcpy>
			ffff8000113a184c: R_AARCH64_CALL26	memcpy
		p[len] = '\0';
ffff8000113a1850:	38336b7f 	strb	wzr, [x27,x19]
}
ffff8000113a1854:	f9403fa2 	ldr	x2, [x29,#120]
ffff8000113a1858:	f9400341 	ldr	x1, [x26]
			ffff8000113a1858: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a185c:	2a1403e0 	mov	w0, w20
ffff8000113a1860:	eb01005f 	cmp	x2, x1
ffff8000113a1864:	540001c1 	b.ne	ffff8000113a189c <dev_alloc_name_ns+0x20c>
ffff8000113a1868:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a186c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1870:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a1874:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a1878:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a187c:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113a1880:	d65f03c0 	ret
		return -EINVAL;
ffff8000113a1884:	128002b4 	mov	w20, #0xffffffea            	// #-22
ffff8000113a1888:	17fffff3 	b	ffff8000113a1854 <dev_alloc_name_ns+0x1c4>
	return -ENFILE;
ffff8000113a188c:	128002d4 	mov	w20, #0xffffffe9            	// #-23
ffff8000113a1890:	17fffff1 	b	ffff8000113a1854 <dev_alloc_name_ns+0x1c4>
			return -ENOMEM;
ffff8000113a1894:	12800174 	mov	w20, #0xfffffff4            	// #-12
ffff8000113a1898:	17ffffef 	b	ffff8000113a1854 <dev_alloc_name_ns+0x1c4>
}
ffff8000113a189c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a189c: R_AARCH64_CALL26	__stack_chk_fail
	BUG_ON(!net);
ffff8000113a18a0:	d4210000 	brk	#0x800
		fortify_panic(__func__);
ffff8000113a18a4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a18a4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff8000113a18a8:	91000000 	add	x0, x0, #0x0
			ffff8000113a18a8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff8000113a18ac:	91044000 	add	x0, x0, #0x110
ffff8000113a18b0:	94000000 	bl	0 <fortify_panic>
			ffff8000113a18b0: R_AARCH64_CALL26	fortify_panic
		fortify_panic(__func__);
ffff8000113a18b4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a18b4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a18b8:	91000000 	add	x0, x0, #0x0
			ffff8000113a18b8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a18bc:	91002000 	add	x0, x0, #0x8
ffff8000113a18c0:	94000000 	bl	0 <fortify_panic>
			ffff8000113a18c0: R_AARCH64_CALL26	fortify_panic

ffff8000113a18c4 <dev_alloc_name>:
{
ffff8000113a18c4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a18c8:	910003fd 	mov	x29, sp
ffff8000113a18cc:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a18d0:	aa0003f3 	mov	x19, x0
ffff8000113a18d4:	aa1e03e0 	mov	x0, x30
ffff8000113a18d8:	f90017a1 	str	x1, [x29,#40]
ffff8000113a18dc:	94000000 	bl	0 <_mcount>
			ffff8000113a18dc: R_AARCH64_CALL26	_mcount
	return dev_alloc_name_ns(dev_net(dev), dev, name);
ffff8000113a18e0:	f94017a2 	ldr	x2, [x29,#40]
ffff8000113a18e4:	f9427a60 	ldr	x0, [x19,#1264]
ffff8000113a18e8:	aa1303e1 	mov	x1, x19
ffff8000113a18ec:	97ffff69 	bl	ffff8000113a1690 <dev_alloc_name_ns>
}
ffff8000113a18f0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a18f4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a18f8:	d65f03c0 	ret

ffff8000113a18fc <__list_del_entry>:
{
ffff8000113a18fc:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a1900:	910003fd 	mov	x29, sp
ffff8000113a1904:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a1908:	aa0003f3 	mov	x19, x0
	if (!__list_del_entry_valid(entry))
ffff8000113a190c:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a190c: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a1910:	53001c00 	uxtb	w0, w0
ffff8000113a1914:	340000a0 	cbz	w0, ffff8000113a1928 <__list_del_entry+0x2c>
	__list_del(entry->prev, entry->next);
ffff8000113a1918:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a191c:	f9400261 	ldr	x1, [x19]
	next->prev = prev;
ffff8000113a1920:	f9000420 	str	x0, [x1,#8]
ffff8000113a1924:	f9000001 	str	x1, [x0]
}
ffff8000113a1928:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a192c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a1930:	d65f03c0 	ret

ffff8000113a1934 <netdev_exit>:
define_netdev_printk_level(netdev_warn, KERN_WARNING);
define_netdev_printk_level(netdev_notice, KERN_NOTICE);
define_netdev_printk_level(netdev_info, KERN_INFO);

static void __net_exit netdev_exit(struct net *net)
{
ffff8000113a1934:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a1938:	910003fd 	mov	x29, sp
ffff8000113a193c:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a1940:	aa0003f3 	mov	x19, x0
ffff8000113a1944:	aa1e03e0 	mov	x0, x30
ffff8000113a1948:	94000000 	bl	0 <_mcount>
			ffff8000113a1948: R_AARCH64_CALL26	_mcount
	kfree(net->dev_name_head);
ffff8000113a194c:	f9409660 	ldr	x0, [x19,#296]
ffff8000113a1950:	94000000 	bl	0 <kfree>
			ffff8000113a1950: R_AARCH64_CALL26	kfree
	kfree(net->dev_index_head);
ffff8000113a1954:	f9409a60 	ldr	x0, [x19,#304]
ffff8000113a1958:	94000000 	bl	0 <kfree>
			ffff8000113a1958: R_AARCH64_CALL26	kfree
	if (net != &init_net)
ffff8000113a195c:	90000000 	adrp	x0, 0 <init_net>
			ffff8000113a195c: R_AARCH64_ADR_PREL_PG_HI21	init_net
ffff8000113a1960:	91000000 	add	x0, x0, #0x0
			ffff8000113a1960: R_AARCH64_ADD_ABS_LO12_NC	init_net
ffff8000113a1964:	eb00027f 	cmp	x19, x0
ffff8000113a1968:	54000080 	b.eq	ffff8000113a1978 <netdev_exit+0x44>
	__READ_ONCE_SIZE;
ffff8000113a196c:	f8490e60 	ldr	x0, [x19,#144]!
		WARN_ON_ONCE(!list_empty(&net->dev_base_head));
ffff8000113a1970:	eb00027f 	cmp	x19, x0
ffff8000113a1974:	54000081 	b.ne	ffff8000113a1984 <netdev_exit+0x50>
}
ffff8000113a1978:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a197c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a1980:	d65f03c0 	ret
		WARN_ON_ONCE(!list_empty(&net->dev_base_head));
ffff8000113a1984:	d4210000 	brk	#0x800
ffff8000113a1988:	17fffffc 	b	ffff8000113a1978 <netdev_exit+0x44>

ffff8000113a198c <netdev_name.part.103>:
static inline const char *netdev_name(const struct net_device *dev)
ffff8000113a198c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a1990:	910003fd 	mov	x29, sp
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113a1994:	528004a1 	mov	w1, #0x25                  	// #37
static inline const char *netdev_name(const struct net_device *dev)
ffff8000113a1998:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a199c:	aa0003f3 	mov	x19, x0
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113a19a0:	94000000 	bl	0 <strchr>
			ffff8000113a19a0: R_AARCH64_CALL26	strchr
ffff8000113a19a4:	b40000c0 	cbz	x0, ffff8000113a19bc <netdev_name.part.103+0x30>
		return "(unnamed net_device)";
ffff8000113a19a8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a19a8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff8000113a19ac:	91000000 	add	x0, x0, #0x0
			ffff8000113a19ac: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
}
ffff8000113a19b0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a19b4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a19b8:	d65f03c0 	ret
	return dev->name;
ffff8000113a19bc:	aa1303e0 	mov	x0, x19
}
ffff8000113a19c0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a19c4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a19c8:	d65f03c0 	ret

ffff8000113a19cc <skb_checksum_help>:
{
ffff8000113a19cc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a19d0:	910003fd 	mov	x29, sp
ffff8000113a19d4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a19d8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a19dc:	aa0003f3 	mov	x19, x0
ffff8000113a19e0:	aa1e03e0 	mov	x0, x30
ffff8000113a19e4:	94000000 	bl	0 <_mcount>
			ffff8000113a19e4: R_AARCH64_CALL26	_mcount
	if (skb->ip_summed == CHECKSUM_COMPLETE)
ffff8000113a19e8:	39420260 	ldrb	w0, [x19,#128]
ffff8000113a19ec:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a19f0:	7100081f 	cmp	w0, #0x2
ffff8000113a19f4:	54000600 	b.eq	ffff8000113a1ab4 <skb_checksum_help+0xe8>
int skb_checksum_help(struct sk_buff *skb)
ffff8000113a19f8:	f9406274 	ldr	x20, [x19,#192]
	return skb->head + skb->end;
ffff8000113a19fc:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a1a00:	8b000280 	add	x0, x20, x0
	if (unlikely(skb_shinfo(skb)->gso_size)) {
ffff8000113a1a04:	79400801 	ldrh	w1, [x0,#4]
ffff8000113a1a08:	350007a1 	cbnz	w1, ffff8000113a1afc <skb_checksum_help+0x130>
static inline bool skb_has_shared_frag(const struct sk_buff *skb)
ffff8000113a1a0c:	b9407661 	ldr	w1, [x19,#116]
	return skb_is_nonlinear(skb) &&
ffff8000113a1a10:	35000621 	cbnz	w1, ffff8000113a1ad4 <skb_checksum_help+0x108>
	return skb->data - skb->head;
ffff8000113a1a14:	f9406663 	ldr	x3, [x19,#200]
	return skb->csum_start - skb_headroom(skb);
ffff8000113a1a18:	79411260 	ldrh	w0, [x19,#136]
int skb_checksum_help(struct sk_buff *skb)
ffff8000113a1a1c:	b9407262 	ldr	w2, [x19,#112]
	return skb->data - skb->head;
ffff8000113a1a20:	cb140074 	sub	x20, x3, x20
	return skb->csum_start - skb_headroom(skb);
ffff8000113a1a24:	4b140014 	sub	w20, w0, w20
	return skb->len - skb->data_len;
ffff8000113a1a28:	4b010041 	sub	w1, w2, w1
	BUG_ON(offset >= skb_headlen(skb));
ffff8000113a1a2c:	6b01029f 	cmp	w20, w1
ffff8000113a1a30:	54000702 	b.cs	ffff8000113a1b10 <skb_checksum_help+0x144>
	csum = skb_checksum(skb, offset, skb->len - offset, 0);
ffff8000113a1a34:	2a1403e1 	mov	w1, w20
ffff8000113a1a38:	4b140042 	sub	w2, w2, w20
ffff8000113a1a3c:	52800003 	mov	w3, #0x0                   	// #0
ffff8000113a1a40:	aa1303e0 	mov	x0, x19
ffff8000113a1a44:	94000000 	bl	0 <skb_checksum>
			ffff8000113a1a44: R_AARCH64_CALL26	skb_checksum
	offset += skb->csum_offset;
ffff8000113a1a48:	79411661 	ldrh	w1, [x19,#138]
ffff8000113a1a4c:	b9407263 	ldr	w3, [x19,#112]
ffff8000113a1a50:	0b140034 	add	w20, w1, w20
ffff8000113a1a54:	b9407661 	ldr	w1, [x19,#116]
	BUG_ON(offset + sizeof(__sum16) > skb_headlen(skb));
ffff8000113a1a58:	93407e95 	sxtw	x21, w20
ffff8000113a1a5c:	91000aa2 	add	x2, x21, #0x2
ffff8000113a1a60:	4b010061 	sub	w1, w3, w1
ffff8000113a1a64:	eb01005f 	cmp	x2, x1
	csum = skb_checksum(skb, offset, skb->len - offset, 0);
ffff8000113a1a68:	2a0003f6 	mov	w22, w0
	BUG_ON(offset + sizeof(__sum16) > skb_headlen(skb));
ffff8000113a1a6c:	54000508 	b.hi	ffff8000113a1b0c <skb_checksum_help+0x140>
	ret = skb_ensure_writable(skb, offset + sizeof(__sum16));
ffff8000113a1a70:	aa1303e0 	mov	x0, x19
ffff8000113a1a74:	11000a81 	add	w1, w20, #0x2
ffff8000113a1a78:	94000000 	bl	0 <skb_ensure_writable>
			ffff8000113a1a78: R_AARCH64_CALL26	skb_ensure_writable
	if (ret)
ffff8000113a1a7c:	340000a0 	cbz	w0, ffff8000113a1a90 <skb_checksum_help+0xc4>
}
ffff8000113a1a80:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1a84:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1a88:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1a8c:	d65f03c0 	ret
			__u32 len, __u8 proto, __wsum sum);

static inline __sum16 csum_fold(__wsum csum)
{
	u32 sum = (__force u32)csum;
	sum += (sum >> 16) | (sum << 16);
ffff8000113a1a90:	139642c0 	ror	w0, w22, #16
ffff8000113a1a94:	0b160016 	add	w22, w0, w22
	return ~(__force __sum16)(sum >> 16);
ffff8000113a1a98:	2a7643f6 	mvn	w22, w22, lsr #16
ffff8000113a1a9c:	53003ed6 	uxth	w22, w22
	*(__sum16 *)(skb->data + offset) = csum_fold(csum) ?: CSUM_MANGLED_0;
ffff8000113a1aa0:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a1aa4:	6b1f02df 	cmp	w22, wzr
ffff8000113a1aa8:	529fffe1 	mov	w1, #0xffff                	// #65535
ffff8000113a1aac:	1a8112d6 	csel	w22, w22, w1, ne
ffff8000113a1ab0:	78356816 	strh	w22, [x0,x21]
	skb->ip_summed = CHECKSUM_NONE;
ffff8000113a1ab4:	39420261 	ldrb	w1, [x19,#128]
ffff8000113a1ab8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a1abc:	12197421 	and	w1, w1, #0xffffff9f
ffff8000113a1ac0:	39020261 	strb	w1, [x19,#128]
}
ffff8000113a1ac4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1ac8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1acc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1ad0:	d65f03c0 	ret
	       skb_shinfo(skb)->tx_flags & SKBTX_SHARED_FRAG;
ffff8000113a1ad4:	39400c00 	ldrb	w0, [x0,#3]
	return skb_is_nonlinear(skb) &&
ffff8000113a1ad8:	362ff9e0 	tbz	w0, #5, ffff8000113a1a14 <skb_checksum_help+0x48>
	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
ffff8000113a1adc:	aa1303e0 	mov	x0, x19
ffff8000113a1ae0:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a1ae0: R_AARCH64_CALL26	__pskb_pull_tail
ffff8000113a1ae4:	b4000080 	cbz	x0, ffff8000113a1af4 <skb_checksum_help+0x128>
ffff8000113a1ae8:	b9407661 	ldr	w1, [x19,#116]
ffff8000113a1aec:	f9406274 	ldr	x20, [x19,#192]
ffff8000113a1af0:	17ffffc9 	b	ffff8000113a1a14 <skb_checksum_help+0x48>
ffff8000113a1af4:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113a1af8:	17ffffe2 	b	ffff8000113a1a80 <skb_checksum_help+0xb4>
		skb_warn_bad_offload(skb);
ffff8000113a1afc:	aa1303e0 	mov	x0, x19
ffff8000113a1b00:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1b00: R_AARCH64_CALL26	.text.unlikely+0xa4
		return -EINVAL;
ffff8000113a1b04:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a1b08:	17ffffde 	b	ffff8000113a1a80 <skb_checksum_help+0xb4>
	BUG_ON(offset + sizeof(__sum16) > skb_headlen(skb));
ffff8000113a1b0c:	d4210000 	brk	#0x800
	BUG_ON(offset >= skb_headlen(skb));
ffff8000113a1b10:	d4210000 	brk	#0x800

ffff8000113a1b14 <dev_get_valid_name>:
{
ffff8000113a1b14:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1b18:	910003fd 	mov	x29, sp
ffff8000113a1b1c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1b20:	f90013f5 	str	x21, [sp,#32]
ffff8000113a1b24:	aa0003f4 	mov	x20, x0
ffff8000113a1b28:	aa1e03e0 	mov	x0, x30
ffff8000113a1b2c:	aa0103f5 	mov	x21, x1
ffff8000113a1b30:	aa0203f3 	mov	x19, x2
ffff8000113a1b34:	94000000 	bl	0 <_mcount>
			ffff8000113a1b34: R_AARCH64_CALL26	_mcount
	BUG_ON(!net);
ffff8000113a1b38:	b4000514 	cbz	x20, ffff8000113a1bd8 <dev_get_valid_name+0xc4>
	if (!dev_valid_name(name))
ffff8000113a1b3c:	aa1303e0 	mov	x0, x19
ffff8000113a1b40:	94000000 	bl	ffff8000113a15b0 <dev_valid_name>
			ffff8000113a1b40: R_AARCH64_CALL26	dev_valid_name
ffff8000113a1b44:	53001c00 	uxtb	w0, w0
ffff8000113a1b48:	340003c0 	cbz	w0, ffff8000113a1bc0 <dev_get_valid_name+0xac>
	if (strchr(name, '%'))
ffff8000113a1b4c:	aa1303e0 	mov	x0, x19
ffff8000113a1b50:	528004a1 	mov	w1, #0x25                  	// #37
ffff8000113a1b54:	94000000 	bl	0 <strchr>
			ffff8000113a1b54: R_AARCH64_CALL26	strchr
ffff8000113a1b58:	b4000120 	cbz	x0, ffff8000113a1b7c <dev_get_valid_name+0x68>
		return dev_alloc_name_ns(net, dev, name);
ffff8000113a1b5c:	aa1403e0 	mov	x0, x20
ffff8000113a1b60:	aa1503e1 	mov	x1, x21
ffff8000113a1b64:	aa1303e2 	mov	x2, x19
ffff8000113a1b68:	97fffeca 	bl	ffff8000113a1690 <dev_alloc_name_ns>
}
ffff8000113a1b6c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1b70:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a1b74:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1b78:	d65f03c0 	ret
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a1b7c:	aa1403e0 	mov	x0, x20
ffff8000113a1b80:	aa1303e1 	mov	x1, x19
ffff8000113a1b84:	97fff6bb 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff8000113a1b88:	b4000060 	cbz	x0, ffff8000113a1b94 <dev_get_valid_name+0x80>
	else if (__dev_get_by_name(net, name))
ffff8000113a1b8c:	f9401000 	ldr	x0, [x0,#32]
ffff8000113a1b90:	b50001c0 	cbnz	x0, ffff8000113a1bc8 <dev_get_valid_name+0xb4>
	else if (dev->name != name)
ffff8000113a1b94:	eb15027f 	cmp	x19, x21
ffff8000113a1b98:	540001c0 	b.eq	ffff8000113a1bd0 <dev_get_valid_name+0xbc>
		return __real_strlcpy(p, q, size);
ffff8000113a1b9c:	aa1303e1 	mov	x1, x19
ffff8000113a1ba0:	aa1503e0 	mov	x0, x21
ffff8000113a1ba4:	d2800202 	mov	x2, #0x10                  	// #16
ffff8000113a1ba8:	94000000 	bl	0 <strlcpy>
			ffff8000113a1ba8: R_AARCH64_CALL26	strlcpy
	return 0;
ffff8000113a1bac:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a1bb0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1bb4:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a1bb8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1bbc:	d65f03c0 	ret
		return -EINVAL;
ffff8000113a1bc0:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a1bc4:	17ffffea 	b	ffff8000113a1b6c <dev_get_valid_name+0x58>
		return -EEXIST;
ffff8000113a1bc8:	12800200 	mov	w0, #0xffffffef            	// #-17
ffff8000113a1bcc:	17ffffe8 	b	ffff8000113a1b6c <dev_get_valid_name+0x58>
	return 0;
ffff8000113a1bd0:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a1bd4:	17ffffe6 	b	ffff8000113a1b6c <dev_get_valid_name+0x58>
	BUG_ON(!net);
ffff8000113a1bd8:	d4210000 	brk	#0x800

ffff8000113a1bdc <remove_xps_queue_cpu.isra.105>:
static bool remove_xps_queue_cpu(struct net_device *dev,
ffff8000113a1bdc:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a1be0:	910003fd 	mov	x29, sp
ffff8000113a1be4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1be8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a1bec:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a1bf0:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a1bf4:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a1bf8:	13003c1b 	sxth	w27, w0
ffff8000113a1bfc:	aa1e03e0 	mov	x0, x30
ffff8000113a1c00:	f90033a2 	str	x2, [x29,#96]
ffff8000113a1c04:	aa0103f5 	mov	x21, x1
ffff8000113a1c08:	53003c7c 	uxth	w28, w3
ffff8000113a1c0c:	53003c98 	uxth	w24, w4
ffff8000113a1c10:	94000000 	bl	0 <_mcount>
			ffff8000113a1c10: R_AARCH64_CALL26	_mcount
	int num_tc = dev->num_tc ? : 1;
ffff8000113a1c14:	f94033a2 	ldr	x2, [x29,#96]
ffff8000113a1c18:	3500053b 	cbnz	w27, ffff8000113a1cbc <remove_xps_queue_cpu.isra.105+0xe0>
ffff8000113a1c1c:	2a1b03f9 	mov	w25, w27
ffff8000113a1c20:	5280003b 	mov	w27, #0x1                   	// #1
ffff8000113a1c24:	2a1903f9 	mov	w25, w25
	for (tci = cpu * num_tc; num_tc--; tci++) {
ffff8000113a1c28:	d2800016 	mov	x22, #0x0                   	// #0
ffff8000113a1c2c:	91000739 	add	x25, x25, #0x1
ffff8000113a1c30:	1b027f7b 	mul	w27, w27, w2
ffff8000113a1c34:	5100071a 	sub	w26, w24, #0x1
ffff8000113a1c38:	f90037b9 	str	x25, [x29,#104]
	bool active = false;
ffff8000113a1c3c:	2a1603f7 	mov	w23, w22
ffff8000113a1c40:	0b160374 	add	w20, w27, w22
		for (i = count, j = offset; i--; j++) {
ffff8000113a1c44:	2a1c03f3 	mov	w19, w28
ffff8000113a1c48:	2a1a03f9 	mov	w25, w26
ffff8000113a1c4c:	350000d8 	cbnz	w24, ffff8000113a1c64 <remove_xps_queue_cpu.isra.105+0x88>
ffff8000113a1c50:	14000019 	b	ffff8000113a1cb4 <remove_xps_queue_cpu.isra.105+0xd8>
ffff8000113a1c54:	51000739 	sub	w25, w25, #0x1
ffff8000113a1c58:	3100073f 	cmn	w25, #0x1
ffff8000113a1c5c:	53003e73 	uxth	w19, w19
ffff8000113a1c60:	540002a0 	b.eq	ffff8000113a1cb4 <remove_xps_queue_cpu.isra.105+0xd8>
			if (!remove_xps_queue(dev_maps, tci, j))
ffff8000113a1c64:	2a1303e2 	mov	w2, w19
ffff8000113a1c68:	aa1503e0 	mov	x0, x21
ffff8000113a1c6c:	2a1403e1 	mov	w1, w20
ffff8000113a1c70:	97fff8eb 	bl	ffff8000113a001c <remove_xps_queue>
ffff8000113a1c74:	53001c00 	uxtb	w0, w0
ffff8000113a1c78:	11000673 	add	w19, w19, #0x1
ffff8000113a1c7c:	35fffec0 	cbnz	w0, ffff8000113a1c54 <remove_xps_queue_cpu.isra.105+0x78>
ffff8000113a1c80:	2a597ef7 	orr	w23, w23, w25, lsr #31
	for (tci = cpu * num_tc; num_tc--; tci++) {
ffff8000113a1c84:	f94037a0 	ldr	x0, [x29,#104]
ffff8000113a1c88:	910006d6 	add	x22, x22, #0x1
ffff8000113a1c8c:	eb0002df 	cmp	x22, x0
ffff8000113a1c90:	54fffd81 	b.ne	ffff8000113a1c40 <remove_xps_queue_cpu.isra.105+0x64>
}
ffff8000113a1c94:	2a1703e0 	mov	w0, w23
ffff8000113a1c98:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1c9c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1ca0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a1ca4:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a1ca8:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a1cac:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a1cb0:	d65f03c0 	ret
			if (!remove_xps_queue(dev_maps, tci, j))
ffff8000113a1cb4:	52800037 	mov	w23, #0x1                   	// #1
ffff8000113a1cb8:	17fffff3 	b	ffff8000113a1c84 <remove_xps_queue_cpu.isra.105+0xa8>
ffff8000113a1cbc:	51000779 	sub	w25, w27, #0x1
ffff8000113a1cc0:	17ffffd9 	b	ffff8000113a1c24 <remove_xps_queue_cpu.isra.105+0x48>

ffff8000113a1cc4 <netdev_state_change>:
{
ffff8000113a1cc4:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a1cc8:	910003fd 	mov	x29, sp
ffff8000113a1ccc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1cd0:	aa0003f4 	mov	x20, x0
ffff8000113a1cd4:	aa1e03e0 	mov	x0, x30
ffff8000113a1cd8:	94000000 	bl	0 <_mcount>
			ffff8000113a1cd8: R_AARCH64_CALL26	_mcount
ffff8000113a1cdc:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113a1cdc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a1ce0:	f9400261 	ldr	x1, [x19]
			ffff8000113a1ce0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (dev->flags & IFF_UP) {
ffff8000113a1ce4:	b9422a80 	ldr	w0, [x20,#552]
{
ffff8000113a1ce8:	f9001fa1 	str	x1, [x29,#56]
	if (dev->flags & IFF_UP) {
ffff8000113a1cec:	36000180 	tbz	w0, #0, ffff8000113a1d1c <netdev_state_change+0x58>
		struct netdev_notifier_change_info change_info = {
ffff8000113a1cf0:	a9027fbf 	stp	xzr, xzr, [x29,#32]
		call_netdevice_notifiers_info(NETDEV_CHANGE,
ffff8000113a1cf4:	910083a1 	add	x1, x29, #0x20
ffff8000113a1cf8:	d2800080 	mov	x0, #0x4                   	// #4
		struct netdev_notifier_change_info change_info = {
ffff8000113a1cfc:	f9001bbf 	str	xzr, [x29,#48]
ffff8000113a1d00:	f90013b4 	str	x20, [x29,#32]
		call_netdevice_notifiers_info(NETDEV_CHANGE,
ffff8000113a1d04:	97fff8fd 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
		rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL);
ffff8000113a1d08:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113a1d0c:	aa1403e1 	mov	x1, x20
ffff8000113a1d10:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a1d14:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113a1d18:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113a1d18: R_AARCH64_CALL26	rtmsg_ifinfo
}
ffff8000113a1d1c:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a1d20:	f9400260 	ldr	x0, [x19]
			ffff8000113a1d20: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a1d24:	eb00003f 	cmp	x1, x0
ffff8000113a1d28:	54000081 	b.ne	ffff8000113a1d38 <netdev_state_change+0x74>
ffff8000113a1d2c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1d30:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a1d34:	d65f03c0 	ret
ffff8000113a1d38:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a1d38: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a1d3c <dev_set_mac_address>:
{
ffff8000113a1d3c:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a1d40:	910003fd 	mov	x29, sp
ffff8000113a1d44:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1d48:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a1d4c:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a1d50:	aa0003f3 	mov	x19, x0
ffff8000113a1d54:	aa1e03e0 	mov	x0, x30
ffff8000113a1d58:	aa0103f5 	mov	x21, x1
ffff8000113a1d5c:	f90027a2 	str	x2, [x29,#72]
ffff8000113a1d60:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113a1d60: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a1d64:	94000000 	bl	0 <_mcount>
			ffff8000113a1d64: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113a1d68:	f940fa77 	ldr	x23, [x19,#496]
{
ffff8000113a1d6c:	f94002c1 	ldr	x1, [x22]
			ffff8000113a1d6c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (!ops->ndo_set_mac_address)
ffff8000113a1d70:	f94026e0 	ldr	x0, [x23,#72]
{
ffff8000113a1d74:	f90037a1 	str	x1, [x29,#104]
	if (!ops->ndo_set_mac_address)
ffff8000113a1d78:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113a1d7c:	b4000560 	cbz	x0, ffff8000113a1e28 <dev_set_mac_address+0xec>
	if (sa->sa_family != dev->type)
ffff8000113a1d80:	794002a1 	ldrh	w1, [x21]
ffff8000113a1d84:	79448a60 	ldrh	w0, [x19,#580]
ffff8000113a1d88:	6b00003f 	cmp	w1, w0
ffff8000113a1d8c:	54000461 	b.ne	ffff8000113a1e18 <dev_set_mac_address+0xdc>
ffff8000113a1d90:	f9402260 	ldr	x0, [x19,#64]
	if (!netif_device_present(dev))
ffff8000113a1d94:	36080460 	tbz	w0, #1, ffff8000113a1e20 <dev_set_mac_address+0xe4>
	err = dev_pre_changeaddr_notify(dev, sa->sa_data, extack);
ffff8000113a1d98:	aa1303e0 	mov	x0, x19
ffff8000113a1d9c:	91000aa1 	add	x1, x21, #0x2
ffff8000113a1da0:	94000000 	bl	ffff8000113a0380 <dev_pre_changeaddr_notify>
			ffff8000113a1da0: R_AARCH64_CALL26	dev_pre_changeaddr_notify
ffff8000113a1da4:	2a0003f4 	mov	w20, w0
	if (err)
ffff8000113a1da8:	34000160 	cbz	w0, ffff8000113a1dd4 <dev_set_mac_address+0x98>
}
ffff8000113a1dac:	f94037a2 	ldr	x2, [x29,#104]
ffff8000113a1db0:	f94002c1 	ldr	x1, [x22]
			ffff8000113a1db0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a1db4:	2a1403e0 	mov	w0, w20
ffff8000113a1db8:	eb01005f 	cmp	x2, x1
ffff8000113a1dbc:	540003a1 	b.ne	ffff8000113a1e30 <dev_set_mac_address+0xf4>
ffff8000113a1dc0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1dc4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1dc8:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a1dcc:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a1dd0:	d65f03c0 	ret
	err = ops->ndo_set_mac_address(dev, sa);
ffff8000113a1dd4:	f94026e2 	ldr	x2, [x23,#72]
ffff8000113a1dd8:	aa1303e0 	mov	x0, x19
ffff8000113a1ddc:	aa1503e1 	mov	x1, x21
ffff8000113a1de0:	d63f0040 	blr	x2
ffff8000113a1de4:	2a0003f4 	mov	w20, w0
	if (err)
ffff8000113a1de8:	35fffe20 	cbnz	w0, ffff8000113a1dac <dev_set_mac_address+0x70>
	dev->addr_assign_type = NET_ADDR_SET;
ffff8000113a1dec:	52800060 	mov	w0, #0x3                   	// #3
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a1df0:	910163a1 	add	x1, x29, #0x58
	dev->addr_assign_type = NET_ADDR_SET;
ffff8000113a1df4:	3909ba60 	strb	w0, [x19,#622]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a1df8:	d2800100 	mov	x0, #0x8                   	// #8
	struct netdev_notifier_info info = {
ffff8000113a1dfc:	f9002fb3 	str	x19, [x29,#88]
ffff8000113a1e00:	f90033bf 	str	xzr, [x29,#96]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a1e04:	97fff8bd 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	add_device_randomness(dev->dev_addr, dev->addr_len);
ffff8000113a1e08:	f9418e60 	ldr	x0, [x19,#792]
ffff8000113a1e0c:	3949be61 	ldrb	w1, [x19,#623]
ffff8000113a1e10:	94000000 	bl	0 <add_device_randomness>
			ffff8000113a1e10: R_AARCH64_CALL26	add_device_randomness
ffff8000113a1e14:	17ffffe6 	b	ffff8000113a1dac <dev_set_mac_address+0x70>
		return -EINVAL;
ffff8000113a1e18:	128002b4 	mov	w20, #0xffffffea            	// #-22
ffff8000113a1e1c:	17ffffe4 	b	ffff8000113a1dac <dev_set_mac_address+0x70>
		return -ENODEV;
ffff8000113a1e20:	12800254 	mov	w20, #0xffffffed            	// #-19
ffff8000113a1e24:	17ffffe2 	b	ffff8000113a1dac <dev_set_mac_address+0x70>
		return -EOPNOTSUPP;
ffff8000113a1e28:	12800bd4 	mov	w20, #0xffffffa1            	// #-95
ffff8000113a1e2c:	17ffffe0 	b	ffff8000113a1dac <dev_set_mac_address+0x70>
}
ffff8000113a1e30:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a1e30: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a1e34 <__unregister_netdevice_notifier_net>:
{
ffff8000113a1e34:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1e38:	910003fd 	mov	x29, sp
ffff8000113a1e3c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1e40:	f90013f5 	str	x21, [sp,#32]
ffff8000113a1e44:	aa0003f4 	mov	x20, x0
ffff8000113a1e48:	aa1e03e0 	mov	x0, x30
ffff8000113a1e4c:	aa0103f5 	mov	x21, x1
ffff8000113a1e50:	94000000 	bl	0 <_mcount>
			ffff8000113a1e50: R_AARCH64_CALL26	_mcount
	err = raw_notifier_chain_unregister(&net->netdev_chain, nb);
ffff8000113a1e54:	9104e280 	add	x0, x20, #0x138
ffff8000113a1e58:	aa1503e1 	mov	x1, x21
ffff8000113a1e5c:	94000000 	bl	0 <raw_notifier_chain_unregister>
			ffff8000113a1e5c: R_AARCH64_CALL26	raw_notifier_chain_unregister
	if (err)
ffff8000113a1e60:	350001a0 	cbnz	w0, ffff8000113a1e94 <__unregister_netdevice_notifier_net+0x60>
	for_each_netdev(net, dev)
ffff8000113a1e64:	f8490e93 	ldr	x19, [x20,#144]!
ffff8000113a1e68:	eb13029f 	cmp	x20, x19
ffff8000113a1e6c:	d1012273 	sub	x19, x19, #0x48
ffff8000113a1e70:	54000100 	b.eq	ffff8000113a1e90 <__unregister_netdevice_notifier_net+0x5c>
		call_netdevice_unregister_notifiers(nb, dev);
ffff8000113a1e74:	aa1303e1 	mov	x1, x19
ffff8000113a1e78:	aa1503e0 	mov	x0, x21
ffff8000113a1e7c:	97fff1b1 	bl	ffff80001139e540 <call_netdevice_unregister_notifiers>
	for_each_netdev(net, dev)
ffff8000113a1e80:	f9402673 	ldr	x19, [x19,#72]
ffff8000113a1e84:	eb13029f 	cmp	x20, x19
ffff8000113a1e88:	d1012273 	sub	x19, x19, #0x48
ffff8000113a1e8c:	54ffff41 	b.ne	ffff8000113a1e74 <__unregister_netdevice_notifier_net+0x40>
ffff8000113a1e90:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a1e94:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1e98:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a1e9c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1ea0:	d65f03c0 	ret

ffff8000113a1ea4 <unregister_netdevice_notifier_net>:
{
ffff8000113a1ea4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1ea8:	910003fd 	mov	x29, sp
ffff8000113a1eac:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a1eb0:	aa0003f3 	mov	x19, x0
ffff8000113a1eb4:	aa1e03e0 	mov	x0, x30
ffff8000113a1eb8:	f90017a1 	str	x1, [x29,#40]
ffff8000113a1ebc:	94000000 	bl	0 <_mcount>
			ffff8000113a1ebc: R_AARCH64_CALL26	_mcount
	rtnl_lock();
ffff8000113a1ec0:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a1ec0: R_AARCH64_CALL26	rtnl_lock
	err = __unregister_netdevice_notifier_net(net, nb);
ffff8000113a1ec4:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a1ec8:	aa1303e0 	mov	x0, x19
ffff8000113a1ecc:	97ffffda 	bl	ffff8000113a1e34 <__unregister_netdevice_notifier_net>
	rtnl_unlock();
ffff8000113a1ed0:	f90017a0 	str	x0, [x29,#40]
ffff8000113a1ed4:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a1ed4: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a1ed8:	f94017a0 	ldr	x0, [x29,#40]
ffff8000113a1edc:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a1ee0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1ee4:	d65f03c0 	ret

ffff8000113a1ee8 <netdev_rx_csum_fault>:
{
ffff8000113a1ee8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a1eec:	910003fd 	mov	x29, sp
ffff8000113a1ef0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1ef4:	aa0003f3 	mov	x19, x0
ffff8000113a1ef8:	aa1e03e0 	mov	x0, x30
ffff8000113a1efc:	aa0103f4 	mov	x20, x1
ffff8000113a1f00:	94000000 	bl	0 <_mcount>
			ffff8000113a1f00: R_AARCH64_CALL26	_mcount
	if (net_ratelimit()) {
ffff8000113a1f04:	94000000 	bl	0 <net_ratelimit>
			ffff8000113a1f04: R_AARCH64_CALL26	net_ratelimit
ffff8000113a1f08:	35000080 	cbnz	w0, ffff8000113a1f18 <netdev_rx_csum_fault+0x30>
}
ffff8000113a1f0c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1f10:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a1f14:	d65f03c0 	ret
		pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
ffff8000113a1f18:	b4000193 	cbz	x19, ffff8000113a1f48 <netdev_rx_csum_fault+0x60>
ffff8000113a1f1c:	aa1303e1 	mov	x1, x19
ffff8000113a1f20:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1f20: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x210
ffff8000113a1f24:	91000000 	add	x0, x0, #0x0
			ffff8000113a1f24: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x210
ffff8000113a1f28:	94000000 	bl	0 <printk>
			ffff8000113a1f28: R_AARCH64_CALL26	printk
		skb_dump(KERN_ERR, skb, true);
ffff8000113a1f2c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1f2c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1e8
ffff8000113a1f30:	91000000 	add	x0, x0, #0x0
			ffff8000113a1f30: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1e8
ffff8000113a1f34:	aa1403e1 	mov	x1, x20
ffff8000113a1f38:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a1f3c:	94000000 	bl	0 <skb_dump>
			ffff8000113a1f3c: R_AARCH64_CALL26	skb_dump
		dump_stack();
ffff8000113a1f40:	94000000 	bl	0 <dump_stack>
			ffff8000113a1f40: R_AARCH64_CALL26	dump_stack
ffff8000113a1f44:	17fffff2 	b	ffff8000113a1f0c <netdev_rx_csum_fault+0x24>
		pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
ffff8000113a1f48:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a1f48: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x200
ffff8000113a1f4c:	91000021 	add	x1, x1, #0x0
			ffff8000113a1f4c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x200
ffff8000113a1f50:	17fffff4 	b	ffff8000113a1f20 <netdev_rx_csum_fault+0x38>

ffff8000113a1f54 <__skb_gro_checksum_complete>:
{
ffff8000113a1f54:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a1f58:	910003fd 	mov	x29, sp
ffff8000113a1f5c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a1f60:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a1f64:	aa0003f4 	mov	x20, x0
	return NAPI_GRO_CB(skb)->data_offset;
ffff8000113a1f68:	9100a013 	add	x19, x0, #0x28
ffff8000113a1f6c:	aa1e03e0 	mov	x0, x30
ffff8000113a1f70:	94000000 	bl	0 <_mcount>
			ffff8000113a1f70: R_AARCH64_CALL26	_mcount
ffff8000113a1f74:	b9400e61 	ldr	w1, [x19,#12]
	return skb->len - NAPI_GRO_CB(skb)->data_offset;
ffff8000113a1f78:	b9407282 	ldr	w2, [x20,#112]
	wsum = skb_checksum(skb, skb_gro_offset(skb), skb_gro_len(skb), 0);
ffff8000113a1f7c:	aa1403e0 	mov	x0, x20
ffff8000113a1f80:	4b010042 	sub	w2, w2, w1
ffff8000113a1f84:	52800003 	mov	w3, #0x0                   	// #0
ffff8000113a1f88:	94000000 	bl	0 <skb_checksum>
			ffff8000113a1f88: R_AARCH64_CALL26	skb_checksum

#ifndef HAVE_ARCH_CSUM_ADD
static inline __wsum csum_add(__wsum csum, __wsum addend)
{
	u32 res = (__force u32)csum;
	res += (__force u32)addend;
ffff8000113a1f8c:	b9402676 	ldr	w22, [x19,#36]
ffff8000113a1f90:	2a0003f5 	mov	w21, w0
ffff8000113a1f94:	0b160016 	add	w22, w0, w22
	return (__force __wsum)(res + (res < (__force u32)addend));
ffff8000113a1f98:	6b16001f 	cmp	w0, w22
ffff8000113a1f9c:	1a9696d6 	cinc	w22, w22, hi
	sum += (sum >> 16) | (sum << 16);
ffff8000113a1fa0:	139642c0 	ror	w0, w22, #16
ffff8000113a1fa4:	0b160016 	add	w22, w0, w22
	return ~(__force __sum16)(sum >> 16);
ffff8000113a1fa8:	2a7643f6 	mvn	w22, w22, lsr #16
ffff8000113a1fac:	53003ed6 	uxth	w22, w22
	if (likely(!sum)) {
ffff8000113a1fb0:	350000b6 	cbnz	w22, ffff8000113a1fc4 <__skb_gro_checksum_complete+0x70>
		if (unlikely(skb->ip_summed == CHECKSUM_COMPLETE) &&
ffff8000113a1fb4:	39420280 	ldrb	w0, [x20,#128]
ffff8000113a1fb8:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a1fbc:	7100081f 	cmp	w0, #0x2
ffff8000113a1fc0:	54000140 	b.eq	ffff8000113a1fe8 <__skb_gro_checksum_complete+0x94>
	NAPI_GRO_CB(skb)->csum_valid = 1;
ffff8000113a1fc4:	39408a60 	ldrb	w0, [x19,#34]
	NAPI_GRO_CB(skb)->csum = wsum;
ffff8000113a1fc8:	b9002675 	str	w21, [x19,#36]
	NAPI_GRO_CB(skb)->csum_valid = 1;
ffff8000113a1fcc:	321e0000 	orr	w0, w0, #0x4
ffff8000113a1fd0:	39008a60 	strb	w0, [x19,#34]
}
ffff8000113a1fd4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a1fd8:	2a1603e0 	mov	w0, w22
ffff8000113a1fdc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a1fe0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a1fe4:	d65f03c0 	ret
		    !skb->csum_complete_sw)
ffff8000113a1fe8:	39420a80 	ldrb	w0, [x20,#130]
		if (unlikely(skb->ip_summed == CHECKSUM_COMPLETE) &&
ffff8000113a1fec:	370ffec0 	tbnz	w0, #1, ffff8000113a1fc4 <__skb_gro_checksum_complete+0x70>
			netdev_rx_csum_fault(skb->dev, skb);
ffff8000113a1ff0:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113a1ff4:	aa1403e1 	mov	x1, x20
ffff8000113a1ff8:	94000000 	bl	ffff8000113a1ee8 <netdev_rx_csum_fault>
			ffff8000113a1ff8: R_AARCH64_CALL26	netdev_rx_csum_fault
ffff8000113a1ffc:	17fffff2 	b	ffff8000113a1fc4 <__skb_gro_checksum_complete+0x70>

ffff8000113a2000 <napi_get_frags>:
{
ffff8000113a2000:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a2004:	910003fd 	mov	x29, sp
ffff8000113a2008:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a200c:	aa0003f3 	mov	x19, x0
ffff8000113a2010:	aa1e03e0 	mov	x0, x30
ffff8000113a2014:	94000000 	bl	0 <_mcount>
			ffff8000113a2014: R_AARCH64_CALL26	_mcount
	struct sk_buff *skb = napi->skb;
ffff8000113a2018:	f9408260 	ldr	x0, [x19,#256]
	if (!skb) {
ffff8000113a201c:	b4000080 	cbz	x0, ffff8000113a202c <napi_get_frags+0x2c>
}
ffff8000113a2020:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a2024:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a2028:	d65f03c0 	ret
	return __napi_alloc_skb(napi, length, GFP_ATOMIC);
ffff8000113a202c:	aa1303e0 	mov	x0, x19
ffff8000113a2030:	52802601 	mov	w1, #0x130                 	// #304
ffff8000113a2034:	52814402 	mov	w2, #0xa20                 	// #2592
ffff8000113a2038:	94000000 	bl	0 <__napi_alloc_skb>
			ffff8000113a2038: R_AARCH64_CALL26	__napi_alloc_skb
		if (skb) {
ffff8000113a203c:	b4ffff20 	cbz	x0, ffff8000113a2020 <napi_get_frags+0x20>
struct sk_buff *napi_get_frags(struct napi_struct *napi)
ffff8000113a2040:	b9418261 	ldr	w1, [x19,#384]
			napi->skb = skb;
ffff8000113a2044:	f9008260 	str	x0, [x19,#256]
/* used in the NIC receive handler to mark the skb */
static inline void skb_mark_napi_id(struct sk_buff *skb,
				    struct napi_struct *napi)
{
#ifdef CONFIG_NET_RX_BUSY_POLL
	skb->napi_id = napi->napi_id;
ffff8000113a2048:	b9009c01 	str	w1, [x0,#156]
ffff8000113a204c:	17fffff5 	b	ffff8000113a2020 <napi_get_frags+0x20>

ffff8000113a2050 <__dev_forward_skb>:
{
ffff8000113a2050:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a2054:	910003fd 	mov	x29, sp
ffff8000113a2058:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a205c:	aa0003f4 	mov	x20, x0
ffff8000113a2060:	aa0103f3 	mov	x19, x1
ffff8000113a2064:	aa1e03e0 	mov	x0, x30
ffff8000113a2068:	94000000 	bl	0 <_mcount>
			ffff8000113a2068: R_AARCH64_CALL26	_mcount
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a206c:	b40000d3 	cbz	x19, ffff8000113a2084 <__dev_forward_skb+0x34>
	return skb->head + skb->end;
ffff8000113a2070:	f9406261 	ldr	x1, [x19,#192]
ffff8000113a2074:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a2078:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a207c:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113a2080:	37180341 	tbnz	w1, #3, ffff8000113a20e8 <__dev_forward_skb+0x98>
	    unlikely(!is_skb_forwardable(dev, skb))) {
ffff8000113a2084:	aa1403e0 	mov	x0, x20
ffff8000113a2088:	aa1303e1 	mov	x1, x19
ffff8000113a208c:	94000000 	bl	ffff8000113a1540 <is_skb_forwardable>
			ffff8000113a208c: R_AARCH64_CALL26	is_skb_forwardable
ffff8000113a2090:	53001c00 	uxtb	w0, w0
	if (skb_orphan_frags(skb, GFP_ATOMIC) ||
ffff8000113a2094:	34000420 	cbz	w0, ffff8000113a2118 <__dev_forward_skb+0xc8>
	skb_scrub_packet(skb, true);
ffff8000113a2098:	aa1303e0 	mov	x0, x19
ffff8000113a209c:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a20a0:	94000000 	bl	0 <skb_scrub_packet>
			ffff8000113a20a0: R_AARCH64_CALL26	skb_scrub_packet
		skb->protocol = eth_type_trans(skb, dev);
ffff8000113a20a4:	aa1403e1 	mov	x1, x20
ffff8000113a20a8:	aa1303e0 	mov	x0, x19
	skb->priority = 0;
ffff8000113a20ac:	b9008e7f 	str	wzr, [x19,#140]
ffff8000113a20b0:	94000000 	bl	0 <eth_type_trans>
			ffff8000113a20b0: R_AARCH64_CALL26	eth_type_trans
	if (skb->ip_summed == CHECKSUM_COMPLETE)
ffff8000113a20b4:	39420262 	ldrb	w2, [x19,#128]
ffff8000113a20b8:	79016260 	strh	w0, [x19,#176]
ffff8000113a20bc:	d3451841 	ubfx	x1, x2, #5, #2
ffff8000113a20c0:	7100083f 	cmp	w1, #0x2
#define _LINUX_IF_ETHER_H

#include <linux/skbuff.h>
#include <uapi/linux/if_ether.h>

static inline struct ethhdr *eth_hdr(const struct sk_buff *skb)
ffff8000113a20c4:	79416e60 	ldrh	w0, [x19,#182]
ffff8000113a20c8:	f9406263 	ldr	x3, [x19,#192]
ffff8000113a20cc:	540004e0 	b.eq	ffff8000113a2168 <__dev_forward_skb+0x118>
	else if (skb->ip_summed == CHECKSUM_PARTIAL &&
ffff8000113a20d0:	71000c3f 	cmp	w1, #0x3
	return 0;
ffff8000113a20d4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a20d8:	54000340 	b.eq	ffff8000113a2140 <__dev_forward_skb+0xf0>
}
ffff8000113a20dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a20e0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a20e4:	d65f03c0 	ret
	return is_zcopy ? skb_uarg(skb) : NULL;
ffff8000113a20e8:	f9401400 	ldr	x0, [x0,#40]
	if (likely(!skb_zcopy(skb)))
ffff8000113a20ec:	b4fffcc0 	cbz	x0, ffff8000113a2084 <__dev_forward_skb+0x34>
	if (!skb_zcopy_is_nouarg(skb) &&
ffff8000113a20f0:	370000c0 	tbnz	w0, #0, ffff8000113a2108 <__dev_forward_skb+0xb8>
ffff8000113a20f4:	f9400001 	ldr	x1, [x0]
ffff8000113a20f8:	90000000 	adrp	x0, 0 <sock_zerocopy_callback>
			ffff8000113a20f8: R_AARCH64_ADR_PREL_PG_HI21	sock_zerocopy_callback
ffff8000113a20fc:	91000000 	add	x0, x0, #0x0
			ffff8000113a20fc: R_AARCH64_ADD_ABS_LO12_NC	sock_zerocopy_callback
ffff8000113a2100:	eb00003f 	cmp	x1, x0
ffff8000113a2104:	54fffc00 	b.eq	ffff8000113a2084 <__dev_forward_skb+0x34>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113a2108:	aa1303e0 	mov	x0, x19
ffff8000113a210c:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113a2110:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113a2110: R_AARCH64_CALL26	skb_copy_ubufs
	if (skb_orphan_frags(skb, GFP_ATOMIC) ||
ffff8000113a2114:	34fffb80 	cbz	w0, ffff8000113a2084 <__dev_forward_skb+0x34>
ATOMIC64_OPS(add, add, I)
ffff8000113a2118:	91070282 	add	x2, x20, #0x1c0
ffff8000113a211c:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a2120:	c85f7c40 	ldxr	x0, [x2]
ffff8000113a2124:	91000400 	add	x0, x0, #0x1
ffff8000113a2128:	c8017c40 	stxr	w1, x0, [x2]
ffff8000113a212c:	35ffffa1 	cbnz	w1, ffff8000113a2120 <__dev_forward_skb+0xd0>
		kfree_skb(skb);
ffff8000113a2130:	aa1303e0 	mov	x0, x19
ffff8000113a2134:	94000000 	bl	0 <kfree_skb>
			ffff8000113a2134: R_AARCH64_CALL26	kfree_skb
		return NET_RX_DROP;
ffff8000113a2138:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113a213c:	17ffffe8 	b	ffff8000113a20dc <__dev_forward_skb+0x8c>
	return skb->csum_start - skb_headroom(skb);
ffff8000113a2140:	79411264 	ldrh	w4, [x19,#136]
	return skb->data - skb->head;
ffff8000113a2144:	f9406661 	ldr	x1, [x19,#200]
	return skb->csum_start - skb_headroom(skb);
ffff8000113a2148:	4b010081 	sub	w1, w4, w1
	else if (skb->ip_summed == CHECKSUM_PARTIAL &&
ffff8000113a214c:	2b03003f 	cmn	w1, w3
ffff8000113a2150:	54fffc65 	b.pl	ffff8000113a20dc <__dev_forward_skb+0x8c>
		skb->ip_summed = CHECKSUM_NONE;
ffff8000113a2154:	12197442 	and	w2, w2, #0xffffff9f
ffff8000113a2158:	39020262 	strb	w2, [x19,#128]
ffff8000113a215c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2160:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a2164:	d65f03c0 	ret
		skb->csum = csum_block_sub(skb->csum,
ffff8000113a2168:	528001c1 	mov	w1, #0xe                   	// #14
ffff8000113a216c:	8b202060 	add	x0, x3, w0, uxth
ffff8000113a2170:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a2174:	b9408a74 	ldr	w20, [x19,#136]
ffff8000113a2178:	94000000 	bl	0 <csum_partial>
			ffff8000113a2178: R_AARCH64_CALL26	csum_partial
}

static inline __wsum
csum_block_sub(__wsum csum, __wsum csum2, int offset)
{
	return csum_block_add(csum, ~csum2, offset);
ffff8000113a217c:	2a2003e0 	mvn	w0, w0
	res += (__force u32)addend;
ffff8000113a2180:	0b140001 	add	w1, w0, w20
	return (__force __wsum)(res + (res < (__force u32)addend));
ffff8000113a2184:	6b01001f 	cmp	w0, w1
ffff8000113a2188:	1a819421 	cinc	w1, w1, hi
ffff8000113a218c:	b9008a61 	str	w1, [x19,#136]
	return 0;
ffff8000113a2190:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a2194:	17ffffd2 	b	ffff8000113a20dc <__dev_forward_skb+0x8c>

ffff8000113a2198 <netdev_create_hash>:
{
ffff8000113a2198:	a9bf7bfd 	stp	x29, x30, [sp,#-16]!
ffff8000113a219c:	910003fd 	mov	x29, sp
ffff8000113a21a0:	aa1e03e0 	mov	x0, x30
ffff8000113a21a4:	94000000 	bl	0 <_mcount>
			ffff8000113a21a4: R_AARCH64_CALL26	_mcount
ffff8000113a21a8:	90000000 	adrp	x0, 0 <kmalloc_caches>
			ffff8000113a21a8: R_AARCH64_ADR_PREL_PG_HI21	kmalloc_caches+0x58
ffff8000113a21ac:	f9400000 	ldr	x0, [x0]
			ffff8000113a21ac: R_AARCH64_LDST64_ABS_LO12_NC	kmalloc_caches+0x58
ffff8000113a21b0:	52819801 	mov	w1, #0xcc0                 	// #3264
ffff8000113a21b4:	d2810002 	mov	x2, #0x800                 	// #2048
ffff8000113a21b8:	94000000 	bl	0 <kmem_cache_alloc_trace>
			ffff8000113a21b8: R_AARCH64_CALL26	kmem_cache_alloc_trace
	if (hash != NULL)
ffff8000113a21bc:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a21c0:	b40000a0 	cbz	x0, ffff8000113a21d4 <netdev_create_hash+0x3c>
			INIT_HLIST_HEAD(&hash[i]);
ffff8000113a21c4:	f821681f 	str	xzr, [x0,x1]
ffff8000113a21c8:	91002021 	add	x1, x1, #0x8
		for (i = 0; i < NETDEV_HASHENTRIES; i++)
ffff8000113a21cc:	f120003f 	cmp	x1, #0x800
ffff8000113a21d0:	54ffffa1 	b.ne	ffff8000113a21c4 <netdev_create_hash+0x2c>
}
ffff8000113a21d4:	a8c17bfd 	ldp	x29, x30, [sp],#16
ffff8000113a21d8:	d65f03c0 	ret

ffff8000113a21dc <netdev_init>:
{
ffff8000113a21dc:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a21e0:	910003fd 	mov	x29, sp
ffff8000113a21e4:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a21e8:	aa0003f3 	mov	x19, x0
ffff8000113a21ec:	aa1e03e0 	mov	x0, x30
ffff8000113a21f0:	94000000 	bl	0 <_mcount>
			ffff8000113a21f0: R_AARCH64_CALL26	_mcount
	if (net != &init_net)
ffff8000113a21f4:	90000000 	adrp	x0, 0 <init_net>
			ffff8000113a21f4: R_AARCH64_ADR_PREL_PG_HI21	init_net
ffff8000113a21f8:	91000000 	add	x0, x0, #0x0
			ffff8000113a21f8: R_AARCH64_ADD_ABS_LO12_NC	init_net
ffff8000113a21fc:	eb00027f 	cmp	x19, x0
ffff8000113a2200:	54000080 	b.eq	ffff8000113a2210 <netdev_init+0x34>
		INIT_LIST_HEAD(&net->dev_base_head);
ffff8000113a2204:	91024260 	add	x0, x19, #0x90
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a2208:	f9004a60 	str	x0, [x19,#144]
	list->prev = list;
ffff8000113a220c:	f9004e60 	str	x0, [x19,#152]
	net->dev_name_head = netdev_create_hash();
ffff8000113a2210:	97ffffe2 	bl	ffff8000113a2198 <netdev_create_hash>
ffff8000113a2214:	f9009660 	str	x0, [x19,#296]
	if (net->dev_name_head == NULL)
ffff8000113a2218:	b4000120 	cbz	x0, ffff8000113a223c <netdev_init+0x60>
	net->dev_index_head = netdev_create_hash();
ffff8000113a221c:	97ffffdf 	bl	ffff8000113a2198 <netdev_create_hash>
ffff8000113a2220:	f9009a60 	str	x0, [x19,#304]
	if (net->dev_index_head == NULL)
ffff8000113a2224:	b4000100 	cbz	x0, ffff8000113a2244 <netdev_init+0x68>
	RAW_INIT_NOTIFIER_HEAD(&net->netdev_chain);
ffff8000113a2228:	f9009e7f 	str	xzr, [x19,#312]
	return 0;
ffff8000113a222c:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a2230:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a2234:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a2238:	d65f03c0 	ret
	return -ENOMEM;
ffff8000113a223c:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113a2240:	17fffffc 	b	ffff8000113a2230 <netdev_init+0x54>
	kfree(net->dev_name_head);
ffff8000113a2244:	f9409660 	ldr	x0, [x19,#296]
ffff8000113a2248:	94000000 	bl	0 <kfree>
			ffff8000113a2248: R_AARCH64_CALL26	kfree
	return -ENOMEM;
ffff8000113a224c:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113a2250:	17fffff8 	b	ffff8000113a2230 <netdev_init+0x54>

ffff8000113a2254 <__netdev_walk_all_lower_dev.constprop.156>:
static int __netdev_walk_all_lower_dev(struct net_device *dev,
ffff8000113a2254:	a9b27bfd 	stp	x29, x30, [sp,#-224]!
ffff8000113a2258:	910003fd 	mov	x29, sp
ffff8000113a225c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2260:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a2264:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a2268:	aa0003f6 	mov	x22, x0
ffff8000113a226c:	aa1e03e0 	mov	x0, x30
ffff8000113a2270:	94000000 	bl	0 <_mcount>
			ffff8000113a2270: R_AARCH64_CALL26	_mcount
ffff8000113a2274:	90000018 	adrp	x24, 0 <__stack_chk_guard>
			ffff8000113a2274: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a2278:	f9400300 	ldr	x0, [x24]
			ffff8000113a2278: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	iter = &dev->adj_list.lower;
ffff8000113a227c:	9102e2d3 	add	x19, x22, #0xb8
static int __netdev_walk_all_lower_dev(struct net_device *dev,
ffff8000113a2280:	f9006fa0 	str	x0, [x29,#216]
	iter = &dev->adj_list.lower;
ffff8000113a2284:	aa1303e3 	mov	x3, x19
	now = dev;
ffff8000113a2288:	aa1603f4 	mov	x20, x22
	int ret, cur = 0;
ffff8000113a228c:	52800015 	mov	w21, #0x0                   	// #0
			niter = iter_stack[cur];
ffff8000113a2290:	910243b7 	add	x23, x29, #0x90
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff8000113a2294:	f9400261 	ldr	x1, [x19]
	if (&lower->list == &dev->adj_list.lower)
ffff8000113a2298:	eb03003f 	cmp	x1, x3
ffff8000113a229c:	aa0103f3 	mov	x19, x1
ffff8000113a22a0:	540002c0 	b.eq	ffff8000113a22f8 <__netdev_walk_all_lower_dev.constprop.156+0xa4>
	return lower->dev;
ffff8000113a22a4:	f85e8022 	ldur	x2, [x1,#-24]
	*ignore = lower->ignore;
ffff8000113a22a8:	385f1021 	ldurb	w1, [x1,#-15]
			if (!ldev)
ffff8000113a22ac:	b4000262 	cbz	x2, ffff8000113a22f8 <__netdev_walk_all_lower_dev.constprop.156+0xa4>
			if (ignore)
ffff8000113a22b0:	35ffff21 	cbnz	w1, ffff8000113a2294 <__netdev_walk_all_lower_dev.constprop.156+0x40>
			dev_stack[cur] = now;
ffff8000113a22b4:	910123a0 	add	x0, x29, #0x48
ffff8000113a22b8:	f835d814 	str	x20, [x0,w21,sxtw #3]
			iter_stack[cur++] = iter;
ffff8000113a22bc:	f835daf3 	str	x19, [x23,w21,sxtw #3]
	return lower->dev;
ffff8000113a22c0:	aa0203f4 	mov	x20, x2
			niter = &ldev->adj_list.lower;
ffff8000113a22c4:	9102e053 	add	x19, x2, #0xb8
			iter_stack[cur++] = iter;
ffff8000113a22c8:	110006b5 	add	w21, w21, #0x1
		if (now != dev) {
ffff8000113a22cc:	eb1402df 	cmp	x22, x20
ffff8000113a22d0:	540000a0 	b.eq	ffff8000113a22e4 <__netdev_walk_all_lower_dev.constprop.156+0x90>
			ret = fn(now, data);
ffff8000113a22d4:	aa1403e0 	mov	x0, x20
ffff8000113a22d8:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a22dc:	97fff33d 	bl	ffff80001139efd0 <__netdev_update_upper_level>
			if (ret)
ffff8000113a22e0:	350001a0 	cbnz	w0, ffff8000113a2314 <__netdev_walk_all_lower_dev.constprop.156+0xc0>
	lower = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff8000113a22e4:	f9400261 	ldr	x1, [x19]
ffff8000113a22e8:	9102e283 	add	x3, x20, #0xb8
	if (&lower->list == &dev->adj_list.lower)
ffff8000113a22ec:	eb03003f 	cmp	x1, x3
ffff8000113a22f0:	aa0103f3 	mov	x19, x1
ffff8000113a22f4:	54fffd81 	b.ne	ffff8000113a22a4 <__netdev_walk_all_lower_dev.constprop.156+0x50>
			if (!cur)
ffff8000113a22f8:	340000d5 	cbz	w21, ffff8000113a2310 <__netdev_walk_all_lower_dev.constprop.156+0xbc>
			next = dev_stack[--cur];
ffff8000113a22fc:	510006b5 	sub	w21, w21, #0x1
ffff8000113a2300:	910123a0 	add	x0, x29, #0x48
ffff8000113a2304:	f875d814 	ldr	x20, [x0,w21,sxtw #3]
			niter = iter_stack[cur];
ffff8000113a2308:	f875daf3 	ldr	x19, [x23,w21,sxtw #3]
ffff8000113a230c:	17fffff0 	b	ffff8000113a22cc <__netdev_walk_all_lower_dev.constprop.156+0x78>
				return 0;
ffff8000113a2310:	2a1503e0 	mov	w0, w21
}
ffff8000113a2314:	f9406fa2 	ldr	x2, [x29,#216]
ffff8000113a2318:	f9400301 	ldr	x1, [x24]
			ffff8000113a2318: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a231c:	eb01005f 	cmp	x2, x1
ffff8000113a2320:	540000c1 	b.ne	ffff8000113a2338 <__netdev_walk_all_lower_dev.constprop.156+0xe4>
ffff8000113a2324:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2328:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a232c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a2330:	a8ce7bfd 	ldp	x29, x30, [sp],#224
ffff8000113a2334:	d65f03c0 	ret
ffff8000113a2338:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a2338: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a233c <netif_tx_stop_all_queues>:
{
ffff8000113a233c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a2340:	910003fd 	mov	x29, sp
ffff8000113a2344:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a2348:	aa0003f3 	mov	x19, x0
ffff8000113a234c:	aa1e03e0 	mov	x0, x30
ffff8000113a2350:	94000000 	bl	0 <_mcount>
			ffff8000113a2350: R_AARCH64_CALL26	_mcount
	for (i = 0; i < dev->num_tx_queues; i++) {
ffff8000113a2354:	b943ca60 	ldr	w0, [x19,#968]
ffff8000113a2358:	52800002 	mov	w2, #0x0                   	// #0
	return &dev->_tx[index];
ffff8000113a235c:	52802803 	mov	w3, #0x140                 	// #320
ffff8000113a2360:	340001c0 	cbz	w0, ffff8000113a2398 <netif_tx_stop_all_queues+0x5c>
ffff8000113a2364:	f941e261 	ldr	x1, [x19,#960]
ffff8000113a2368:	9ba37c40 	umull	x0, w2, w3
ffff8000113a236c:	8b000021 	add	x1, x1, x0
ATOMIC64_OPS(or, orr, L)
ffff8000113a2370:	91024025 	add	x5, x1, #0x90
ffff8000113a2374:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a2378:	c85f7ca0 	ldxr	x0, [x5]
ffff8000113a237c:	b2400000 	orr	x0, x0, #0x1
ffff8000113a2380:	c8047ca0 	stxr	w4, x0, [x5]
ffff8000113a2384:	35ffffa4 	cbnz	w4, ffff8000113a2378 <netif_tx_stop_all_queues+0x3c>
ffff8000113a2388:	b943ca60 	ldr	w0, [x19,#968]
ffff8000113a238c:	11000442 	add	w2, w2, #0x1
ffff8000113a2390:	6b02001f 	cmp	w0, w2
ffff8000113a2394:	54fffe88 	b.hi	ffff8000113a2364 <netif_tx_stop_all_queues+0x28>
}
ffff8000113a2398:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a239c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a23a0:	d65f03c0 	ret

ffff8000113a23a4 <rps_may_expire_flow>:
{
ffff8000113a23a4:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a23a8:	910003fd 	mov	x29, sp
ffff8000113a23ac:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a23b0:	f90013f5 	str	x21, [sp,#32]
ffff8000113a23b4:	aa0003f3 	mov	x19, x0
ffff8000113a23b8:	aa1e03e0 	mov	x0, x30
ffff8000113a23bc:	53003c34 	uxth	w20, w1
ffff8000113a23c0:	53003c75 	uxth	w21, w3
ffff8000113a23c4:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a23c8:	94000000 	bl	0 <_mcount>
			ffff8000113a23c8: R_AARCH64_CALL26	_mcount
	struct netdev_rx_queue *rxqueue = dev->_rx + rxq_index;
ffff8000113a23cc:	f9419260 	ldr	x0, [x19,#800]
ffff8000113a23d0:	d3783e94 	ubfiz	x20, x20, #8, #16
ffff8000113a23d4:	8b140014 	add	x20, x0, x20
	__READ_ONCE_SIZE;
ffff8000113a23d8:	f9400681 	ldr	x1, [x20,#8]
	if (flow_table && flow_id <= flow_table->mask) {
ffff8000113a23dc:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a23e0:	b40004c1 	cbz	x1, ffff8000113a2478 <rps_may_expire_flow+0xd4>
ffff8000113a23e4:	b9400024 	ldr	w4, [x1]
	bool expire = true;
ffff8000113a23e8:	52800020 	mov	w0, #0x1                   	// #1
	if (flow_table && flow_id <= flow_table->mask) {
ffff8000113a23ec:	6b02009f 	cmp	w4, w2
ffff8000113a23f0:	54000143 	b.cc	ffff8000113a2418 <rps_may_expire_flow+0x74>
		rflow = &flow_table->flows[flow_id];
ffff8000113a23f4:	2a0203e2 	mov	w2, w2
ffff8000113a23f8:	91000842 	add	x2, x2, #0x2
ffff8000113a23fc:	8b020c21 	add	x1, x1, x2, lsl #3
		if (rflow->filter == filter_id && cpu < nr_cpu_ids &&
ffff8000113a2400:	79401423 	ldrh	w3, [x1,#10]
		rflow = &flow_table->flows[flow_id];
ffff8000113a2404:	91002022 	add	x2, x1, #0x8
ffff8000113a2408:	79401021 	ldrh	w1, [x1,#8]
		if (rflow->filter == filter_id && cpu < nr_cpu_ids &&
ffff8000113a240c:	6b15007f 	cmp	w3, w21
ffff8000113a2410:	53003c21 	uxth	w1, w1
ffff8000113a2414:	540000a0 	b.eq	ffff8000113a2428 <rps_may_expire_flow+0x84>
}
ffff8000113a2418:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a241c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a2420:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2424:	d65f03c0 	ret
		if (rflow->filter == filter_id && cpu < nr_cpu_ids &&
ffff8000113a2428:	90000003 	adrp	x3, 0 <nr_cpu_ids>
			ffff8000113a2428: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
ffff8000113a242c:	b9400063 	ldr	w3, [x3]
			ffff8000113a242c: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
ffff8000113a2430:	6b03003f 	cmp	w1, w3
ffff8000113a2434:	54ffff22 	b.cs	ffff8000113a2418 <rps_may_expire_flow+0x74>
		    ((int)(per_cpu(softnet_data, cpu).input_queue_head -
ffff8000113a2438:	90000000 	adrp	x0, 0 <__per_cpu_offset>
			ffff8000113a2438: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a243c:	91000000 	add	x0, x0, #0x0
			ffff8000113a243c: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a2440:	f8615801 	ldr	x1, [x0,w1,uxtw #3]
ffff8000113a2444:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2444: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a2448:	91000000 	add	x0, x0, #0x0
			ffff8000113a2448: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a244c:	8b010000 	add	x0, x0, x1
ffff8000113a2450:	b9408001 	ldr	w1, [x0,#128]
ffff8000113a2454:	b9400440 	ldr	w0, [x2,#4]
		     (int)(10 * flow_table->mask)))
ffff8000113a2458:	0b040884 	add	w4, w4, w4, lsl #2
		    ((int)(per_cpu(softnet_data, cpu).input_queue_head -
ffff8000113a245c:	4b000020 	sub	w0, w1, w0
		if (rflow->filter == filter_id && cpu < nr_cpu_ids &&
ffff8000113a2460:	6b04041f 	cmp	w0, w4, lsl #1
ffff8000113a2464:	1a9fb7e0 	cset	w0, ge
}
ffff8000113a2468:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a246c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a2470:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2474:	d65f03c0 	ret
	bool expire = true;
ffff8000113a2478:	52800020 	mov	w0, #0x1                   	// #1
}
ffff8000113a247c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2480:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a2484:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2488:	d65f03c0 	ret

ffff8000113a248c <netdev_pick_tx>:
{
ffff8000113a248c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a2490:	910003fd 	mov	x29, sp
ffff8000113a2494:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2498:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a249c:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a24a0:	aa0103f6 	mov	x22, x1
ffff8000113a24a4:	aa0003f4 	mov	x20, x0
ffff8000113a24a8:	aa1e03e0 	mov	x0, x30
ffff8000113a24ac:	aa0203f5 	mov	x21, x2
ffff8000113a24b0:	94000000 	bl	0 <_mcount>
			ffff8000113a24b0: R_AARCH64_CALL26	_mcount
	struct sock *sk = skb->sk;
ffff8000113a24b4:	f9400ed3 	ldr	x19, [x22,#24]
	sk->sk_tx_queue_mapping = NO_QUEUE_MAPPING;
}

static inline int sk_tx_queue_get(const struct sock *sk)
{
	if (sk && sk->sk_tx_queue_mapping != NO_QUEUE_MAPPING)
ffff8000113a24b8:	b4000993 	cbz	x19, ffff8000113a25e8 <netdev_pick_tx+0x15c>
ffff8000113a24bc:	7940f277 	ldrh	w23, [x19,#120]
ffff8000113a24c0:	529fffe0 	mov	w0, #0xffff                	// #65535
		return sk->sk_tx_queue_mapping;
ffff8000113a24c4:	6b0002ff 	cmp	w23, w0
ffff8000113a24c8:	5a9f12f7 	csinv	w23, w23, wzr, ne
	sb_dev = sb_dev ? : dev;
ffff8000113a24cc:	eb1f02bf 	cmp	x21, xzr
ffff8000113a24d0:	9a9412b5 	csel	x21, x21, x20, ne
	if (queue_index < 0 || skb->ooo_okay ||
ffff8000113a24d4:	310006ff 	cmn	w23, #0x1
ffff8000113a24d8:	54000060 	b.eq	ffff8000113a24e4 <netdev_pick_tx+0x58>
ffff8000113a24dc:	394202c0 	ldrb	w0, [x22,#128]
ffff8000113a24e0:	36380560 	tbz	w0, #7, ffff8000113a258c <netdev_pick_tx+0x100>
ffff8000113a24e4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a24e4: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a24e8:	91000000 	add	x0, x0, #0x0
			ffff8000113a24e8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a24ec:	b9493801 	ldr	w1, [x0,#2360]
	static_key_initialized = true;
}

static __always_inline bool static_key_false(struct static_key *key)
{
	if (unlikely(static_key_count(key) > 0))
ffff8000113a24f0:	6b1f003f 	cmp	w1, wzr
ffff8000113a24f4:	5400096c 	b.gt	ffff8000113a2620 <netdev_pick_tx+0x194>
	if (dev->num_tc) {
ffff8000113a24f8:	79d09280 	ldrsh	w0, [x20,#2120]
	u16 qcount = dev->real_num_tx_queues;
ffff8000113a24fc:	b943ce81 	ldr	w1, [x20,#972]
	if (dev->num_tc) {
ffff8000113a2500:	35000580 	cbnz	w0, ffff8000113a25b0 <netdev_pick_tx+0x124>
	u16 qcount = dev->real_num_tx_queues;
ffff8000113a2504:	53003c35 	uxth	w21, w1
	u16 qoffset = 0;
ffff8000113a2508:	2a0003f4 	mov	w20, w0
		       struct sk_buff *skb)
ffff8000113a250c:	7940fac2 	ldrh	w2, [x22,#124]
	if (skb_rx_queue_recorded(skb)) {
ffff8000113a2510:	34000702 	cbz	w2, ffff8000113a25f0 <netdev_pick_tx+0x164>
	return skb->queue_mapping - 1;
ffff8000113a2514:	51000442 	sub	w2, w2, #0x1
		hash = skb_get_rx_queue(skb);
ffff8000113a2518:	53003c42 	uxth	w2, w2
			hash -= qoffset;
ffff8000113a251c:	6b14005f 	cmp	w2, w20
ffff8000113a2520:	4b140040 	sub	w0, w2, w20
ffff8000113a2524:	1a822002 	csel	w2, w0, w2, cs
		while (unlikely(hash >= qcount))
ffff8000113a2528:	6b0202bf 	cmp	w21, w2
ffff8000113a252c:	54000b89 	b.ls	ffff8000113a269c <netdev_pick_tx+0x210>
		return hash + qoffset;
ffff8000113a2530:	0b020280 	add	w0, w20, w2
ffff8000113a2534:	53003c00 	uxth	w0, w0
		if (queue_index != new_index && sk &&
ffff8000113a2538:	6b17001f 	cmp	w0, w23
ffff8000113a253c:	540004a0 	b.eq	ffff8000113a25d0 <netdev_pick_tx+0x144>
ffff8000113a2540:	b4000493 	cbz	x19, ffff8000113a25d0 <netdev_pick_tx+0x144>
/* This helper checks if a socket is a full socket,
 * ie _not_ a timewait or request socket.
 */
static inline bool sk_fullsock(const struct sock *sk)
{
	return (1 << sk->sk_state) & ~(TCPF_TIME_WAIT | TCPF_NEW_SYN_RECV);
ffff8000113a2544:	39404a61 	ldrb	w1, [x19,#18]
ffff8000113a2548:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a254c:	1ac12042 	lsl	w2, w2, w1
ffff8000113a2550:	12820801 	mov	w1, #0xffffefbf            	// #-4161
ffff8000113a2554:	6a01005f 	tst	w2, w1
ffff8000113a2558:	540003c0 	b.eq	ffff8000113a25d0 <netdev_pick_tx+0x144>
ffff8000113a255c:	f9409e61 	ldr	x1, [x19,#312]
	if (WARN_ON_ONCE((unsigned short)tx_queue >= USHRT_MAX))
ffff8000113a2560:	53003c00 	uxth	w0, w0
		    sk_fullsock(sk) &&
ffff8000113a2564:	b40000a1 	cbz	x1, ffff8000113a2578 <netdev_pick_tx+0xec>
ffff8000113a2568:	529fffe1 	mov	w1, #0xffff                	// #65535
ffff8000113a256c:	6b01001f 	cmp	w0, w1
ffff8000113a2570:	54000920 	b.eq	ffff8000113a2694 <netdev_pick_tx+0x208>
	sk->sk_tx_queue_mapping = tx_queue;
ffff8000113a2574:	7900f260 	strh	w0, [x19,#120]
}
ffff8000113a2578:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a257c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2580:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a2584:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2588:	d65f03c0 	ret
	if (queue_index < 0 || skb->ooo_okay ||
ffff8000113a258c:	b943ce80 	ldr	w0, [x20,#972]
ffff8000113a2590:	6b0002ff 	cmp	w23, w0
ffff8000113a2594:	54fffa82 	b.cs	ffff8000113a24e4 <netdev_pick_tx+0x58>
ffff8000113a2598:	53003ee0 	uxth	w0, w23
}
ffff8000113a259c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a25a0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a25a4:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a25a8:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a25ac:	d65f03c0 	ret
	return dev->prio_tc_map[prio & TC_BITMASK];
ffff8000113a25b0:	b9408ec0 	ldr	w0, [x22,#140]
ffff8000113a25b4:	92400c00 	and	x0, x0, #0xf
ffff8000113a25b8:	8b000294 	add	x20, x20, x0
ffff8000113a25bc:	39622a80 	ldrb	w0, [x20,#2186]
ffff8000113a25c0:	8b000ab5 	add	x21, x21, x0, lsl #2
		qoffset = sb_dev->tc_to_txq[tc].offset;
ffff8000113a25c4:	79509ab4 	ldrh	w20, [x21,#2124]
		qcount = sb_dev->tc_to_txq[tc].count;
ffff8000113a25c8:	795096b5 	ldrh	w21, [x21,#2122]
ffff8000113a25cc:	17ffffd0 	b	ffff8000113a250c <netdev_pick_tx+0x80>
ffff8000113a25d0:	53003c00 	uxth	w0, w0
}
ffff8000113a25d4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a25d8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a25dc:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a25e0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a25e4:	d65f03c0 	ret
	return -1;
ffff8000113a25e8:	12800017 	mov	w23, #0xffffffff            	// #-1
ffff8000113a25ec:	17ffffb8 	b	ffff8000113a24cc <netdev_pick_tx+0x40>
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a25f0:	394206c0 	ldrb	w0, [x22,#129]
ffff8000113a25f4:	12000400 	and	w0, w0, #0x3
ffff8000113a25f8:	340000e0 	cbz	w0, ffff8000113a2614 <netdev_pick_tx+0x188>
	return skb->hash;
ffff8000113a25fc:	b94096c0 	ldr	w0, [x22,#148]
ffff8000113a2600:	9bb57c00 	umull	x0, w0, w21
ffff8000113a2604:	d360fc00 	lsr	x0, x0, #32
	return (u16) reciprocal_scale(skb_get_hash(skb), qcount) + qoffset;
ffff8000113a2608:	0b000280 	add	w0, w20, w0
ffff8000113a260c:	53003c00 	uxth	w0, w0
ffff8000113a2610:	17ffffca 	b	ffff8000113a2538 <netdev_pick_tx+0xac>
		__skb_get_hash(skb);
ffff8000113a2614:	aa1603e0 	mov	x0, x22
ffff8000113a2618:	94000000 	bl	0 <__skb_get_hash>
			ffff8000113a2618: R_AARCH64_CALL26	__skb_get_hash
ffff8000113a261c:	17fffff8 	b	ffff8000113a25fc <netdev_pick_tx+0x170>
ffff8000113a2620:	b9494001 	ldr	w1, [x0,#2368]
ffff8000113a2624:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113a2628:	6b1f003f 	cmp	w1, wzr
ffff8000113a262c:	5400014c 	b.gt	ffff8000113a2654 <netdev_pick_tx+0x1c8>
ffff8000113a2630:	f941f6a2 	ldr	x2, [x21,#1000]
		if (dev_maps) {
ffff8000113a2634:	b40000c2 	cbz	x2, ffff8000113a264c <netdev_pick_tx+0x1c0>
			unsigned int tci = skb->sender_cpu - 1;
ffff8000113a2638:	b9409ec3 	ldr	w3, [x22,#156]
			queue_index = __get_xps_queue_idx(dev, skb, dev_maps,
ffff8000113a263c:	aa1403e0 	mov	x0, x20
ffff8000113a2640:	aa1603e1 	mov	x1, x22
ffff8000113a2644:	51000463 	sub	w3, w3, #0x1
ffff8000113a2648:	97fff95e 	bl	ffff8000113a0bc0 <__get_xps_queue_idx>
		if (new_index < 0)
ffff8000113a264c:	36fff760 	tbz	w0, #31, ffff8000113a2538 <netdev_pick_tx+0xac>
ffff8000113a2650:	17ffffaa 	b	ffff8000113a24f8 <netdev_pick_tx+0x6c>
ffff8000113a2654:	f941faa2 	ldr	x2, [x21,#1008]
	if (dev_maps) {
ffff8000113a2658:	b4fffec2 	cbz	x2, ffff8000113a2630 <netdev_pick_tx+0x1a4>
	if (sk && sk->sk_rx_queue_mapping != NO_QUEUE_MAPPING)
ffff8000113a265c:	b4fffeb3 	cbz	x19, ffff8000113a2630 <netdev_pick_tx+0x1a4>
ffff8000113a2660:	7940f663 	ldrh	w3, [x19,#122]
ffff8000113a2664:	529fffe1 	mov	w1, #0xffff                	// #65535
ffff8000113a2668:	6b01007f 	cmp	w3, w1
ffff8000113a266c:	54fffe20 	b.eq	ffff8000113a2630 <netdev_pick_tx+0x1a4>
		if (tci >= 0 && tci < dev->num_rx_queues)
ffff8000113a2670:	b9432a81 	ldr	w1, [x20,#808]
ffff8000113a2674:	6b01007f 	cmp	w3, w1
ffff8000113a2678:	54fffdc2 	b.cs	ffff8000113a2630 <netdev_pick_tx+0x1a4>
			queue_index = __get_xps_queue_idx(dev, skb, dev_maps,
ffff8000113a267c:	aa1603e1 	mov	x1, x22
ffff8000113a2680:	aa1403e0 	mov	x0, x20
ffff8000113a2684:	97fff94f 	bl	ffff8000113a0bc0 <__get_xps_queue_idx>
	if (queue_index < 0) {
ffff8000113a2688:	37fffd40 	tbnz	w0, #31, ffff8000113a2630 <netdev_pick_tx+0x1a4>
		if (new_index < 0)
ffff8000113a268c:	36fff560 	tbz	w0, #31, ffff8000113a2538 <netdev_pick_tx+0xac>
ffff8000113a2690:	17ffff9a 	b	ffff8000113a24f8 <netdev_pick_tx+0x6c>
	if (WARN_ON_ONCE((unsigned short)tx_queue >= USHRT_MAX))
ffff8000113a2694:	d4210000 	brk	#0x800
ffff8000113a2698:	17ffffb8 	b	ffff8000113a2578 <netdev_pick_tx+0xec>
			hash -= qcount;
ffff8000113a269c:	4b150042 	sub	w2, w2, w21
		while (unlikely(hash >= qcount))
ffff8000113a26a0:	6b15005f 	cmp	w2, w21
ffff8000113a26a4:	54fff463 	b.cc	ffff8000113a2530 <netdev_pick_tx+0xa4>
ffff8000113a26a8:	17fffffd 	b	ffff8000113a269c <netdev_pick_tx+0x210>

ffff8000113a26ac <napi_schedule_prep>:
{
ffff8000113a26ac:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a26b0:	910003fd 	mov	x29, sp
ffff8000113a26b4:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a26b8:	aa0003f3 	mov	x19, x0
ffff8000113a26bc:	aa1e03e0 	mov	x0, x30
ffff8000113a26c0:	94000000 	bl	0 <_mcount>
			ffff8000113a26c0: R_AARCH64_CALL26	_mcount
ffff8000113a26c4:	f9400a61 	ldr	x1, [x19,#16]
		new = val | NAPIF_STATE_SCHED;
ffff8000113a26c8:	b2400022 	orr	x2, x1, #0x1
		new |= (val & NAPIF_STATE_SCHED) / NAPIF_STATE_SCHED *
ffff8000113a26cc:	92400020 	and	x0, x1, #0x1
ffff8000113a26d0:	aa000442 	orr	x2, x2, x0, lsl #1
		if (unlikely(val & NAPIF_STATE_DISABLE))
ffff8000113a26d4:	371001e1 	tbnz	w1, #2, ffff8000113a2710 <napi_schedule_prep+0x64>
__CMPXCHG_CASE(w,  , rel_, 32,        ,  , l, "memory", K)
__CMPXCHG_CASE( ,  , rel_, 64,        ,  , l, "memory", L)
__CMPXCHG_CASE(w, b,  mb_,  8, dmb ish,  , l, "memory", K)
__CMPXCHG_CASE(w, h,  mb_, 16, dmb ish,  , l, "memory", K)
__CMPXCHG_CASE(w,  ,  mb_, 32, dmb ish,  , l, "memory", K)
__CMPXCHG_CASE( ,  ,  mb_, 64, dmb ish,  , l, "memory", L)
ffff8000113a26d8:	91004265 	add	x5, x19, #0x10
ffff8000113a26dc:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a26e0:	c85f7ca3 	ldxr	x3, [x5]
ffff8000113a26e4:	ca010064 	eor	x4, x3, x1
ffff8000113a26e8:	b5000084 	cbnz	x4, ffff8000113a26f8 <napi_schedule_prep+0x4c>
ffff8000113a26ec:	c804fca2 	stlxr	w4, x2, [x5]
ffff8000113a26f0:	35ffff84 	cbnz	w4, ffff8000113a26e0 <napi_schedule_prep+0x34>
ffff8000113a26f4:	d5033bbf 	dmb	ish
	} while (cmpxchg(&n->state, val, new) != val);
ffff8000113a26f8:	eb03003f 	cmp	x1, x3
ffff8000113a26fc:	54fffe41 	b.ne	ffff8000113a26c4 <napi_schedule_prep+0x18>
	return !(val & NAPIF_STATE_SCHED);
ffff8000113a2700:	52000000 	eor	w0, w0, #0x1
}
ffff8000113a2704:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a2708:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a270c:	d65f03c0 	ret
			return false;
ffff8000113a2710:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a2714:	17fffffc 	b	ffff8000113a2704 <napi_schedule_prep+0x58>

ffff8000113a2718 <netdev_txq_to_tc>:
{
ffff8000113a2718:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a271c:	910003fd 	mov	x29, sp
ffff8000113a2720:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a2724:	aa0003f3 	mov	x19, x0
ffff8000113a2728:	aa1e03e0 	mov	x0, x30
ffff8000113a272c:	f90017a1 	str	x1, [x29,#40]
ffff8000113a2730:	94000000 	bl	0 <_mcount>
			ffff8000113a2730: R_AARCH64_CALL26	_mcount
	if (dev->num_tc) {
ffff8000113a2734:	79d09262 	ldrsh	w2, [x19,#2120]
	return 0;
ffff8000113a2738:	52800000 	mov	w0, #0x0                   	// #0
	if (dev->num_tc) {
ffff8000113a273c:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a2740:	340001a2 	cbz	w2, ffff8000113a2774 <netdev_txq_to_tc+0x5c>
		struct netdev_tc_txq *tc = &dev->tc_to_txq[0];
ffff8000113a2744:	91212a62 	add	x2, x19, #0x84a
ffff8000113a2748:	91222a65 	add	x5, x19, #0x88a
			if ((txq - tc->offset) < tc->count)
ffff8000113a274c:	79400444 	ldrh	w4, [x2,#2]
ffff8000113a2750:	79400043 	ldrh	w3, [x2]
ffff8000113a2754:	4b040024 	sub	w4, w1, w4
ffff8000113a2758:	6b03009f 	cmp	w4, w3
		for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
ffff8000113a275c:	91001042 	add	x2, x2, #0x4
			if ((txq - tc->offset) < tc->count)
ffff8000113a2760:	540000a3 	b.cc	ffff8000113a2774 <netdev_txq_to_tc+0x5c>
		for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
ffff8000113a2764:	eb05005f 	cmp	x2, x5
ffff8000113a2768:	11000400 	add	w0, w0, #0x1
ffff8000113a276c:	54ffff01 	b.ne	ffff8000113a274c <netdev_txq_to_tc+0x34>
		return -1;
ffff8000113a2770:	12800000 	mov	w0, #0xffffffff            	// #-1
}
ffff8000113a2774:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a2778:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a277c:	d65f03c0 	ret

ffff8000113a2780 <napi_skb_free_stolen_head>:
{
ffff8000113a2780:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a2784:	910003fd 	mov	x29, sp
ffff8000113a2788:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a278c:	aa0003f3 	mov	x19, x0
ffff8000113a2790:	aa1e03e0 	mov	x0, x30
ffff8000113a2794:	94000000 	bl	0 <_mcount>
			ffff8000113a2794: R_AARCH64_CALL26	_mcount
 *
 * Drops dst reference count if a reference was taken.
 */
static inline void skb_dst_drop(struct sk_buff *skb)
{
	if (skb->_skb_refdst) {
ffff8000113a2798:	f9402e60 	ldr	x0, [x19,#88]
ffff8000113a279c:	b4000060 	cbz	x0, ffff8000113a27a8 <napi_skb_free_stolen_head+0x28>
	if (!(refdst & SKB_DST_NOREF))
ffff8000113a27a0:	360001a0 	tbz	w0, #0, ffff8000113a27d4 <napi_skb_free_stolen_head+0x54>
		refdst_drop(skb->_skb_refdst);
		skb->_skb_refdst = 0UL;
ffff8000113a27a4:	f9002e7f 	str	xzr, [x19,#88]
	if (skb->active_extensions)
ffff8000113a27a8:	3941fe60 	ldrb	w0, [x19,#127]
ffff8000113a27ac:	34000060 	cbz	w0, ffff8000113a27b8 <napi_skb_free_stolen_head+0x38>
		__skb_ext_put(skb->extensions);
ffff8000113a27b0:	f9406e60 	ldr	x0, [x19,#216]
ffff8000113a27b4:	94000000 	bl	0 <__skb_ext_put>
			ffff8000113a27b4: R_AARCH64_CALL26	__skb_ext_put
	kmem_cache_free(skbuff_head_cache, skb);
ffff8000113a27b8:	90000000 	adrp	x0, 0 <skbuff_head_cache>
			ffff8000113a27b8: R_AARCH64_ADR_PREL_PG_HI21	skbuff_head_cache
ffff8000113a27bc:	f9400000 	ldr	x0, [x0]
			ffff8000113a27bc: R_AARCH64_LDST64_ABS_LO12_NC	skbuff_head_cache
ffff8000113a27c0:	aa1303e1 	mov	x1, x19
ffff8000113a27c4:	94000000 	bl	0 <kmem_cache_free>
			ffff8000113a27c4: R_AARCH64_CALL26	kmem_cache_free
}
ffff8000113a27c8:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a27cc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a27d0:	d65f03c0 	ret
		dst_release((struct dst_entry *)(refdst & SKB_DST_PTRMASK));
ffff8000113a27d4:	927ff800 	and	x0, x0, #0xfffffffffffffffe
ffff8000113a27d8:	94000000 	bl	0 <dst_release>
			ffff8000113a27d8: R_AARCH64_CALL26	dst_release
ffff8000113a27dc:	17fffff2 	b	ffff8000113a27a4 <napi_skb_free_stolen_head+0x24>

ffff8000113a27e0 <napi_reuse_skb.isra.123>:
static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
ffff8000113a27e0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a27e4:	910003fd 	mov	x29, sp
ffff8000113a27e8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a27ec:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a27f0:	aa0203f3 	mov	x19, x2
ffff8000113a27f4:	aa0003f6 	mov	x22, x0
ffff8000113a27f8:	aa1e03e0 	mov	x0, x30
ffff8000113a27fc:	aa0103f5 	mov	x21, x1
ffff8000113a2800:	94000000 	bl	0 <_mcount>
			ffff8000113a2800: R_AARCH64_CALL26	_mcount
	if (unlikely(skb->pfmemalloc)) {
ffff8000113a2804:	3941fa74 	ldrb	w20, [x19,#126]
ffff8000113a2808:	d3461a94 	ubfx	x20, x20, #6, #1
ffff8000113a280c:	53001e82 	uxtb	w2, w20
ffff8000113a2810:	35000582 	cbnz	w2, ffff8000113a28c0 <napi_reuse_skb.isra.123+0xe0>
static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
ffff8000113a2814:	b9407664 	ldr	w4, [x19,#116]
	return skb->len - skb->data_len;
ffff8000113a2818:	b9407266 	ldr	w6, [x19,#112]
	return skb->data += len;
ffff8000113a281c:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a2820:	f9406263 	ldr	x3, [x19,#192]
ffff8000113a2824:	4b0400c6 	sub	w6, w6, w4
ffff8000113a2828:	8b060006 	add	x6, x0, x6
	skb->tail += len;
ffff8000113a282c:	b940ba61 	ldr	w1, [x19,#184]
 *
 * Clears the VLAN information from @skb
 */
static inline void __vlan_hwaccel_clear_tag(struct sk_buff *skb)
{
	skb->vlan_present = 0;
ffff8000113a2830:	39420a60 	ldrb	w0, [x19,#130]
	skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb));
ffff8000113a2834:	4b060065 	sub	w5, w3, w6
ffff8000113a2838:	110100a5 	add	w5, w5, #0x40
	skb->data += len;
ffff8000113a283c:	8b25c0c6 	add	x6, x6, w5, sxtw
ffff8000113a2840:	121f7800 	and	w0, w0, #0xfffffffe
	skb->tail += len;
ffff8000113a2844:	0b050025 	add	w5, w1, w5
	skb->pkt_type = PACKET_HOST;
ffff8000113a2848:	39420267 	ldrb	w7, [x19,#128]
	skb->encapsulation = 0;
ffff8000113a284c:	39420661 	ldrb	w1, [x19,#129]
	skb->len -= len;
ffff8000113a2850:	b9007264 	str	w4, [x19,#112]
ffff8000113a2854:	39020a60 	strb	w0, [x19,#130]
	skb->data += len;
ffff8000113a2858:	f9006666 	str	x6, [x19,#200]
	skb->tail += len;
ffff8000113a285c:	b900ba65 	str	w5, [x19,#184]
	skb->dev = napi->dev;
ffff8000113a2860:	f94002c5 	ldr	x5, [x22]
	return skb->head + skb->end;
ffff8000113a2864:	b940be60 	ldr	w0, [x19,#188]
	skb->encapsulation = 0;
ffff8000113a2868:	121a7821 	and	w1, w1, #0xffffffdf
	skb->pkt_type = PACKET_HOST;
ffff8000113a286c:	121d70e4 	and	w4, w7, #0xfffffff8
	skb->encapsulation = 0;
ffff8000113a2870:	39020661 	strb	w1, [x19,#129]
	skb_shinfo(skb)->gso_type = 0;
ffff8000113a2874:	8b000063 	add	x3, x3, x0
	skb->dev = napi->dev;
ffff8000113a2878:	f9000a65 	str	x5, [x19,#16]
	skb->skb_iif = 0;
ffff8000113a287c:	b9009262 	str	w2, [x19,#144]
	skb->pkt_type = PACKET_HOST;
ffff8000113a2880:	39020264 	strb	w4, [x19,#128]
	skb_shinfo(skb)->gso_type = 0;
ffff8000113a2884:	b9001862 	str	w2, [x3,#24]
	skb->truesize = SKB_TRUESIZE(skb_end_offset(skb));
ffff8000113a2888:	b940be61 	ldr	w1, [x19,#188]
	if (unlikely(skb->active_extensions)) {
ffff8000113a288c:	3941fe60 	ldrb	w0, [x19,#127]
ffff8000113a2890:	11090021 	add	w1, w1, #0x240
ffff8000113a2894:	b900d261 	str	w1, [x19,#208]
ffff8000113a2898:	350000c0 	cbnz	w0, ffff8000113a28b0 <napi_reuse_skb.isra.123+0xd0>
	napi->skb = skb;
ffff8000113a289c:	f90002b3 	str	x19, [x21]
}
ffff8000113a28a0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a28a4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a28a8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a28ac:	d65f03c0 	ret
		__skb_ext_put(skb->extensions);
ffff8000113a28b0:	f9406e60 	ldr	x0, [x19,#216]
ffff8000113a28b4:	94000000 	bl	0 <__skb_ext_put>
			ffff8000113a28b4: R_AARCH64_CALL26	__skb_ext_put
		skb->active_extensions = 0;
ffff8000113a28b8:	3901fe74 	strb	w20, [x19,#127]
ffff8000113a28bc:	17fffff8 	b	ffff8000113a289c <napi_reuse_skb.isra.123+0xbc>
		consume_skb(skb);
ffff8000113a28c0:	aa1303e0 	mov	x0, x19
ffff8000113a28c4:	94000000 	bl	0 <consume_skb>
			ffff8000113a28c4: R_AARCH64_CALL26	consume_skb
ffff8000113a28c8:	17fffff6 	b	ffff8000113a28a0 <napi_reuse_skb.isra.123+0xc0>

ffff8000113a28cc <dev_add_pack>:
{
ffff8000113a28cc:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a28d0:	910003fd 	mov	x29, sp
ffff8000113a28d4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a28d8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a28dc:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a28e0:	aa0003f3 	mov	x19, x0
ffff8000113a28e4:	aa1e03e0 	mov	x0, x30
ffff8000113a28e8:	94000000 	bl	0 <_mcount>
			ffff8000113a28e8: R_AARCH64_CALL26	_mcount
void dev_add_pack(struct packet_type *pt)
ffff8000113a28ec:	79400260 	ldrh	w0, [x19]
ffff8000113a28f0:	f9400674 	ldr	x20, [x19,#8]
	if (pt->type == htons(ETH_P_ALL))
ffff8000113a28f4:	710c001f 	cmp	w0, #0x300
ffff8000113a28f8:	54000480 	b.eq	ffff8000113a2988 <dev_add_pack+0xbc>
		return pt->dev ? &pt->dev->ptype_specific :
ffff8000113a28fc:	b40004d4 	cbz	x20, ffff8000113a2994 <dev_add_pack+0xc8>
ffff8000113a2900:	91026294 	add	x20, x20, #0x98
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a2904:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2904: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a2908:	910002e0 	add	x0, x23, #0x0
			ffff8000113a2908: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a290c:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a2910:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a2914:	910c6005 	add	x5, x0, #0x318
ffff8000113a2918:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a291c:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a2920:	4a020024 	eor	w4, w1, w2
ffff8000113a2924:	35000064 	cbnz	w4, ffff8000113a2930 <dev_add_pack+0x64>
ffff8000113a2928:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a292c:	35ffff84 	cbnz	w4, ffff8000113a291c <dev_add_pack+0x50>
static inline bool
atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new)
{
	int r, o = *old;
	r = atomic_cmpxchg_acquire(v, o, new);
	if (unlikely(r != o))
ffff8000113a2930:	35000481 	cbnz	w1, ffff8000113a29c0 <dev_add_pack+0xf4>
 * the _rcu list-traversal primitives, such as
 * list_for_each_entry_rcu().
 */
static inline void list_add_rcu(struct list_head *new, struct list_head *head)
{
	__list_add_rcu(new, head, head->next);
ffff8000113a2934:	f9400295 	ldr	x21, [x20]
	list_add_rcu(&pt->list, head);
ffff8000113a2938:	9100c276 	add	x22, x19, #0x30
	if (!__list_add_valid(new, prev, next))
ffff8000113a293c:	aa1603e0 	mov	x0, x22
ffff8000113a2940:	aa1403e1 	mov	x1, x20
ffff8000113a2944:	aa1503e2 	mov	x2, x21
ffff8000113a2948:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a2948: R_AARCH64_CALL26	__list_add_valid
ffff8000113a294c:	53001c00 	uxtb	w0, w0
ffff8000113a2950:	340000a0 	cbz	w0, ffff8000113a2964 <dev_add_pack+0x98>
	new->next = next;
ffff8000113a2954:	f9001a75 	str	x21, [x19,#48]
	new->prev = prev;
ffff8000113a2958:	f9001e74 	str	x20, [x19,#56]
	rcu_assign_pointer(list_next_rcu(prev), new);
ffff8000113a295c:	c89ffe96 	stlr	x22, [x20]
	next->prev = new;
ffff8000113a2960:	f90006b6 	str	x22, [x21,#8]
static __always_inline void queued_spin_unlock(struct qspinlock *lock)
{
	/*
	 * unlock() needs release semantics:
	 */
	smp_store_release(&lock->locked, 0);
ffff8000113a2964:	910002f7 	add	x23, x23, #0x0
			ffff8000113a2964: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a2968:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a296c:	910c62f7 	add	x23, x23, #0x318
ffff8000113a2970:	089ffee0 	stlrb	w0, [x23]
}
ffff8000113a2974:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2978:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a297c:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a2980:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2984:	d65f03c0 	ret
		return pt->dev ? &pt->dev->ptype_all : &ptype_all;
ffff8000113a2988:	b4000154 	cbz	x20, ffff8000113a29b0 <dev_add_pack+0xe4>
ffff8000113a298c:	91022294 	add	x20, x20, #0x88
ffff8000113a2990:	17ffffdd 	b	ffff8000113a2904 <dev_add_pack+0x38>
		return pt->dev ? &pt->dev->ptype_specific :
ffff8000113a2994:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2994: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a2998:	5ac00400 	rev16	w0, w0
ffff8000113a299c:	91000294 	add	x20, x20, #0x0
			ffff8000113a299c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a29a0:	d37c0c00 	ubfiz	x0, x0, #4, #4
ffff8000113a29a4:	9120c294 	add	x20, x20, #0x830
ffff8000113a29a8:	8b000294 	add	x20, x20, x0
ffff8000113a29ac:	17ffffd6 	b	ffff8000113a2904 <dev_add_pack+0x38>
		return pt->dev ? &pt->dev->ptype_all : &ptype_all;
ffff8000113a29b0:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a29b0: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a29b4:	91000294 	add	x20, x20, #0x0
			ffff8000113a29b4: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a29b8:	91200294 	add	x20, x20, #0x800
ffff8000113a29bc:	17ffffd2 	b	ffff8000113a2904 <dev_add_pack+0x38>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a29c0:	910c6000 	add	x0, x0, #0x318
ffff8000113a29c4:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a29c4: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a29c8:	17ffffdb 	b	ffff8000113a2934 <dev_add_pack+0x68>

ffff8000113a29cc <netif_device_detach>:
{
ffff8000113a29cc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a29d0:	910003fd 	mov	x29, sp
ffff8000113a29d4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a29d8:	aa0003f3 	mov	x19, x0
ffff8000113a29dc:	aa1e03e0 	mov	x0, x30
ffff8000113a29e0:	94000000 	bl	0 <_mcount>
			ffff8000113a29e0: R_AARCH64_CALL26	_mcount
ffff8000113a29e4:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a29e4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a29e8:	f9400280 	ldr	x0, [x20]
			ffff8000113a29e8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a29ec:	f90017a0 	str	x0, [x29,#40]
ffff8000113a29f0:	f9402260 	ldr	x0, [x19,#64]
{
	long old;
	unsigned long mask = BIT_MASK(nr);

	p += BIT_WORD(nr);
	if (!(READ_ONCE(*p) & mask))
ffff8000113a29f4:	36080180 	tbz	w0, #1, ffff8000113a2a24 <netif_device_detach+0x58>
ATOMIC64_OPS(andnot, bic, )
ffff8000113a29f8:	d2800040 	mov	x0, #0x2                   	// #2
ffff8000113a29fc:	91010264 	add	x4, x19, #0x40
ffff8000113a2a00:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a2a04:	c85f7c81 	ldxr	x1, [x4]
ffff8000113a2a08:	8a200022 	bic	x2, x1, x0
ffff8000113a2a0c:	c803fc82 	stlxr	w3, x2, [x4]
ffff8000113a2a10:	35ffffa3 	cbnz	w3, ffff8000113a2a04 <netif_device_detach+0x38>
ffff8000113a2a14:	d5033bbf 	dmb	ish
	if (test_and_clear_bit(__LINK_STATE_PRESENT, &dev->state) &&
ffff8000113a2a18:	36080061 	tbz	w1, #1, ffff8000113a2a24 <netif_device_detach+0x58>
ffff8000113a2a1c:	f9402260 	ldr	x0, [x19,#64]
ffff8000113a2a20:	37000100 	tbnz	w0, #0, ffff8000113a2a40 <netif_device_detach+0x74>
}
ffff8000113a2a24:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a2a28:	f9400280 	ldr	x0, [x20]
			ffff8000113a2a28: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a2a2c:	eb00003f 	cmp	x1, x0
ffff8000113a2a30:	540000e1 	b.ne	ffff8000113a2a4c <netif_device_detach+0x80>
ffff8000113a2a34:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2a38:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a2a3c:	d65f03c0 	ret
		netif_tx_stop_all_queues(dev);
ffff8000113a2a40:	aa1303e0 	mov	x0, x19
ffff8000113a2a44:	94000000 	bl	ffff8000113a233c <netif_tx_stop_all_queues>
			ffff8000113a2a44: R_AARCH64_CALL26	netif_tx_stop_all_queues
ffff8000113a2a48:	17fffff7 	b	ffff8000113a2a24 <netif_device_detach+0x58>
}
ffff8000113a2a4c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a2a4c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a2a50 <napi_hash_del>:
{
ffff8000113a2a50:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a2a54:	910003fd 	mov	x29, sp
ffff8000113a2a58:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2a5c:	f90013f5 	str	x21, [sp,#32]
ffff8000113a2a60:	aa0003f3 	mov	x19, x0
ffff8000113a2a64:	aa1e03e0 	mov	x0, x30
ffff8000113a2a68:	94000000 	bl	0 <_mcount>
			ffff8000113a2a68: R_AARCH64_CALL26	_mcount
ffff8000113a2a6c:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a2a6c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a2a70:	f94002a0 	ldr	x0, [x21]
			ffff8000113a2a70: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a2a74:	f9001fa0 	str	x0, [x29,#56]
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a2a78:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2a78: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a2a7c:	91000280 	add	x0, x20, #0x0
			ffff8000113a2a7c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a2a80:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a2a84:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a2a88:	910c8005 	add	x5, x0, #0x320
ffff8000113a2a8c:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a2a90:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a2a94:	4a020024 	eor	w4, w1, w2
ffff8000113a2a98:	35000064 	cbnz	w4, ffff8000113a2aa4 <napi_hash_del+0x54>
ffff8000113a2a9c:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a2aa0:	35ffff84 	cbnz	w4, ffff8000113a2a90 <napi_hash_del+0x40>
ffff8000113a2aa4:	35000481 	cbnz	w1, ffff8000113a2b34 <napi_hash_del+0xe4>
ffff8000113a2aa8:	f9400a60 	ldr	x0, [x19,#16]
ffff8000113a2aac:	362003e0 	tbz	w0, #4, ffff8000113a2b28 <napi_hash_del+0xd8>
ATOMIC64_OPS(andnot, bic, )
ffff8000113a2ab0:	d2800200 	mov	x0, #0x10                  	// #16
ffff8000113a2ab4:	8b000264 	add	x4, x19, x0
ffff8000113a2ab8:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a2abc:	c85f7c81 	ldxr	x1, [x4]
ffff8000113a2ac0:	8a200022 	bic	x2, x1, x0
ffff8000113a2ac4:	c803fc82 	stlxr	w3, x2, [x4]
ffff8000113a2ac8:	35ffffa3 	cbnz	w3, ffff8000113a2abc <napi_hash_del+0x6c>
ffff8000113a2acc:	d5033bbf 	dmb	ish
	if (test_and_clear_bit(NAPI_STATE_HASHED, &napi->state)) {
ffff8000113a2ad0:	362002c1 	tbz	w1, #4, ffff8000113a2b28 <napi_hash_del+0xd8>
	return !READ_ONCE(h->first);
}

static inline void __hlist_del(struct hlist_node *n)
{
	struct hlist_node *next = n->next;
ffff8000113a2ad4:	f940ba60 	ldr	x0, [x19,#368]
	struct hlist_node **pprev = n->pprev;
ffff8000113a2ad8:	f940be61 	ldr	x1, [x19,#376]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a2adc:	f9000020 	str	x0, [x1]

	WRITE_ONCE(*pprev, next);
	if (next)
ffff8000113a2ae0:	b4000040 	cbz	x0, ffff8000113a2ae8 <napi_hash_del+0x98>
ffff8000113a2ae4:	f9000401 	str	x1, [x0,#8]
ffff8000113a2ae8:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a2aec:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
ffff8000113a2af0:	f900be60 	str	x0, [x19,#376]
		rcu_sync_needed = true;
ffff8000113a2af4:	52800020 	mov	w0, #0x1                   	// #1
	smp_store_release(&lock->locked, 0);
ffff8000113a2af8:	91000294 	add	x20, x20, #0x0
			ffff8000113a2af8: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a2afc:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a2b00:	910c8294 	add	x20, x20, #0x320
ffff8000113a2b04:	089ffe81 	stlrb	w1, [x20]
}
ffff8000113a2b08:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a2b0c:	f94002a1 	ldr	x1, [x21]
			ffff8000113a2b0c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a2b10:	eb01005f 	cmp	x2, x1
ffff8000113a2b14:	540000e1 	b.ne	ffff8000113a2b30 <napi_hash_del+0xe0>
ffff8000113a2b18:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2b1c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a2b20:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2b24:	d65f03c0 	ret
	bool rcu_sync_needed = false;
ffff8000113a2b28:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a2b2c:	17fffff3 	b	ffff8000113a2af8 <napi_hash_del+0xa8>
}
ffff8000113a2b30:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a2b30: R_AARCH64_CALL26	__stack_chk_fail
	queued_spin_lock_slowpath(lock, val);
ffff8000113a2b34:	910c8000 	add	x0, x0, #0x320
ffff8000113a2b38:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a2b38: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a2b3c:	17ffffdb 	b	ffff8000113a2aa8 <napi_hash_del+0x58>

ffff8000113a2b40 <dev_add_offload>:
{
ffff8000113a2b40:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a2b44:	910003fd 	mov	x29, sp
ffff8000113a2b48:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2b4c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a2b50:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a2b54:	aa0003f4 	mov	x20, x0
ffff8000113a2b58:	aa1e03e0 	mov	x0, x30
ffff8000113a2b5c:	94000000 	bl	0 <_mcount>
			ffff8000113a2b5c: R_AARCH64_CALL26	_mcount
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a2b60:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2b60: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a2b64:	910002e2 	add	x2, x23, #0x0
			ffff8000113a2b64: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a2b68:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a2b6c:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a2b70:	910ca045 	add	x5, x2, #0x328
ffff8000113a2b74:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a2b78:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a2b7c:	4a000024 	eor	w4, w1, w0
ffff8000113a2b80:	35000064 	cbnz	w4, ffff8000113a2b8c <dev_add_offload+0x4c>
ffff8000113a2b84:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a2b88:	35ffff84 	cbnz	w4, ffff8000113a2b78 <dev_add_offload+0x38>
ffff8000113a2b8c:	35000541 	cbnz	w1, ffff8000113a2c34 <dev_add_offload+0xf4>
	list_for_each_entry(elem, &offload_base, list) {
ffff8000113a2b90:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a2b90: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a2b94:	91000084 	add	x4, x4, #0x0
			ffff8000113a2b94: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a2b98:	f9440880 	ldr	x0, [x4,#2064]
ffff8000113a2b9c:	91204084 	add	x4, x4, #0x810
ffff8000113a2ba0:	eb00009f 	cmp	x4, x0
ffff8000113a2ba4:	d1008002 	sub	x2, x0, #0x20
ffff8000113a2ba8:	540001a0 	b.eq	ffff8000113a2bdc <dev_add_offload+0x9c>
		if (po->priority < elem->priority)
ffff8000113a2bac:	79400683 	ldrh	w3, [x20,#2]
ffff8000113a2bb0:	785e2000 	ldurh	w0, [x0,#-30]
ffff8000113a2bb4:	6b03001f 	cmp	w0, w3
ffff8000113a2bb8:	540000a9 	b.ls	ffff8000113a2bcc <dev_add_offload+0x8c>
ffff8000113a2bbc:	14000008 	b	ffff8000113a2bdc <dev_add_offload+0x9c>
ffff8000113a2bc0:	785e2021 	ldurh	w1, [x1,#-30]
ffff8000113a2bc4:	6b03003f 	cmp	w1, w3
ffff8000113a2bc8:	540000a8 	b.hi	ffff8000113a2bdc <dev_add_offload+0x9c>
	list_for_each_entry(elem, &offload_base, list) {
ffff8000113a2bcc:	f9401041 	ldr	x1, [x2,#32]
ffff8000113a2bd0:	eb01009f 	cmp	x4, x1
ffff8000113a2bd4:	d1008022 	sub	x2, x1, #0x20
ffff8000113a2bd8:	54ffff41 	b.ne	ffff8000113a2bc0 <dev_add_offload+0x80>
	list_add_rcu(&po->list, elem->list.prev);
ffff8000113a2bdc:	f9401453 	ldr	x19, [x2,#40]
ffff8000113a2be0:	91008296 	add	x22, x20, #0x20
	__list_add_rcu(new, head, head->next);
ffff8000113a2be4:	f9400275 	ldr	x21, [x19]
	if (!__list_add_valid(new, prev, next))
ffff8000113a2be8:	aa1603e0 	mov	x0, x22
ffff8000113a2bec:	aa1303e1 	mov	x1, x19
ffff8000113a2bf0:	aa1503e2 	mov	x2, x21
ffff8000113a2bf4:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a2bf4: R_AARCH64_CALL26	__list_add_valid
ffff8000113a2bf8:	53001c00 	uxtb	w0, w0
ffff8000113a2bfc:	340000a0 	cbz	w0, ffff8000113a2c10 <dev_add_offload+0xd0>
	new->next = next;
ffff8000113a2c00:	f9001295 	str	x21, [x20,#32]
	new->prev = prev;
ffff8000113a2c04:	f9001693 	str	x19, [x20,#40]
	rcu_assign_pointer(list_next_rcu(prev), new);
ffff8000113a2c08:	c89ffe76 	stlr	x22, [x19]
	next->prev = new;
ffff8000113a2c0c:	f90006b6 	str	x22, [x21,#8]
	smp_store_release(&lock->locked, 0);
ffff8000113a2c10:	910002f7 	add	x23, x23, #0x0
			ffff8000113a2c10: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a2c14:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a2c18:	910ca2f7 	add	x23, x23, #0x328
ffff8000113a2c1c:	089ffee0 	stlrb	w0, [x23]
}
ffff8000113a2c20:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2c24:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2c28:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a2c2c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2c30:	d65f03c0 	ret
	queued_spin_lock_slowpath(lock, val);
ffff8000113a2c34:	910ca040 	add	x0, x2, #0x328
ffff8000113a2c38:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a2c38: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a2c3c:	17ffffd5 	b	ffff8000113a2b90 <dev_add_offload+0x50>

ffff8000113a2c40 <dev_fill_metadata_dst>:
{
ffff8000113a2c40:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a2c44:	910003fd 	mov	x29, sp
ffff8000113a2c48:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2c4c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a2c50:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a2c54:	aa0003f3 	mov	x19, x0
ffff8000113a2c58:	aa1e03e0 	mov	x0, x30
ffff8000113a2c5c:	aa0103f5 	mov	x21, x1
ffff8000113a2c60:	94000000 	bl	0 <_mcount>
			ffff8000113a2c60: R_AARCH64_CALL26	_mcount
	if (!dev->netdev_ops  || !dev->netdev_ops->ndo_fill_metadata_dst)
ffff8000113a2c64:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113a2c68:	b4000a00 	cbz	x0, ffff8000113a2da8 <dev_fill_metadata_dst+0x168>
ffff8000113a2c6c:	f9411c00 	ldr	x0, [x0,#568]
ffff8000113a2c70:	b40009c0 	cbz	x0, ffff8000113a2da8 <dev_fill_metadata_dst+0x168>
	return (struct dst_entry *)(skb->_skb_refdst & SKB_DST_PTRMASK);
ffff8000113a2c74:	f9402eb4 	ldr	x20, [x21,#88]
ffff8000113a2c78:	927ffa94 	and	x20, x20, #0xfffffffffffffffe

static inline struct metadata_dst *skb_metadata_dst(const struct sk_buff *skb)
{
	struct metadata_dst *md_dst = (struct metadata_dst *) skb_dst(skb);

	if (md_dst && md_dst->dst.flags & DST_METADATA)
ffff8000113a2c7c:	b4000074 	cbz	x20, ffff8000113a2c88 <dev_fill_metadata_dst+0x48>
ffff8000113a2c80:	79407280 	ldrh	w0, [x20,#56]
ffff8000113a2c84:	373800e0 	tbnz	w0, #7, ffff8000113a2ca0 <dev_fill_metadata_dst+0x60>
		return -ENOMEM;
ffff8000113a2c88:	12800160 	mov	w0, #0xfffffff4            	// #-12
}
ffff8000113a2c8c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2c90:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2c94:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a2c98:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2c9c:	d65f03c0 	ret
{
	struct metadata_dst *md_dst = skb_metadata_dst(skb);
	int md_size;
	struct metadata_dst *new_md;

	if (!md_dst || md_dst->type != METADATA_IP_TUNNEL)
ffff8000113a2ca0:	b9407281 	ldr	w1, [x20,#112]
ffff8000113a2ca4:	35ffff21 	cbnz	w1, ffff8000113a2c88 <dev_fill_metadata_dst+0x48>
		return ERR_PTR(-EINVAL);

	md_size = md_dst->u.tun_info.options_len;
ffff8000113a2ca8:	39430298 	ldrb	w24, [x20,#192]
	new_md = metadata_dst_alloc(md_size, METADATA_IP_TUNNEL, GFP_ATOMIC);
ffff8000113a2cac:	52814402 	mov	w2, #0xa20                 	// #2592
ffff8000113a2cb0:	2a1803e0 	mov	w0, w24
ffff8000113a2cb4:	94000000 	bl	0 <metadata_dst_alloc>
			ffff8000113a2cb4: R_AARCH64_CALL26	metadata_dst_alloc
ffff8000113a2cb8:	aa0003f6 	mov	x22, x0
	if (!new_md)
ffff8000113a2cbc:	b4fffe60 	cbz	x0, ffff8000113a2c88 <dev_fill_metadata_dst+0x48>
	return __builtin_memcpy(p, q, size);
ffff8000113a2cc0:	9101e017 	add	x23, x0, #0x78
		return ERR_PTR(-ENOMEM);

	memcpy(&new_md->u.tun_info, &md_dst->u.tun_info,
ffff8000113a2cc4:	53001f02 	uxtb	w2, w24
ffff8000113a2cc8:	aa1703e0 	mov	x0, x23
ffff8000113a2ccc:	9101e281 	add	x1, x20, #0x78
ffff8000113a2cd0:	91014042 	add	x2, x2, #0x50
ffff8000113a2cd4:	94000000 	bl	0 <memcpy>
			ffff8000113a2cd4: R_AARCH64_CALL26	memcpy
	if (skb->_skb_refdst) {
ffff8000113a2cd8:	f9402ea0 	ldr	x0, [x21,#88]
ffff8000113a2cdc:	b4000060 	cbz	x0, ffff8000113a2ce8 <dev_fill_metadata_dst+0xa8>
	if (!(refdst & SKB_DST_NOREF))
ffff8000113a2ce0:	360003e0 	tbz	w0, #0, ffff8000113a2d5c <dev_fill_metadata_dst+0x11c>
		skb->_skb_refdst = 0UL;
ffff8000113a2ce4:	f9002ebf 	str	xzr, [x21,#88]
	__READ_ONCE_SIZE;
ffff8000113a2ce8:	b94042c0 	ldr	w0, [x22,#64]
atomic_fetch_add_unless(atomic_t *v, int a, int u)
{
	int c = atomic_read(v);

	do {
		if (unlikely(c == u))
ffff8000113a2cec:	340005a0 	cbz	w0, ffff8000113a2da0 <dev_fill_metadata_dst+0x160>
#if !defined(arch_atomic_cmpxchg_relaxed) || defined(arch_atomic_cmpxchg)
static inline int
atomic_cmpxchg(atomic_t *v, int old, int new)
{
	kasan_check_write(v, sizeof(*v));
	return arch_atomic_cmpxchg(v, old, new);
ffff8000113a2cf0:	910102c2 	add	x2, x22, #0x40
__CMPXCHG_CASE(rel_, 16)
__CMPXCHG_CASE(rel_, 32)
__CMPXCHG_CASE(rel_, 64)
__CMPXCHG_CASE(mb_,  8)
__CMPXCHG_CASE(mb_, 16)
__CMPXCHG_CASE(mb_, 32)
ffff8000113a2cf4:	2a0003e1 	mov	w1, w0
			break;
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a2cf8:	11000403 	add	w3, w0, #0x1
ffff8000113a2cfc:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a2d00:	885f7c46 	ldxr	w6, [x2]
ffff8000113a2d04:	4a0100c4 	eor	w4, w6, w1
ffff8000113a2d08:	35000084 	cbnz	w4, ffff8000113a2d18 <dev_fill_metadata_dst+0xd8>
ffff8000113a2d0c:	8804fc43 	stlxr	w4, w3, [x2]
ffff8000113a2d10:	35ffff84 	cbnz	w4, ffff8000113a2d00 <dev_fill_metadata_dst+0xc0>
ffff8000113a2d14:	d5033bbf 	dmb	ish
	if (unlikely(r != o))
ffff8000113a2d18:	6b06001f 	cmp	w0, w6
ffff8000113a2d1c:	540003c1 	b.ne	ffff8000113a2d94 <dev_fill_metadata_dst+0x154>
	skb->_skb_refdst = (unsigned long)dst;
ffff8000113a2d20:	f9002eb6 	str	x22, [x21,#88]
static inline struct ip_tunnel_info *skb_tunnel_info_unclone(struct sk_buff *skb)
{
	struct metadata_dst *dst;

	dst = tun_dst_unclone(skb);
	if (IS_ERR(dst))
ffff8000113a2d24:	b14006df 	cmn	x22, #0x1, lsl #12
ffff8000113a2d28:	54fffb08 	b.hi	ffff8000113a2c88 <dev_fill_metadata_dst+0x48>
	if (unlikely(!(info->mode & IP_TUNNEL_INFO_TX)))
ffff8000113a2d2c:	394126e0 	ldrb	w0, [x23,#73]
ffff8000113a2d30:	360003c0 	tbz	w0, #0, ffff8000113a2da8 <dev_fill_metadata_dst+0x168>
	return dev->netdev_ops->ndo_fill_metadata_dst(dev, skb);
ffff8000113a2d34:	f940fa61 	ldr	x1, [x19,#496]
ffff8000113a2d38:	aa1303e0 	mov	x0, x19
ffff8000113a2d3c:	f9411c22 	ldr	x2, [x1,#568]
ffff8000113a2d40:	aa1503e1 	mov	x1, x21
ffff8000113a2d44:	d63f0040 	blr	x2
}
ffff8000113a2d48:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2d4c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2d50:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a2d54:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2d58:	d65f03c0 	ret
		dst_release((struct dst_entry *)(refdst & SKB_DST_PTRMASK));
ffff8000113a2d5c:	927ff800 	and	x0, x0, #0xfffffffffffffffe
ffff8000113a2d60:	94000000 	bl	0 <dst_release>
			ffff8000113a2d60: R_AARCH64_CALL26	dst_release
		skb->_skb_refdst = 0UL;
ffff8000113a2d64:	f9002ebf 	str	xzr, [x21,#88]
ffff8000113a2d68:	17ffffe0 	b	ffff8000113a2ce8 <dev_fill_metadata_dst+0xa8>
__CMPXCHG_CASE(w,  ,  mb_, 32, dmb ish,  , l, "memory", K)
ffff8000113a2d6c:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a2d70:	885f7c45 	ldxr	w5, [x2]
ffff8000113a2d74:	4a0400a7 	eor	w7, w5, w4
ffff8000113a2d78:	35000087 	cbnz	w7, ffff8000113a2d88 <dev_fill_metadata_dst+0x148>
ffff8000113a2d7c:	8807fc43 	stlxr	w7, w3, [x2]
ffff8000113a2d80:	35ffff87 	cbnz	w7, ffff8000113a2d70 <dev_fill_metadata_dst+0x130>
ffff8000113a2d84:	d5033bbf 	dmb	ish
ffff8000113a2d88:	6b0500df 	cmp	w6, w5
ffff8000113a2d8c:	54fffca0 	b.eq	ffff8000113a2d20 <dev_fill_metadata_dst+0xe0>
ffff8000113a2d90:	2a0503e6 	mov	w6, w5
ffff8000113a2d94:	2a0603e4 	mov	w4, w6
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a2d98:	110004c3 	add	w3, w6, #0x1
		if (unlikely(c == u))
ffff8000113a2d9c:	35fffe86 	cbnz	w6, ffff8000113a2d6c <dev_fill_metadata_dst+0x12c>
	WARN_ON(atomic_inc_not_zero(&dst->__refcnt) == 0);
ffff8000113a2da0:	d4210000 	brk	#0x800
ffff8000113a2da4:	17ffffdf 	b	ffff8000113a2d20 <dev_fill_metadata_dst+0xe0>
		return -EINVAL;
ffff8000113a2da8:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a2dac:	17ffffb8 	b	ffff8000113a2c8c <dev_fill_metadata_dst+0x4c>

ffff8000113a2db0 <register_netdevice_notifier_dev_net>:
{
ffff8000113a2db0:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a2db4:	910003fd 	mov	x29, sp
ffff8000113a2db8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2dbc:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a2dc0:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a2dc4:	aa0003f3 	mov	x19, x0
ffff8000113a2dc8:	aa1e03e0 	mov	x0, x30
ffff8000113a2dcc:	aa0103f6 	mov	x22, x1
ffff8000113a2dd0:	aa0203f5 	mov	x21, x2
ffff8000113a2dd4:	94000000 	bl	0 <_mcount>
			ffff8000113a2dd4: R_AARCH64_CALL26	_mcount
	rtnl_lock();
ffff8000113a2dd8:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a2dd8: R_AARCH64_CALL26	rtnl_lock
	err = __register_netdevice_notifier_net(dev_net(dev), nb, false);
ffff8000113a2ddc:	f9427a60 	ldr	x0, [x19,#1264]
ffff8000113a2de0:	aa1603e1 	mov	x1, x22
ffff8000113a2de4:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a2de8:	97fff674 	bl	ffff8000113a07b8 <__register_netdevice_notifier_net>
ffff8000113a2dec:	2a0003f4 	mov	w20, w0
	if (!err) {
ffff8000113a2df0:	34000100 	cbz	w0, ffff8000113a2e10 <register_netdevice_notifier_dev_net+0x60>
	rtnl_unlock();
ffff8000113a2df4:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a2df4: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a2df8:	2a1403e0 	mov	w0, w20
ffff8000113a2dfc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2e00:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2e04:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a2e08:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2e0c:	d65f03c0 	ret
		nn->nb = nb;
ffff8000113a2e10:	f9000ab6 	str	x22, [x21,#16]
	__list_add(new, head, head->next);
ffff8000113a2e14:	f9446276 	ldr	x22, [x19,#2240]
		list_add(&nn->list, &dev->net_notifier_list);
ffff8000113a2e18:	91230277 	add	x23, x19, #0x8c0
	if (!__list_add_valid(new, prev, next))
ffff8000113a2e1c:	aa1503e0 	mov	x0, x21
ffff8000113a2e20:	aa1703e1 	mov	x1, x23
ffff8000113a2e24:	aa1603e2 	mov	x2, x22
ffff8000113a2e28:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a2e28: R_AARCH64_CALL26	__list_add_valid
ffff8000113a2e2c:	53001c00 	uxtb	w0, w0
ffff8000113a2e30:	34fffe20 	cbz	w0, ffff8000113a2df4 <register_netdevice_notifier_dev_net+0x44>
	next->prev = new;
ffff8000113a2e34:	f90006d5 	str	x21, [x22,#8]
	new->prev = prev;
ffff8000113a2e38:	f90006b7 	str	x23, [x21,#8]
	new->next = next;
ffff8000113a2e3c:	f90002b6 	str	x22, [x21]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a2e40:	f9046275 	str	x21, [x19,#2240]
	rtnl_unlock();
ffff8000113a2e44:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a2e44: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a2e48:	2a1403e0 	mov	w0, w20
ffff8000113a2e4c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a2e50:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2e54:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a2e58:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a2e5c:	d65f03c0 	ret

ffff8000113a2e60 <deliver_skb>:
{
ffff8000113a2e60:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a2e64:	910003fd 	mov	x29, sp
ffff8000113a2e68:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2e6c:	aa0203e3 	mov	x3, x2
ffff8000113a2e70:	aa0003f3 	mov	x19, x0
ffff8000113a2e74:	aa0103f4 	mov	x20, x1
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a2e78:	b40000c0 	cbz	x0, ffff8000113a2e90 <deliver_skb+0x30>
	return skb->head + skb->end;
ffff8000113a2e7c:	f9406002 	ldr	x2, [x0,#192]
ffff8000113a2e80:	b940bc01 	ldr	w1, [x0,#188]
ffff8000113a2e84:	8b010041 	add	x1, x2, x1
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a2e88:	39400c22 	ldrb	w2, [x1,#3]
ffff8000113a2e8c:	371802c2 	tbnz	w2, #3, ffff8000113a2ee4 <deliver_skb+0x84>
	refcount_inc(&skb->users);
ffff8000113a2e90:	91035260 	add	x0, x19, #0xd4
ATOMIC_OPS(add, add, I)
ffff8000113a2e94:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a2e98:	885f7c01 	ldxr	w1, [x0]
ffff8000113a2e9c:	11000422 	add	w2, w1, #0x1
ffff8000113a2ea0:	88047c02 	stxr	w4, w2, [x0]
ffff8000113a2ea4:	35ffffa4 	cbnz	w4, ffff8000113a2e98 <deliver_skb+0x38>
 */
static inline void refcount_add(int i, refcount_t *r)
{
	int old = atomic_fetch_add_relaxed(i, &r->refs);

	if (unlikely(!old))
ffff8000113a2ea8:	6b1f003f 	cmp	w1, wzr
ffff8000113a2eac:	54000380 	b.eq	ffff8000113a2f1c <deliver_skb+0xbc>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113a2eb0:	540002cb 	b.lt	ffff8000113a2f08 <deliver_skb+0xa8>
ffff8000113a2eb4:	3100043f 	cmn	w1, #0x1
ffff8000113a2eb8:	54000284 	b.mi	ffff8000113a2f08 <deliver_skb+0xa8>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113a2ebc:	f9400a84 	ldr	x4, [x20,#16]
ffff8000113a2ec0:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113a2ec4:	aa1303e0 	mov	x0, x19
ffff8000113a2ec8:	aa1403e2 	mov	x2, x20
ffff8000113a2ecc:	d63f0080 	blr	x4
ffff8000113a2ed0:	2a0003e4 	mov	w4, w0
}
ffff8000113a2ed4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2ed8:	2a0403e0 	mov	w0, w4
ffff8000113a2edc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a2ee0:	d65f03c0 	ret
	if (likely(!skb_zcopy(skb)))
ffff8000113a2ee4:	f9401421 	ldr	x1, [x1,#40]
ffff8000113a2ee8:	b4fffd41 	cbz	x1, ffff8000113a2e90 <deliver_skb+0x30>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113a2eec:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113a2ef0:	f90017a3 	str	x3, [x29,#40]
ffff8000113a2ef4:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113a2ef4: R_AARCH64_CALL26	skb_copy_ubufs
		return -ENOMEM;
ffff8000113a2ef8:	12800164 	mov	w4, #0xfffffff4            	// #-12
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113a2efc:	f94017a3 	ldr	x3, [x29,#40]
ffff8000113a2f00:	35fffea0 	cbnz	w0, ffff8000113a2ed4 <deliver_skb+0x74>
ffff8000113a2f04:	17ffffe3 	b	ffff8000113a2e90 <deliver_skb+0x30>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113a2f08:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a2f0c:	f90017a3 	str	x3, [x29,#40]
ffff8000113a2f10:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113a2f10: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113a2f14:	f94017a3 	ldr	x3, [x29,#40]
ffff8000113a2f18:	17ffffe9 	b	ffff8000113a2ebc <deliver_skb+0x5c>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113a2f1c:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113a2f20:	f90017a3 	str	x3, [x29,#40]
ffff8000113a2f24:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113a2f24: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113a2f28:	f94017a3 	ldr	x3, [x29,#40]
ffff8000113a2f2c:	17ffffe4 	b	ffff8000113a2ebc <deliver_skb+0x5c>

ffff8000113a2f30 <rps_trigger_softirq>:
{
ffff8000113a2f30:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a2f34:	910003fd 	mov	x29, sp
ffff8000113a2f38:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2f3c:	f90013f5 	str	x21, [sp,#32]
ffff8000113a2f40:	aa0003f3 	mov	x19, x0
ffff8000113a2f44:	aa1e03e0 	mov	x0, x30
ffff8000113a2f48:	94000000 	bl	0 <_mcount>
			ffff8000113a2f48: R_AARCH64_CALL26	_mcount
	__list_add(new, head->prev, head);
ffff8000113a2f4c:	f9400675 	ldr	x21, [x19,#8]
	list_add_tail(&napi->poll_list, &sd->poll_list);
ffff8000113a2f50:	91044274 	add	x20, x19, #0x110
	if (!__list_add_valid(new, prev, next))
ffff8000113a2f54:	aa1403e0 	mov	x0, x20
ffff8000113a2f58:	aa1503e1 	mov	x1, x21
ffff8000113a2f5c:	aa1303e2 	mov	x2, x19
ffff8000113a2f60:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a2f60: R_AARCH64_CALL26	__list_add_valid
ffff8000113a2f64:	53001c00 	uxtb	w0, w0
ffff8000113a2f68:	340000a0 	cbz	w0, ffff8000113a2f7c <rps_trigger_softirq+0x4c>
	next->prev = new;
ffff8000113a2f6c:	f9000674 	str	x20, [x19,#8]
	new->next = next;
ffff8000113a2f70:	f9008a73 	str	x19, [x19,#272]
	new->prev = prev;
ffff8000113a2f74:	f9008e75 	str	x21, [x19,#280]
ffff8000113a2f78:	f90002b4 	str	x20, [x21]
	__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a2f7c:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113a2f80:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a2f80: R_AARCH64_CALL26	__raise_softirq_irqoff
	sd->received_rps++;
ffff8000113a2f84:	b9403260 	ldr	w0, [x19,#48]
ffff8000113a2f88:	11000400 	add	w0, w0, #0x1
ffff8000113a2f8c:	b9003260 	str	w0, [x19,#48]
}
ffff8000113a2f90:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a2f94:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a2f98:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a2f9c:	d65f03c0 	ret

ffff8000113a2fa0 <netdev_name_node_add>:
{
ffff8000113a2fa0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a2fa4:	910003fd 	mov	x29, sp
ffff8000113a2fa8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a2fac:	f90013f5 	str	x21, [sp,#32]
ffff8000113a2fb0:	aa0103f3 	mov	x19, x1
ffff8000113a2fb4:	aa0003f5 	mov	x21, x0
ffff8000113a2fb8:	aa1e03e0 	mov	x0, x30
ffff8000113a2fbc:	94000000 	bl	0 <_mcount>
			ffff8000113a2fbc: R_AARCH64_CALL26	_mcount
	hlist_add_head_rcu(&name_node->hlist,
ffff8000113a2fc0:	f9401674 	ldr	x20, [x19,#40]
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a2fc4:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a2fc8:	aa1403e0 	mov	x0, x20
ffff8000113a2fcc:	94000000 	bl	0 <strnlen>
			ffff8000113a2fcc: R_AARCH64_CALL26	strnlen
	if (p_size <= ret && maxlen != ret)
ffff8000113a2fd0:	b100041f 	cmn	x0, #0x1
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a2fd4:	aa0003e2 	mov	x2, x0
	if (p_size <= ret && maxlen != ret)
ffff8000113a2fd8:	540002a0 	b.eq	ffff8000113a302c <netdev_name_node_add+0x8c>
	unsigned int hash = full_name_hash(net, name, strnlen(name, IFNAMSIZ));
ffff8000113a2fdc:	aa1403e1 	mov	x1, x20
ffff8000113a2fe0:	aa1503e0 	mov	x0, x21
ffff8000113a2fe4:	94000000 	bl	0 <full_name_hash>
			ffff8000113a2fe4: R_AARCH64_CALL26	full_name_hash
ffff8000113a2fe8:	5290c8e1 	mov	w1, #0x8647                	// #34375
ffff8000113a2fec:	72ac3901 	movk	w1, #0x61c8, lsl #16
ffff8000113a2ff0:	1b017c00 	mul	w0, w0, w1
	return &net->dev_name_head[hash_32(hash, NETDEV_HASHBITS)];
ffff8000113a2ff4:	f94096a2 	ldr	x2, [x21,#296]
ffff8000113a2ff8:	d3587c00 	ubfx	x0, x0, #24, #8
ffff8000113a2ffc:	d37df000 	lsl	x0, x0, #3
 * list-traversal primitive must be guarded by rcu_read_lock().
 */
static inline void hlist_add_head_rcu(struct hlist_node *n,
					struct hlist_head *h)
{
	struct hlist_node *first = h->first;
ffff8000113a3000:	f8606841 	ldr	x1, [x2,x0]
ffff8000113a3004:	8b000040 	add	x0, x2, x0

	n->next = first;
ffff8000113a3008:	f9000261 	str	x1, [x19]
ffff8000113a300c:	f9000660 	str	x0, [x19,#8]
	WRITE_ONCE(n->pprev, &h->first);
	rcu_assign_pointer(hlist_first_rcu(h), n);
ffff8000113a3010:	c89ffc13 	stlr	x19, [x0]
	if (first)
ffff8000113a3014:	b4000041 	cbz	x1, ffff8000113a301c <netdev_name_node_add+0x7c>
ffff8000113a3018:	f9000433 	str	x19, [x1,#8]
}
ffff8000113a301c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3020:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a3024:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a3028:	d65f03c0 	ret
		fortify_panic(__func__);
ffff8000113a302c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a302c: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff8000113a3030:	91000000 	add	x0, x0, #0x0
			ffff8000113a3030: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff8000113a3034:	91044000 	add	x0, x0, #0x110
ffff8000113a3038:	94000000 	bl	0 <fortify_panic>
			ffff8000113a3038: R_AARCH64_CALL26	fortify_panic

ffff8000113a303c <napi_disable>:
{
ffff8000113a303c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a3040:	910003fd 	mov	x29, sp
ffff8000113a3044:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3048:	f90013f5 	str	x21, [sp,#32]
ffff8000113a304c:	aa0003f4 	mov	x20, x0
ffff8000113a3050:	aa1e03e0 	mov	x0, x30
ffff8000113a3054:	94000000 	bl	0 <_mcount>
			ffff8000113a3054: R_AARCH64_CALL26	_mcount
ffff8000113a3058:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a3058: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a305c:	f94002a0 	ldr	x0, [x21]
			ffff8000113a305c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	p += BIT_WORD(nr);
ffff8000113a3060:	91004293 	add	x19, x20, #0x10
ffff8000113a3064:	f9001fa0 	str	x0, [x29,#56]
	might_sleep();
ffff8000113a3068:	94000000 	bl	0 <_cond_resched>
			ffff8000113a3068: R_AARCH64_CALL26	_cond_resched
ATOMIC64_OPS(or, orr, L)
ffff8000113a306c:	f9800271 	prfm	pstl1strm, [x19]
ffff8000113a3070:	c85f7e60 	ldxr	x0, [x19]
ffff8000113a3074:	b27e0000 	orr	x0, x0, #0x4
ffff8000113a3078:	c8017e60 	stxr	w1, x0, [x19]
ffff8000113a307c:	35ffffa1 	cbnz	w1, ffff8000113a3070 <napi_disable+0x34>
ffff8000113a3080:	14000003 	b	ffff8000113a308c <napi_disable+0x50>
		msleep(1);
ffff8000113a3084:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113a3088:	94000000 	bl	0 <msleep>
			ffff8000113a3088: R_AARCH64_CALL26	msleep
	__READ_ONCE_SIZE;
ffff8000113a308c:	f9400a80 	ldr	x0, [x20,#16]
	if (READ_ONCE(*p) & mask)
ffff8000113a3090:	3707ffa0 	tbnz	w0, #0, ffff8000113a3084 <napi_disable+0x48>
ffff8000113a3094:	f9800271 	prfm	pstl1strm, [x19]
ffff8000113a3098:	c85f7e60 	ldxr	x0, [x19]
ffff8000113a309c:	b2400001 	orr	x1, x0, #0x1
ffff8000113a30a0:	c802fe61 	stlxr	w2, x1, [x19]
ffff8000113a30a4:	35ffffa2 	cbnz	w2, ffff8000113a3098 <napi_disable+0x5c>
ffff8000113a30a8:	d5033bbf 	dmb	ish
	while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
ffff8000113a30ac:	3707fec0 	tbnz	w0, #0, ffff8000113a3084 <napi_disable+0x48>
ffff8000113a30b0:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113a30b4:	361800a0 	tbz	w0, #3, ffff8000113a30c8 <napi_disable+0x8c>
		msleep(1);
ffff8000113a30b8:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113a30bc:	94000000 	bl	0 <msleep>
			ffff8000113a30bc: R_AARCH64_CALL26	msleep
ffff8000113a30c0:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113a30c4:	371fffa0 	tbnz	w0, #3, ffff8000113a30b8 <napi_disable+0x7c>
ffff8000113a30c8:	f9800271 	prfm	pstl1strm, [x19]
ffff8000113a30cc:	c85f7e60 	ldxr	x0, [x19]
ffff8000113a30d0:	b27d0001 	orr	x1, x0, #0x8
ffff8000113a30d4:	c802fe61 	stlxr	w2, x1, [x19]
ffff8000113a30d8:	35ffffa2 	cbnz	w2, ffff8000113a30cc <napi_disable+0x90>
ffff8000113a30dc:	d5033bbf 	dmb	ish
	while (test_and_set_bit(NAPI_STATE_NPSVC, &n->state))
ffff8000113a30e0:	371ffec0 	tbnz	w0, #3, ffff8000113a30b8 <napi_disable+0x7c>
	hrtimer_cancel(&n->timer);
ffff8000113a30e4:	91048280 	add	x0, x20, #0x120
ffff8000113a30e8:	94000000 	bl	0 <hrtimer_cancel>
			ffff8000113a30e8: R_AARCH64_CALL26	hrtimer_cancel
ATOMIC64_OPS(andnot, bic, )
ffff8000113a30ec:	d2800080 	mov	x0, #0x4                   	// #4
ffff8000113a30f0:	91004284 	add	x4, x20, #0x10
ffff8000113a30f4:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a30f8:	c85f7c81 	ldxr	x1, [x4]
ffff8000113a30fc:	8a200021 	bic	x1, x1, x0
ffff8000113a3100:	c8027c81 	stxr	w2, x1, [x4]
ffff8000113a3104:	35ffffa2 	cbnz	w2, ffff8000113a30f8 <napi_disable+0xbc>
}
ffff8000113a3108:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a310c:	f94002a0 	ldr	x0, [x21]
			ffff8000113a310c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a3110:	eb00003f 	cmp	x1, x0
ffff8000113a3114:	540000a1 	b.ne	ffff8000113a3128 <napi_disable+0xec>
ffff8000113a3118:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a311c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a3120:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a3124:	d65f03c0 	ret
ffff8000113a3128:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a3128: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a312c <__netdev_name_node_alt_destroy>:
{
ffff8000113a312c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3130:	910003fd 	mov	x29, sp
ffff8000113a3134:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a3138:	aa0003f3 	mov	x19, x0
ffff8000113a313c:	aa1e03e0 	mov	x0, x30
ffff8000113a3140:	94000000 	bl	0 <_mcount>
			ffff8000113a3140: R_AARCH64_CALL26	_mcount
	if (!__list_del_entry_valid(entry))
ffff8000113a3144:	91004260 	add	x0, x19, #0x10
ffff8000113a3148:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3148: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a314c:	53001c00 	uxtb	w0, w0
ffff8000113a3150:	340000a0 	cbz	w0, ffff8000113a3164 <__netdev_name_node_alt_destroy+0x38>
	__list_del(entry->prev, entry->next);
ffff8000113a3154:	f9400e60 	ldr	x0, [x19,#24]
ffff8000113a3158:	f9400a61 	ldr	x1, [x19,#16]
	next->prev = prev;
ffff8000113a315c:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a3160:	f9000001 	str	x1, [x0]
	entry->next = LIST_POISON1;
ffff8000113a3164:	d2802002 	mov	x2, #0x100                 	// #256
	entry->prev = LIST_POISON2;
ffff8000113a3168:	d2802441 	mov	x1, #0x122                 	// #290
	entry->next = LIST_POISON1;
ffff8000113a316c:	f2fbd5a2 	movk	x2, #0xdead, lsl #48
	entry->prev = LIST_POISON2;
ffff8000113a3170:	f2fbd5a1 	movk	x1, #0xdead, lsl #48
	struct hlist_node *next = n->next;
ffff8000113a3174:	f9400260 	ldr	x0, [x19]
	struct hlist_node **pprev = n->pprev;
ffff8000113a3178:	f9400663 	ldr	x3, [x19,#8]
	entry->next = LIST_POISON1;
ffff8000113a317c:	f9000a62 	str	x2, [x19,#16]
	entry->prev = LIST_POISON2;
ffff8000113a3180:	f9000e61 	str	x1, [x19,#24]
ffff8000113a3184:	f9000060 	str	x0, [x3]
	if (next)
ffff8000113a3188:	b4000040 	cbz	x0, ffff8000113a3190 <__netdev_name_node_alt_destroy+0x64>
ffff8000113a318c:	f9000403 	str	x3, [x0,#8]
ffff8000113a3190:	d2802441 	mov	x1, #0x122                 	// #290
ffff8000113a3194:	f2fbd5a1 	movk	x1, #0xdead, lsl #48
	kfree(name_node->name);
ffff8000113a3198:	f9401660 	ldr	x0, [x19,#40]
ffff8000113a319c:	f9000661 	str	x1, [x19,#8]
ffff8000113a31a0:	94000000 	bl	0 <kfree>
			ffff8000113a31a0: R_AARCH64_CALL26	kfree
	kfree(name_node);
ffff8000113a31a4:	aa1303e0 	mov	x0, x19
ffff8000113a31a8:	94000000 	bl	0 <kfree>
			ffff8000113a31a8: R_AARCH64_CALL26	kfree
}
ffff8000113a31ac:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a31b0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a31b4:	d65f03c0 	ret

ffff8000113a31b8 <netdev_name_node_alt_destroy>:
{
ffff8000113a31b8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a31bc:	910003fd 	mov	x29, sp
ffff8000113a31c0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a31c4:	aa0003f3 	mov	x19, x0
ffff8000113a31c8:	aa1e03e0 	mov	x0, x30
ffff8000113a31cc:	f90017a1 	str	x1, [x29,#40]
ffff8000113a31d0:	94000000 	bl	0 <_mcount>
			ffff8000113a31d0: R_AARCH64_CALL26	_mcount
	name_node = netdev_name_node_lookup(net, name);
ffff8000113a31d4:	f9427a60 	ldr	x0, [x19,#1264]
ffff8000113a31d8:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a31dc:	97fff125 	bl	ffff80001139f670 <netdev_name_node_lookup>
	if (!name_node)
ffff8000113a31e0:	b4000200 	cbz	x0, ffff8000113a3220 <netdev_name_node_alt_destroy+0x68>
	if (name_node == dev->name_node || name_node->dev != dev)
ffff8000113a31e4:	f9400a62 	ldr	x2, [x19,#16]
ffff8000113a31e8:	eb00005f 	cmp	x2, x0
ffff8000113a31ec:	54000120 	b.eq	ffff8000113a3210 <netdev_name_node_alt_destroy+0x58>
ffff8000113a31f0:	f9401001 	ldr	x1, [x0,#32]
ffff8000113a31f4:	eb13003f 	cmp	x1, x19
ffff8000113a31f8:	540000c1 	b.ne	ffff8000113a3210 <netdev_name_node_alt_destroy+0x58>
	__netdev_name_node_alt_destroy(name_node);
ffff8000113a31fc:	97ffffcc 	bl	ffff8000113a312c <__netdev_name_node_alt_destroy>
	return 0;
ffff8000113a3200:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a3204:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3208:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a320c:	d65f03c0 	ret
ffff8000113a3210:	f9400bf3 	ldr	x19, [sp,#16]
		return -EINVAL;
ffff8000113a3214:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113a3218:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a321c:	d65f03c0 	ret
		return -ENOENT;
ffff8000113a3220:	12800020 	mov	w0, #0xfffffffe            	// #-2
ffff8000113a3224:	17fffff8 	b	ffff8000113a3204 <netdev_name_node_alt_destroy+0x4c>

ffff8000113a3228 <netdev_name_node_alt_create>:
{
ffff8000113a3228:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a322c:	910003fd 	mov	x29, sp
ffff8000113a3230:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3234:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3238:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a323c:	aa0003f4 	mov	x20, x0
ffff8000113a3240:	aa1e03e0 	mov	x0, x30
ffff8000113a3244:	aa0103f3 	mov	x19, x1
ffff8000113a3248:	94000000 	bl	0 <_mcount>
			ffff8000113a3248: R_AARCH64_CALL26	_mcount
ffff8000113a324c:	f9427a95 	ldr	x21, [x20,#1264]
	name_node = netdev_name_node_lookup(net, name);
ffff8000113a3250:	aa1303e1 	mov	x1, x19
ffff8000113a3254:	aa1503e0 	mov	x0, x21
ffff8000113a3258:	97fff106 	bl	ffff80001139f670 <netdev_name_node_lookup>
ffff8000113a325c:	aa0003f6 	mov	x22, x0
	if (name_node)
ffff8000113a3260:	b50003a0 	cbnz	x0, ffff8000113a32d4 <netdev_name_node_alt_create+0xac>
	name_node = netdev_name_node_alloc(dev, name);
ffff8000113a3264:	aa1303e1 	mov	x1, x19
ffff8000113a3268:	aa1403e0 	mov	x0, x20
ffff8000113a326c:	97fff135 	bl	ffff80001139f740 <netdev_name_node_alloc>
ffff8000113a3270:	aa0003f3 	mov	x19, x0
	if (!name_node)
ffff8000113a3274:	b40003c0 	cbz	x0, ffff8000113a32ec <netdev_name_node_alt_create+0xc4>
	netdev_name_node_add(net, name_node);
ffff8000113a3278:	aa1503e0 	mov	x0, x21
ffff8000113a327c:	aa1303e1 	mov	x1, x19
ffff8000113a3280:	97ffff48 	bl	ffff8000113a2fa0 <netdev_name_node_add>
	list_add_tail(&name_node->list, &dev->name_node->list);
ffff8000113a3284:	f9400a94 	ldr	x20, [x20,#16]
ffff8000113a3288:	91004277 	add	x23, x19, #0x10
	__list_add(new, head->prev, head);
ffff8000113a328c:	f9400e95 	ldr	x21, [x20,#24]
ffff8000113a3290:	91004298 	add	x24, x20, #0x10
	if (!__list_add_valid(new, prev, next))
ffff8000113a3294:	aa1503e1 	mov	x1, x21
ffff8000113a3298:	aa1703e0 	mov	x0, x23
ffff8000113a329c:	aa1803e2 	mov	x2, x24
ffff8000113a32a0:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a32a0: R_AARCH64_CALL26	__list_add_valid
ffff8000113a32a4:	53001c01 	uxtb	w1, w0
	return 0;
ffff8000113a32a8:	2a1603e0 	mov	w0, w22
ffff8000113a32ac:	340000a1 	cbz	w1, ffff8000113a32c0 <netdev_name_node_alt_create+0x98>
	next->prev = new;
ffff8000113a32b0:	f9000e97 	str	x23, [x20,#24]
	new->next = next;
ffff8000113a32b4:	f9000a78 	str	x24, [x19,#16]
	new->prev = prev;
ffff8000113a32b8:	f9000e75 	str	x21, [x19,#24]
ffff8000113a32bc:	f90002b7 	str	x23, [x21]
}
ffff8000113a32c0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a32c4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a32c8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a32cc:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a32d0:	d65f03c0 	ret
		return -EEXIST;
ffff8000113a32d4:	12800200 	mov	w0, #0xffffffef            	// #-17
}
ffff8000113a32d8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a32dc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a32e0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a32e4:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a32e8:	d65f03c0 	ret
		return -ENOMEM;
ffff8000113a32ec:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113a32f0:	17fffff4 	b	ffff8000113a32c0 <netdev_name_node_alt_create+0x98>

ffff8000113a32f4 <unregister_netdevice_notifier_dev_net>:
{
ffff8000113a32f4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a32f8:	910003fd 	mov	x29, sp
ffff8000113a32fc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3300:	aa0003f4 	mov	x20, x0
ffff8000113a3304:	aa1e03e0 	mov	x0, x30
ffff8000113a3308:	aa0203f3 	mov	x19, x2
ffff8000113a330c:	f90017a1 	str	x1, [x29,#40]
ffff8000113a3310:	94000000 	bl	0 <_mcount>
			ffff8000113a3310: R_AARCH64_CALL26	_mcount
	rtnl_lock();
ffff8000113a3314:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a3314: R_AARCH64_CALL26	rtnl_lock
	if (!__list_del_entry_valid(entry))
ffff8000113a3318:	aa1303e0 	mov	x0, x19
ffff8000113a331c:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a331c: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3320:	53001c00 	uxtb	w0, w0
ffff8000113a3324:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a3328:	340000a0 	cbz	w0, ffff8000113a333c <unregister_netdevice_notifier_dev_net+0x48>
	__list_del(entry->prev, entry->next);
ffff8000113a332c:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a3330:	f9400262 	ldr	x2, [x19]
	next->prev = prev;
ffff8000113a3334:	f9000440 	str	x0, [x2,#8]
ffff8000113a3338:	f9000002 	str	x2, [x0]
	entry->next = LIST_POISON1;
ffff8000113a333c:	d2802003 	mov	x3, #0x100                 	// #256
	entry->prev = LIST_POISON2;
ffff8000113a3340:	d2802442 	mov	x2, #0x122                 	// #290
	entry->next = LIST_POISON1;
ffff8000113a3344:	f2fbd5a3 	movk	x3, #0xdead, lsl #48
	entry->prev = LIST_POISON2;
ffff8000113a3348:	f2fbd5a2 	movk	x2, #0xdead, lsl #48
	entry->next = LIST_POISON1;
ffff8000113a334c:	f9000263 	str	x3, [x19]
	entry->prev = LIST_POISON2;
ffff8000113a3350:	f9000662 	str	x2, [x19,#8]
	err = __unregister_netdevice_notifier_net(dev_net(dev), nb);
ffff8000113a3354:	f9427a80 	ldr	x0, [x20,#1264]
ffff8000113a3358:	97fffab7 	bl	ffff8000113a1e34 <__unregister_netdevice_notifier_net>
	rtnl_unlock();
ffff8000113a335c:	f90017a0 	str	x0, [x29,#40]
ffff8000113a3360:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a3360: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a3364:	f94017a0 	ldr	x0, [x29,#40]
ffff8000113a3368:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a336c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a3370:	d65f03c0 	ret

ffff8000113a3374 <list_netdevice>:
{
ffff8000113a3374:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a3378:	910003fd 	mov	x29, sp
ffff8000113a337c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3380:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3384:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a3388:	f90023f9 	str	x25, [sp,#64]
ffff8000113a338c:	aa0003f3 	mov	x19, x0
ffff8000113a3390:	aa1e03e0 	mov	x0, x30
ffff8000113a3394:	aa1e03f7 	mov	x23, x30
ffff8000113a3398:	94000000 	bl	0 <_mcount>
			ffff8000113a3398: R_AARCH64_CALL26	_mcount
ffff8000113a339c:	f9427a74 	ldr	x20, [x19,#1264]
	ASSERT_RTNL();
ffff8000113a33a0:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a33a0: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a33a4:	340007a0 	cbz	w0, ffff8000113a3498 <list_netdevice+0x124>
 */
static __always_inline struct task_struct *get_current(void)
{
	unsigned long sp_el0;

	asm ("mrs %0, sp_el0" : "=r" (sp_el0));
ffff8000113a33a8:	d5384100 	mrs	x0, sp_el0
	__READ_ONCE_SIZE;
ffff8000113a33ac:	b9401801 	ldr	w1, [x0,#24]
}

static inline void __preempt_count_add(int val)
{
	u32 pc = READ_ONCE(current_thread_info()->preempt.count);
	pc += val;
ffff8000113a33b0:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a33b4:	b9001801 	str	w1, [x0,#24]
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a33b8:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a33b8: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a33bc:	91000301 	add	x1, x24, #0x0
			ffff8000113a33bc: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a33c0:	910cc020 	add	x0, x1, #0x330
ffff8000113a33c4:	52801fe3 	mov	w3, #0xff                  	// #255
ffff8000113a33c8:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a33cc:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a33d0:	885ffc04 	ldaxr	w4, [x0]
ffff8000113a33d4:	4a020085 	eor	w5, w4, w2
ffff8000113a33d8:	35000065 	cbnz	w5, ffff8000113a33e4 <list_netdevice+0x70>
ffff8000113a33dc:	88057c03 	stxr	w5, w3, [x0]
ffff8000113a33e0:	35ffff85 	cbnz	w5, ffff8000113a33d0 <list_netdevice+0x5c>
 */
static inline void queued_write_lock(struct qrwlock *lock)
{
	u32 cnts = 0;
	/* Optimize for the unfair lock case where the fair flag is 0. */
	if (likely(atomic_try_cmpxchg_acquire(&lock->cnts, &cnts, _QW_LOCKED)))
ffff8000113a33e4:	35000764 	cbnz	w4, ffff8000113a34d0 <list_netdevice+0x15c>
	__list_add_rcu(new, head->prev, head);
ffff8000113a33e8:	f9404e96 	ldr	x22, [x20,#152]
	list_add_tail_rcu(&dev->dev_list, &net->dev_base_head);
ffff8000113a33ec:	91012275 	add	x21, x19, #0x48
ffff8000113a33f0:	91024299 	add	x25, x20, #0x90
	if (!__list_add_valid(new, prev, next))
ffff8000113a33f4:	aa1503e0 	mov	x0, x21
ffff8000113a33f8:	aa1603e1 	mov	x1, x22
ffff8000113a33fc:	aa1903e2 	mov	x2, x25
ffff8000113a3400:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a3400: R_AARCH64_CALL26	__list_add_valid
ffff8000113a3404:	53001c00 	uxtb	w0, w0
ffff8000113a3408:	340000a0 	cbz	w0, ffff8000113a341c <list_netdevice+0xa8>
	new->next = next;
ffff8000113a340c:	f9002679 	str	x25, [x19,#72]
	new->prev = prev;
ffff8000113a3410:	f90006b6 	str	x22, [x21,#8]
	rcu_assign_pointer(list_next_rcu(prev), new);
ffff8000113a3414:	c89ffed5 	stlr	x21, [x22]
	next->prev = new;
ffff8000113a3418:	f9004e95 	str	x21, [x20,#152]
	netdev_name_node_add(net, dev->name_node);
ffff8000113a341c:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113a3420:	aa1403e0 	mov	x0, x20
ffff8000113a3424:	97fffedf 	bl	ffff8000113a2fa0 <netdev_name_node_add>
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff8000113a3428:	39440260 	ldrb	w0, [x19,#256]
ffff8000113a342c:	f9409a82 	ldr	x2, [x20,#304]
ffff8000113a3430:	d37df000 	lsl	x0, x0, #3
	struct hlist_node *first = h->first;
ffff8000113a3434:	f8606841 	ldr	x1, [x2,x0]
ffff8000113a3438:	8b000040 	add	x0, x2, x0
	n->next = first;
ffff8000113a343c:	f901ca61 	str	x1, [x19,#912]
ffff8000113a3440:	910e4262 	add	x2, x19, #0x390
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a3444:	f901ce60 	str	x0, [x19,#920]
	rcu_assign_pointer(hlist_first_rcu(h), n);
ffff8000113a3448:	c89ffc02 	stlr	x2, [x0]
	if (first)
ffff8000113a344c:	b4000041 	cbz	x1, ffff8000113a3454 <list_netdevice+0xe0>
ffff8000113a3450:	f9000422 	str	x2, [x1,#8]
 * queued_write_unlock - release write lock of a queue rwlock
 * @lock : Pointer to queue rwlock structure
 */
static inline void queued_write_unlock(struct qrwlock *lock)
{
	smp_store_release(&lock->wlocked, 0);
ffff8000113a3454:	91000318 	add	x24, x24, #0x0
			ffff8000113a3454: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3458:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a345c:	910cc318 	add	x24, x24, #0x330
ffff8000113a3460:	089fff00 	stlrb	w0, [x24]

static inline void __raw_write_unlock_bh(rwlock_t *lock)
{
	rwlock_release(&lock->dep_map, _RET_IP_);
	do_raw_write_unlock(lock);
	__local_bh_enable_ip(_RET_IP_, SOFTIRQ_LOCK_OFFSET);
ffff8000113a3464:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a3468:	aa1703e0 	mov	x0, x23
ffff8000113a346c:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a346c: R_AARCH64_CALL26	__local_bh_enable_ip
ffff8000113a3470:	b9401281 	ldr	w1, [x20,#16]
	while (++net->dev_base_seq == 0)
ffff8000113a3474:	31000421 	adds	w1, w1, #0x1
ffff8000113a3478:	54ffffe0 	b.eq	ffff8000113a3474 <list_netdevice+0x100>
ffff8000113a347c:	b9001281 	str	w1, [x20,#16]
}
ffff8000113a3480:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3484:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a3488:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a348c:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a3490:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a3494:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a3498:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3498: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a349c:	91000063 	add	x3, x3, #0x0
			ffff8000113a349c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a34a0:	39403860 	ldrb	w0, [x3,#14]
ffff8000113a34a4:	35fff820 	cbnz	w0, ffff8000113a33a8 <list_netdevice+0x34>
ffff8000113a34a8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a34a8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a34ac:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a34ac: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a34b0:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a34b4:	91000000 	add	x0, x0, #0x0
			ffff8000113a34b4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a34b8:	91000021 	add	x1, x1, #0x0
			ffff8000113a34b8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a34bc:	52802cc2 	mov	w2, #0x166                 	// #358
ffff8000113a34c0:	39003864 	strb	w4, [x3,#14]
ffff8000113a34c4:	94000000 	bl	0 <__warn_printk>
			ffff8000113a34c4: R_AARCH64_CALL26	__warn_printk
ffff8000113a34c8:	d4210000 	brk	#0x800
ffff8000113a34cc:	17ffffb7 	b	ffff8000113a33a8 <list_netdevice+0x34>
	queued_write_lock_slowpath(lock);
ffff8000113a34d0:	94000000 	bl	0 <queued_write_lock_slowpath>
			ffff8000113a34d0: R_AARCH64_CALL26	queued_write_lock_slowpath
ffff8000113a34d4:	17ffffc5 	b	ffff8000113a33e8 <list_netdevice+0x74>

ffff8000113a34d8 <net_dec_ingress_queue>:
{
ffff8000113a34d8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a34dc:	910003fd 	mov	x29, sp
ffff8000113a34e0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a34e4:	aa1e03e0 	mov	x0, x30
ffff8000113a34e8:	94000000 	bl	0 <_mcount>
			ffff8000113a34e8: R_AARCH64_CALL26	_mcount
	atomic_inc(&key->enabled);
}

static inline void static_key_slow_dec(struct static_key *key)
{
	STATIC_KEY_CHECK_USE(key);
ffff8000113a34ec:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a34ec: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a34f0:	39400000 	ldrb	w0, [x0]
			ffff8000113a34f0: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a34f4:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a34f4: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a34f8:	34000180 	cbz	w0, ffff8000113a3528 <net_dec_ingress_queue+0x50>
ATOMIC_OPS(sub, sub, J)
ffff8000113a34fc:	91000260 	add	x0, x19, #0x0
			ffff8000113a34fc: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3500:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a3504:	910ce004 	add	x4, x0, #0x338
ffff8000113a3508:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a350c:	885f7c82 	ldxr	w2, [x4]
ffff8000113a3510:	4b010042 	sub	w2, w2, w1
ffff8000113a3514:	88037c82 	stxr	w3, w2, [x4]
ffff8000113a3518:	35ffffa3 	cbnz	w3, ffff8000113a350c <net_dec_ingress_queue+0x34>
}
ffff8000113a351c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3520:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3524:	d65f03c0 	ret
ffff8000113a3528:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3528: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a352c:	91000262 	add	x2, x19, #0x0
			ffff8000113a352c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3530:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3530: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a3534:	91000021 	add	x1, x1, #0x0
			ffff8000113a3534: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a3538:	91000000 	add	x0, x0, #0x0
			ffff8000113a3538: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a353c:	91004021 	add	x1, x1, #0x10
ffff8000113a3540:	910ce042 	add	x2, x2, #0x338
ffff8000113a3544:	94000000 	bl	0 <__warn_printk>
			ffff8000113a3544: R_AARCH64_CALL26	__warn_printk
ffff8000113a3548:	d4210000 	brk	#0x800
ffff8000113a354c:	17ffffec 	b	ffff8000113a34fc <net_dec_ingress_queue+0x24>

ffff8000113a3550 <net_dec_egress_queue>:
{
ffff8000113a3550:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3554:	910003fd 	mov	x29, sp
ffff8000113a3558:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a355c:	aa1e03e0 	mov	x0, x30
ffff8000113a3560:	94000000 	bl	0 <_mcount>
			ffff8000113a3560: R_AARCH64_CALL26	_mcount
ffff8000113a3564:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a3564: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a3568:	39400000 	ldrb	w0, [x0]
			ffff8000113a3568: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a356c:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a356c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a3570:	34000180 	cbz	w0, ffff8000113a35a0 <net_dec_egress_queue+0x50>
ffff8000113a3574:	91000260 	add	x0, x19, #0x0
			ffff8000113a3574: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3578:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a357c:	910d0004 	add	x4, x0, #0x340
ffff8000113a3580:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a3584:	885f7c82 	ldxr	w2, [x4]
ffff8000113a3588:	4b010042 	sub	w2, w2, w1
ffff8000113a358c:	88037c82 	stxr	w3, w2, [x4]
ffff8000113a3590:	35ffffa3 	cbnz	w3, ffff8000113a3584 <net_dec_egress_queue+0x34>
}
ffff8000113a3594:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3598:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a359c:	d65f03c0 	ret
ffff8000113a35a0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a35a0: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a35a4:	91000262 	add	x2, x19, #0x0
			ffff8000113a35a4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a35a8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a35a8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a35ac:	91000021 	add	x1, x1, #0x0
			ffff8000113a35ac: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a35b0:	91000000 	add	x0, x0, #0x0
			ffff8000113a35b0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a35b4:	91004021 	add	x1, x1, #0x10
ffff8000113a35b8:	910d0042 	add	x2, x2, #0x340
ffff8000113a35bc:	94000000 	bl	0 <__warn_printk>
			ffff8000113a35bc: R_AARCH64_CALL26	__warn_printk
ffff8000113a35c0:	d4210000 	brk	#0x800
ffff8000113a35c4:	17ffffec 	b	ffff8000113a3574 <net_dec_egress_queue+0x24>

ffff8000113a35c8 <net_disable_timestamp>:
{
ffff8000113a35c8:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a35cc:	910003fd 	mov	x29, sp
ffff8000113a35d0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a35d4:	aa1e03e0 	mov	x0, x30
ffff8000113a35d8:	94000000 	bl	0 <_mcount>
			ffff8000113a35d8: R_AARCH64_CALL26	_mcount
ffff8000113a35dc:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a35dc: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a35e0:	39400000 	ldrb	w0, [x0]
			ffff8000113a35e0: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a35e4:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a35e4: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a35e8:	34000180 	cbz	w0, ffff8000113a3618 <net_disable_timestamp+0x50>
ffff8000113a35ec:	91000260 	add	x0, x19, #0x0
			ffff8000113a35ec: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a35f0:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a35f4:	910d2004 	add	x4, x0, #0x348
ffff8000113a35f8:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a35fc:	885f7c82 	ldxr	w2, [x4]
ffff8000113a3600:	4b010042 	sub	w2, w2, w1
ffff8000113a3604:	88037c82 	stxr	w3, w2, [x4]
ffff8000113a3608:	35ffffa3 	cbnz	w3, ffff8000113a35fc <net_disable_timestamp+0x34>
}
ffff8000113a360c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3610:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3614:	d65f03c0 	ret
ffff8000113a3618:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3618: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a361c:	91000262 	add	x2, x19, #0x0
			ffff8000113a361c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3620:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3620: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a3624:	91000021 	add	x1, x1, #0x0
			ffff8000113a3624: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a3628:	91000000 	add	x0, x0, #0x0
			ffff8000113a3628: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a362c:	91004021 	add	x1, x1, #0x10
ffff8000113a3630:	910d2042 	add	x2, x2, #0x348
ffff8000113a3634:	94000000 	bl	0 <__warn_printk>
			ffff8000113a3634: R_AARCH64_CALL26	__warn_printk
ffff8000113a3638:	d4210000 	brk	#0x800
ffff8000113a363c:	17ffffec 	b	ffff8000113a35ec <net_disable_timestamp+0x24>

ffff8000113a3640 <net_inc_ingress_queue>:
{
ffff8000113a3640:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3644:	910003fd 	mov	x29, sp
ffff8000113a3648:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a364c:	aa1e03e0 	mov	x0, x30
ffff8000113a3650:	94000000 	bl	0 <_mcount>
			ffff8000113a3650: R_AARCH64_CALL26	_mcount
	STATIC_KEY_CHECK_USE(key);
ffff8000113a3654:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a3654: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a3658:	39400000 	ldrb	w0, [x0]
			ffff8000113a3658: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a365c:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a365c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a3660:	34000160 	cbz	w0, ffff8000113a368c <net_inc_ingress_queue+0x4c>
ATOMIC_OPS(add, add, I)
ffff8000113a3664:	91000260 	add	x0, x19, #0x0
			ffff8000113a3664: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3668:	910ce003 	add	x3, x0, #0x338
ffff8000113a366c:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a3670:	885f7c61 	ldxr	w1, [x3]
ffff8000113a3674:	11000421 	add	w1, w1, #0x1
ffff8000113a3678:	88027c61 	stxr	w2, w1, [x3]
ffff8000113a367c:	35ffffa2 	cbnz	w2, ffff8000113a3670 <net_inc_ingress_queue+0x30>
}
ffff8000113a3680:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3684:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3688:	d65f03c0 	ret
ffff8000113a368c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a368c: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a3690:	91000262 	add	x2, x19, #0x0
			ffff8000113a3690: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3694:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3694: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a3698:	91000021 	add	x1, x1, #0x0
			ffff8000113a3698: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a369c:	91000000 	add	x0, x0, #0x0
			ffff8000113a369c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a36a0:	9100a021 	add	x1, x1, #0x28
ffff8000113a36a4:	910ce042 	add	x2, x2, #0x338
ffff8000113a36a8:	94000000 	bl	0 <__warn_printk>
			ffff8000113a36a8: R_AARCH64_CALL26	__warn_printk
ffff8000113a36ac:	d4210000 	brk	#0x800
ffff8000113a36b0:	17ffffed 	b	ffff8000113a3664 <net_inc_ingress_queue+0x24>

ffff8000113a36b4 <net_inc_egress_queue>:
{
ffff8000113a36b4:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a36b8:	910003fd 	mov	x29, sp
ffff8000113a36bc:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a36c0:	aa1e03e0 	mov	x0, x30
ffff8000113a36c4:	94000000 	bl	0 <_mcount>
			ffff8000113a36c4: R_AARCH64_CALL26	_mcount
ffff8000113a36c8:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a36c8: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a36cc:	39400000 	ldrb	w0, [x0]
			ffff8000113a36cc: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a36d0:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a36d0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a36d4:	34000160 	cbz	w0, ffff8000113a3700 <net_inc_egress_queue+0x4c>
ffff8000113a36d8:	91000260 	add	x0, x19, #0x0
			ffff8000113a36d8: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a36dc:	910d0003 	add	x3, x0, #0x340
ffff8000113a36e0:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a36e4:	885f7c61 	ldxr	w1, [x3]
ffff8000113a36e8:	11000421 	add	w1, w1, #0x1
ffff8000113a36ec:	88027c61 	stxr	w2, w1, [x3]
ffff8000113a36f0:	35ffffa2 	cbnz	w2, ffff8000113a36e4 <net_inc_egress_queue+0x30>
}
ffff8000113a36f4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a36f8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a36fc:	d65f03c0 	ret
ffff8000113a3700:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3700: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a3704:	91000262 	add	x2, x19, #0x0
			ffff8000113a3704: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3708:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3708: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a370c:	91000021 	add	x1, x1, #0x0
			ffff8000113a370c: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a3710:	91000000 	add	x0, x0, #0x0
			ffff8000113a3710: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a3714:	9100a021 	add	x1, x1, #0x28
ffff8000113a3718:	910d0042 	add	x2, x2, #0x340
ffff8000113a371c:	94000000 	bl	0 <__warn_printk>
			ffff8000113a371c: R_AARCH64_CALL26	__warn_printk
ffff8000113a3720:	d4210000 	brk	#0x800
ffff8000113a3724:	17ffffed 	b	ffff8000113a36d8 <net_inc_egress_queue+0x24>

ffff8000113a3728 <net_enable_timestamp>:
{
ffff8000113a3728:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a372c:	910003fd 	mov	x29, sp
ffff8000113a3730:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a3734:	aa1e03e0 	mov	x0, x30
ffff8000113a3738:	94000000 	bl	0 <_mcount>
			ffff8000113a3738: R_AARCH64_CALL26	_mcount
ffff8000113a373c:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113a373c: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a3740:	39400000 	ldrb	w0, [x0]
			ffff8000113a3740: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a3744:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3744: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a3748:	34000160 	cbz	w0, ffff8000113a3774 <net_enable_timestamp+0x4c>
ffff8000113a374c:	91000260 	add	x0, x19, #0x0
			ffff8000113a374c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3750:	910d2003 	add	x3, x0, #0x348
ffff8000113a3754:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a3758:	885f7c61 	ldxr	w1, [x3]
ffff8000113a375c:	11000421 	add	w1, w1, #0x1
ffff8000113a3760:	88027c61 	stxr	w2, w1, [x3]
ffff8000113a3764:	35ffffa2 	cbnz	w2, ffff8000113a3758 <net_enable_timestamp+0x30>
}
ffff8000113a3768:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a376c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3770:	d65f03c0 	ret
ffff8000113a3774:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3774: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a3778:	91000262 	add	x2, x19, #0x0
			ffff8000113a3778: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a377c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a377c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a3780:	91000021 	add	x1, x1, #0x0
			ffff8000113a3780: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a3784:	91000000 	add	x0, x0, #0x0
			ffff8000113a3784: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a3788:	9100a021 	add	x1, x1, #0x28
ffff8000113a378c:	910d2042 	add	x2, x2, #0x348
ffff8000113a3790:	94000000 	bl	0 <__warn_printk>
			ffff8000113a3790: R_AARCH64_CALL26	__warn_printk
ffff8000113a3794:	d4210000 	brk	#0x800
ffff8000113a3798:	17ffffed 	b	ffff8000113a374c <net_enable_timestamp+0x24>

ffff8000113a379c <netif_stacked_transfer_operstate>:
{
ffff8000113a379c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a37a0:	910003fd 	mov	x29, sp
ffff8000113a37a4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a37a8:	f90013f5 	str	x21, [sp,#32]
ffff8000113a37ac:	aa0003f5 	mov	x21, x0
ffff8000113a37b0:	aa1e03e0 	mov	x0, x30
ffff8000113a37b4:	aa0103f3 	mov	x19, x1
ffff8000113a37b8:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a37b8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a37bc:	94000000 	bl	0 <_mcount>
			ffff8000113a37bc: R_AARCH64_CALL26	_mcount
ffff8000113a37c0:	f9400281 	ldr	x1, [x20]
			ffff8000113a37c0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (rootdev->operstate == IF_OPER_DORMANT)
ffff8000113a37c4:	3948d2a0 	ldrb	w0, [x21,#564]
{
ffff8000113a37c8:	f9001fa1 	str	x1, [x29,#56]
	if (rootdev->operstate == IF_OPER_DORMANT)
ffff8000113a37cc:	7100141f 	cmp	w0, #0x5
	__READ_ONCE_SIZE;
ffff8000113a37d0:	f9402260 	ldr	x0, [x19,#64]
ffff8000113a37d4:	54000380 	b.eq	ffff8000113a3844 <netif_stacked_transfer_operstate+0xa8>
	if (!(READ_ONCE(*p) & mask))
ffff8000113a37d8:	36200180 	tbz	w0, #4, ffff8000113a3808 <netif_stacked_transfer_operstate+0x6c>
ATOMIC64_OPS(andnot, bic, )
ffff8000113a37dc:	d2800200 	mov	x0, #0x10                  	// #16
ffff8000113a37e0:	91010264 	add	x4, x19, #0x40
ffff8000113a37e4:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a37e8:	c85f7c81 	ldxr	x1, [x4]
ffff8000113a37ec:	8a200022 	bic	x2, x1, x0
ffff8000113a37f0:	c803fc82 	stlxr	w3, x2, [x4]
ffff8000113a37f4:	35ffffa3 	cbnz	w3, ffff8000113a37e8 <netif_stacked_transfer_operstate+0x4c>
ffff8000113a37f8:	d5033bbf 	dmb	ish
	if (test_and_clear_bit(__LINK_STATE_DORMANT, &dev->state))
ffff8000113a37fc:	36200061 	tbz	w1, #4, ffff8000113a3808 <netif_stacked_transfer_operstate+0x6c>
		linkwatch_fire_event(dev);
ffff8000113a3800:	aa1303e0 	mov	x0, x19
ffff8000113a3804:	94000000 	bl	0 <linkwatch_fire_event>
			ffff8000113a3804: R_AARCH64_CALL26	linkwatch_fire_event
ffff8000113a3808:	f94022a0 	ldr	x0, [x21,#64]
	if (netif_carrier_ok(rootdev))
ffff8000113a380c:	36100160 	tbz	w0, #2, ffff8000113a3838 <netif_stacked_transfer_operstate+0x9c>
		netif_carrier_off(dev);
ffff8000113a3810:	aa1303e0 	mov	x0, x19
ffff8000113a3814:	94000000 	bl	0 <netif_carrier_off>
			ffff8000113a3814: R_AARCH64_CALL26	netif_carrier_off
}
ffff8000113a3818:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a381c:	f9400280 	ldr	x0, [x20]
			ffff8000113a381c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a3820:	eb00003f 	cmp	x1, x0
ffff8000113a3824:	54000241 	b.ne	ffff8000113a386c <netif_stacked_transfer_operstate+0xd0>
ffff8000113a3828:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a382c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a3830:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a3834:	d65f03c0 	ret
		netif_carrier_on(dev);
ffff8000113a3838:	aa1303e0 	mov	x0, x19
ffff8000113a383c:	94000000 	bl	0 <netif_carrier_on>
			ffff8000113a383c: R_AARCH64_CALL26	netif_carrier_on
ffff8000113a3840:	17fffff6 	b	ffff8000113a3818 <netif_stacked_transfer_operstate+0x7c>
	if (READ_ONCE(*p) & mask)
ffff8000113a3844:	3727fe20 	tbnz	w0, #4, ffff8000113a3808 <netif_stacked_transfer_operstate+0x6c>
ATOMIC64_OPS(or, orr, L)
ffff8000113a3848:	91010263 	add	x3, x19, #0x40
ffff8000113a384c:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a3850:	c85f7c60 	ldxr	x0, [x3]
ffff8000113a3854:	b27c0001 	orr	x1, x0, #0x10
ffff8000113a3858:	c802fc61 	stlxr	w2, x1, [x3]
ffff8000113a385c:	35ffffa2 	cbnz	w2, ffff8000113a3850 <netif_stacked_transfer_operstate+0xb4>
ffff8000113a3860:	d5033bbf 	dmb	ish
	if (!test_and_set_bit(__LINK_STATE_DORMANT, &dev->state))
ffff8000113a3864:	3627fce0 	tbz	w0, #4, ffff8000113a3800 <netif_stacked_transfer_operstate+0x64>
ffff8000113a3868:	17ffffe8 	b	ffff8000113a3808 <netif_stacked_transfer_operstate+0x6c>
}
ffff8000113a386c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a386c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a3870 <unlist_netdevice>:
{
ffff8000113a3870:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a3874:	910003fd 	mov	x29, sp
ffff8000113a3878:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a387c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3880:	aa0003f3 	mov	x19, x0
ffff8000113a3884:	aa1e03e0 	mov	x0, x30
ffff8000113a3888:	aa1e03f5 	mov	x21, x30
ffff8000113a388c:	94000000 	bl	0 <_mcount>
			ffff8000113a388c: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff8000113a3890:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a3890: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a3894:	340007c0 	cbz	w0, ffff8000113a398c <unlist_netdevice+0x11c>
ffff8000113a3898:	d5384100 	mrs	x0, sp_el0
ffff8000113a389c:	b9401801 	ldr	w1, [x0,#24]
ffff8000113a38a0:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a38a4:	b9001801 	str	w1, [x0,#24]
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a38a8:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a38a8: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a38ac:	910002c1 	add	x1, x22, #0x0
			ffff8000113a38ac: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a38b0:	910cc020 	add	x0, x1, #0x330
ffff8000113a38b4:	52801fe3 	mov	w3, #0xff                  	// #255
ffff8000113a38b8:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a38bc:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a38c0:	885ffc04 	ldaxr	w4, [x0]
ffff8000113a38c4:	4a020085 	eor	w5, w4, w2
ffff8000113a38c8:	35000065 	cbnz	w5, ffff8000113a38d4 <unlist_netdevice+0x64>
ffff8000113a38cc:	88057c03 	stxr	w5, w3, [x0]
ffff8000113a38d0:	35ffff85 	cbnz	w5, ffff8000113a38c0 <unlist_netdevice+0x50>
	if (likely(atomic_try_cmpxchg_acquire(&lock->cnts, &cnts, _QW_LOCKED)))
ffff8000113a38d4:	35000784 	cbnz	w4, ffff8000113a39c4 <unlist_netdevice+0x154>
	list_del_rcu(&dev->dev_list);
ffff8000113a38d8:	91012274 	add	x20, x19, #0x48
	if (!__list_del_entry_valid(entry))
ffff8000113a38dc:	aa1403e0 	mov	x0, x20
ffff8000113a38e0:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a38e0: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a38e4:	53001c00 	uxtb	w0, w0
ffff8000113a38e8:	340000a0 	cbz	w0, ffff8000113a38fc <unlist_netdevice+0x8c>
	__list_del(entry->prev, entry->next);
ffff8000113a38ec:	f9400680 	ldr	x0, [x20,#8]
ffff8000113a38f0:	f9402661 	ldr	x1, [x19,#72]
	next->prev = prev;
ffff8000113a38f4:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a38f8:	f9000001 	str	x1, [x0]
	entry->prev = LIST_POISON2;
ffff8000113a38fc:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a3900:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
ffff8000113a3904:	f9000680 	str	x0, [x20,#8]
	netdev_name_node_del(dev->name_node);
ffff8000113a3908:	f9400a61 	ldr	x1, [x19,#16]
	struct hlist_node *next = n->next;
ffff8000113a390c:	f9400022 	ldr	x2, [x1]
	struct hlist_node **pprev = n->pprev;
ffff8000113a3910:	f9400420 	ldr	x0, [x1,#8]
ffff8000113a3914:	f9000002 	str	x2, [x0]
	if (next)
ffff8000113a3918:	b4000042 	cbz	x2, ffff8000113a3920 <unlist_netdevice+0xb0>
ffff8000113a391c:	f9000440 	str	x0, [x2,#8]
ffff8000113a3920:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a3924:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
ffff8000113a3928:	f9000420 	str	x0, [x1,#8]
	struct hlist_node *next = n->next;
ffff8000113a392c:	f941ca61 	ldr	x1, [x19,#912]
	struct hlist_node **pprev = n->pprev;
ffff8000113a3930:	f941ce60 	ldr	x0, [x19,#920]
ffff8000113a3934:	f9000001 	str	x1, [x0]
	if (next)
ffff8000113a3938:	b4000041 	cbz	x1, ffff8000113a3940 <unlist_netdevice+0xd0>
ffff8000113a393c:	f9000420 	str	x0, [x1,#8]
ffff8000113a3940:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a3944:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
	smp_store_release(&lock->wlocked, 0);
ffff8000113a3948:	910002d6 	add	x22, x22, #0x0
			ffff8000113a3948: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a394c:	f901ce60 	str	x0, [x19,#920]
ffff8000113a3950:	910cc2d6 	add	x22, x22, #0x330
ffff8000113a3954:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a3958:	089ffec0 	stlrb	w0, [x22]
ffff8000113a395c:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a3960:	aa1503e0 	mov	x0, x21
ffff8000113a3964:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a3964: R_AARCH64_CALL26	__local_bh_enable_ip
ffff8000113a3968:	f9427a61 	ldr	x1, [x19,#1264]
ffff8000113a396c:	b9401020 	ldr	w0, [x1,#16]
	while (++net->dev_base_seq == 0)
ffff8000113a3970:	31000400 	adds	w0, w0, #0x1
ffff8000113a3974:	54ffffe0 	b.eq	ffff8000113a3970 <unlist_netdevice+0x100>
ffff8000113a3978:	b9001020 	str	w0, [x1,#16]
}
ffff8000113a397c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3980:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a3984:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a3988:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a398c:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a398c: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a3990:	91000063 	add	x3, x3, #0x0
			ffff8000113a3990: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a3994:	39403c60 	ldrb	w0, [x3,#15]
ffff8000113a3998:	35fff800 	cbnz	w0, ffff8000113a3898 <unlist_netdevice+0x28>
ffff8000113a399c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a399c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a39a0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a39a0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a39a4:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a39a8:	91000000 	add	x0, x0, #0x0
			ffff8000113a39a8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a39ac:	91000021 	add	x1, x1, #0x0
			ffff8000113a39ac: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a39b0:	52802ee2 	mov	w2, #0x177                 	// #375
ffff8000113a39b4:	39003c64 	strb	w4, [x3,#15]
ffff8000113a39b8:	94000000 	bl	0 <__warn_printk>
			ffff8000113a39b8: R_AARCH64_CALL26	__warn_printk
ffff8000113a39bc:	d4210000 	brk	#0x800
ffff8000113a39c0:	17ffffb6 	b	ffff8000113a3898 <unlist_netdevice+0x28>
	queued_write_lock_slowpath(lock);
ffff8000113a39c4:	94000000 	bl	0 <queued_write_lock_slowpath>
			ffff8000113a39c4: R_AARCH64_CALL26	queued_write_lock_slowpath
ffff8000113a39c8:	17ffffc4 	b	ffff8000113a38d8 <unlist_netdevice+0x68>

ffff8000113a39cc <__dev_remove_pack>:
{
ffff8000113a39cc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a39d0:	910003fd 	mov	x29, sp
ffff8000113a39d4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a39d8:	f90013f5 	str	x21, [sp,#32]
ffff8000113a39dc:	aa0003f3 	mov	x19, x0
ffff8000113a39e0:	aa1e03e0 	mov	x0, x30
ffff8000113a39e4:	94000000 	bl	0 <_mcount>
			ffff8000113a39e4: R_AARCH64_CALL26	_mcount
void __dev_remove_pack(struct packet_type *pt)
ffff8000113a39e8:	79400260 	ldrh	w0, [x19]
ffff8000113a39ec:	f9400674 	ldr	x20, [x19,#8]
	if (pt->type == htons(ETH_P_ALL))
ffff8000113a39f0:	710c001f 	cmp	w0, #0x300
ffff8000113a39f4:	540005a0 	b.eq	ffff8000113a3aa8 <__dev_remove_pack+0xdc>
		return pt->dev ? &pt->dev->ptype_specific :
ffff8000113a39f8:	b40005f4 	cbz	x20, ffff8000113a3ab4 <__dev_remove_pack+0xe8>
ffff8000113a39fc:	91026294 	add	x20, x20, #0x98
ffff8000113a3a00:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3a00: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a3a04:	910002a0 	add	x0, x21, #0x0
			ffff8000113a3a04: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3a08:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a3a0c:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a3a10:	910c6005 	add	x5, x0, #0x318
ffff8000113a3a14:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a3a18:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a3a1c:	4a020024 	eor	w4, w1, w2
ffff8000113a3a20:	35000064 	cbnz	w4, ffff8000113a3a2c <__dev_remove_pack+0x60>
ffff8000113a3a24:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a3a28:	35ffff84 	cbnz	w4, ffff8000113a3a18 <__dev_remove_pack+0x4c>
	if (unlikely(r != o))
ffff8000113a3a2c:	35000641 	cbnz	w1, ffff8000113a3af4 <__dev_remove_pack+0x128>
	list_for_each_entry(pt1, head, list) {
ffff8000113a3a30:	f9400282 	ldr	x2, [x20]
ffff8000113a3a34:	eb02029f 	cmp	x20, x2
ffff8000113a3a38:	d100c042 	sub	x2, x2, #0x30
ffff8000113a3a3c:	540000c1 	b.ne	ffff8000113a3a54 <__dev_remove_pack+0x88>
ffff8000113a3a40:	14000028 	b	ffff8000113a3ae0 <__dev_remove_pack+0x114>
ffff8000113a3a44:	f9401842 	ldr	x2, [x2,#48]
ffff8000113a3a48:	eb02029f 	cmp	x20, x2
ffff8000113a3a4c:	d100c042 	sub	x2, x2, #0x30
ffff8000113a3a50:	54000480 	b.eq	ffff8000113a3ae0 <__dev_remove_pack+0x114>
		if (pt == pt1) {
ffff8000113a3a54:	eb02027f 	cmp	x19, x2
ffff8000113a3a58:	54ffff61 	b.ne	ffff8000113a3a44 <__dev_remove_pack+0x78>
	if (!__list_del_entry_valid(entry))
ffff8000113a3a5c:	9100c260 	add	x0, x19, #0x30
ffff8000113a3a60:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3a60: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3a64:	53001c00 	uxtb	w0, w0
ffff8000113a3a68:	340000a0 	cbz	w0, ffff8000113a3a7c <__dev_remove_pack+0xb0>
	__list_del(entry->prev, entry->next);
ffff8000113a3a6c:	f9401e60 	ldr	x0, [x19,#56]
ffff8000113a3a70:	f9401a61 	ldr	x1, [x19,#48]
	next->prev = prev;
ffff8000113a3a74:	f9000420 	str	x0, [x1,#8]
ffff8000113a3a78:	f9000001 	str	x1, [x0]
ffff8000113a3a7c:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a3a80:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
ffff8000113a3a84:	f9001e60 	str	x0, [x19,#56]
	smp_store_release(&lock->locked, 0);
ffff8000113a3a88:	910002b5 	add	x21, x21, #0x0
			ffff8000113a3a88: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3a8c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a3a90:	910c62b5 	add	x21, x21, #0x318
ffff8000113a3a94:	089ffea0 	stlrb	w0, [x21]
}
ffff8000113a3a98:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3a9c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a3aa0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a3aa4:	d65f03c0 	ret
		return pt->dev ? &pt->dev->ptype_all : &ptype_all;
ffff8000113a3aa8:	b4000154 	cbz	x20, ffff8000113a3ad0 <__dev_remove_pack+0x104>
ffff8000113a3aac:	91022294 	add	x20, x20, #0x88
ffff8000113a3ab0:	17ffffd4 	b	ffff8000113a3a00 <__dev_remove_pack+0x34>
		return pt->dev ? &pt->dev->ptype_specific :
ffff8000113a3ab4:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3ab4: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a3ab8:	5ac00400 	rev16	w0, w0
ffff8000113a3abc:	91000294 	add	x20, x20, #0x0
			ffff8000113a3abc: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a3ac0:	d37c0c00 	ubfiz	x0, x0, #4, #4
ffff8000113a3ac4:	9120c294 	add	x20, x20, #0x830
ffff8000113a3ac8:	8b000294 	add	x20, x20, x0
ffff8000113a3acc:	17ffffcd 	b	ffff8000113a3a00 <__dev_remove_pack+0x34>
		return pt->dev ? &pt->dev->ptype_all : &ptype_all;
ffff8000113a3ad0:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3ad0: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a3ad4:	91000294 	add	x20, x20, #0x0
			ffff8000113a3ad4: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a3ad8:	91200294 	add	x20, x20, #0x800
ffff8000113a3adc:	17ffffc9 	b	ffff8000113a3a00 <__dev_remove_pack+0x34>
	pr_warn("dev_remove_pack: %p not found\n", pt);
ffff8000113a3ae0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3ae0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x278
ffff8000113a3ae4:	aa1303e1 	mov	x1, x19
ffff8000113a3ae8:	91000000 	add	x0, x0, #0x0
			ffff8000113a3ae8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x278
ffff8000113a3aec:	94000000 	bl	0 <printk>
			ffff8000113a3aec: R_AARCH64_CALL26	printk
ffff8000113a3af0:	17ffffe6 	b	ffff8000113a3a88 <__dev_remove_pack+0xbc>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a3af4:	910c6000 	add	x0, x0, #0x318
ffff8000113a3af8:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a3af8: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a3afc:	17ffffcd 	b	ffff8000113a3a30 <__dev_remove_pack+0x64>

ffff8000113a3b00 <dev_remove_pack>:
{
ffff8000113a3b00:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3b04:	910003fd 	mov	x29, sp
ffff8000113a3b08:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a3b0c:	aa0003f3 	mov	x19, x0
ffff8000113a3b10:	aa1e03e0 	mov	x0, x30
ffff8000113a3b14:	94000000 	bl	0 <_mcount>
			ffff8000113a3b14: R_AARCH64_CALL26	_mcount
	__dev_remove_pack(pt);
ffff8000113a3b18:	aa1303e0 	mov	x0, x19
ffff8000113a3b1c:	94000000 	bl	ffff8000113a39cc <__dev_remove_pack>
			ffff8000113a3b1c: R_AARCH64_CALL26	__dev_remove_pack
	synchronize_net();
ffff8000113a3b20:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a3b20: R_AARCH64_CALL26	synchronize_net
}
ffff8000113a3b24:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3b28:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3b2c:	d65f03c0 	ret

ffff8000113a3b30 <netdev_name_node_lookup_rcu>:
{
ffff8000113a3b30:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3b34:	910003fd 	mov	x29, sp
ffff8000113a3b38:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3b3c:	aa0003f3 	mov	x19, x0
ffff8000113a3b40:	aa1e03e0 	mov	x0, x30
ffff8000113a3b44:	aa0103f4 	mov	x20, x1
ffff8000113a3b48:	94000000 	bl	0 <_mcount>
			ffff8000113a3b48: R_AARCH64_CALL26	_mcount
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a3b4c:	aa1403e0 	mov	x0, x20
ffff8000113a3b50:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a3b54:	94000000 	bl	0 <strnlen>
			ffff8000113a3b54: R_AARCH64_CALL26	strnlen
	if (p_size <= ret && maxlen != ret)
ffff8000113a3b58:	b100041f 	cmn	x0, #0x1
	__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);
ffff8000113a3b5c:	aa0003e2 	mov	x2, x0
	if (p_size <= ret && maxlen != ret)
ffff8000113a3b60:	540002c0 	b.eq	ffff8000113a3bb8 <netdev_name_node_lookup_rcu+0x88>
	unsigned int hash = full_name_hash(net, name, strnlen(name, IFNAMSIZ));
ffff8000113a3b64:	aa1303e0 	mov	x0, x19
ffff8000113a3b68:	aa1403e1 	mov	x1, x20
ffff8000113a3b6c:	94000000 	bl	0 <full_name_hash>
			ffff8000113a3b6c: R_AARCH64_CALL26	full_name_hash
ffff8000113a3b70:	5290c8e1 	mov	w1, #0x8647                	// #34375
ffff8000113a3b74:	72ac3901 	movk	w1, #0x61c8, lsl #16
ffff8000113a3b78:	1b017c00 	mul	w0, w0, w1
	return &net->dev_name_head[hash_32(hash, NETDEV_HASHBITS)];
ffff8000113a3b7c:	d3587c01 	ubfx	x1, x0, #24, #8
ffff8000113a3b80:	f9409660 	ldr	x0, [x19,#296]
ffff8000113a3b84:	d37df021 	lsl	x1, x1, #3
	__READ_ONCE_SIZE;
ffff8000113a3b88:	f8616813 	ldr	x19, [x0,x1]
	hlist_for_each_entry_rcu(name_node, head, hlist)
ffff8000113a3b8c:	b40000f3 	cbz	x19, ffff8000113a3ba8 <netdev_name_node_lookup_rcu+0x78>
		if (!strcmp(name_node->name, name))
ffff8000113a3b90:	f9401660 	ldr	x0, [x19,#40]
ffff8000113a3b94:	aa1403e1 	mov	x1, x20
ffff8000113a3b98:	94000000 	bl	0 <strcmp>
			ffff8000113a3b98: R_AARCH64_CALL26	strcmp
ffff8000113a3b9c:	34000060 	cbz	w0, ffff8000113a3ba8 <netdev_name_node_lookup_rcu+0x78>
ffff8000113a3ba0:	f9400273 	ldr	x19, [x19]
	hlist_for_each_entry_rcu(name_node, head, hlist)
ffff8000113a3ba4:	b5ffff73 	cbnz	x19, ffff8000113a3b90 <netdev_name_node_lookup_rcu+0x60>
}
ffff8000113a3ba8:	aa1303e0 	mov	x0, x19
ffff8000113a3bac:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3bb0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3bb4:	d65f03c0 	ret
		fortify_panic(__func__);
ffff8000113a3bb8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3bb8: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x90
ffff8000113a3bbc:	91000000 	add	x0, x0, #0x0
			ffff8000113a3bbc: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x90
ffff8000113a3bc0:	91044000 	add	x0, x0, #0x110
ffff8000113a3bc4:	94000000 	bl	0 <fortify_panic>
			ffff8000113a3bc4: R_AARCH64_CALL26	fortify_panic

ffff8000113a3bc8 <dev_get_by_name_rcu>:
{
ffff8000113a3bc8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a3bcc:	910003fd 	mov	x29, sp
ffff8000113a3bd0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a3bd4:	aa0003f3 	mov	x19, x0
ffff8000113a3bd8:	aa1e03e0 	mov	x0, x30
ffff8000113a3bdc:	f90017a1 	str	x1, [x29,#40]
ffff8000113a3be0:	94000000 	bl	0 <_mcount>
			ffff8000113a3be0: R_AARCH64_CALL26	_mcount
	node_name = netdev_name_node_lookup_rcu(net, name);
ffff8000113a3be4:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a3be8:	aa1303e0 	mov	x0, x19
ffff8000113a3bec:	97ffffd1 	bl	ffff8000113a3b30 <netdev_name_node_lookup_rcu>
	return node_name ? node_name->dev : NULL;
ffff8000113a3bf0:	b4000040 	cbz	x0, ffff8000113a3bf8 <dev_get_by_name_rcu+0x30>
ffff8000113a3bf4:	f9401000 	ldr	x0, [x0,#32]
}
ffff8000113a3bf8:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3bfc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a3c00:	d65f03c0 	ret

ffff8000113a3c04 <dev_remove_offload>:
{
ffff8000113a3c04:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3c08:	910003fd 	mov	x29, sp
ffff8000113a3c0c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3c10:	aa0003f3 	mov	x19, x0
ffff8000113a3c14:	aa1e03e0 	mov	x0, x30
ffff8000113a3c18:	94000000 	bl	0 <_mcount>
			ffff8000113a3c18: R_AARCH64_CALL26	_mcount
ffff8000113a3c1c:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3c1c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a3c20:	91000280 	add	x0, x20, #0x0
			ffff8000113a3c20: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3c24:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a3c28:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a3c2c:	910ca005 	add	x5, x0, #0x328
ffff8000113a3c30:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a3c34:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a3c38:	4a020024 	eor	w4, w1, w2
ffff8000113a3c3c:	35000064 	cbnz	w4, ffff8000113a3c48 <dev_remove_offload+0x44>
ffff8000113a3c40:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a3c44:	35ffff84 	cbnz	w4, ffff8000113a3c34 <dev_remove_offload+0x30>
ffff8000113a3c48:	350004e1 	cbnz	w1, ffff8000113a3ce4 <dev_remove_offload+0xe0>
	list_for_each_entry(po1, head, list) {
ffff8000113a3c4c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3c4c: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a3c50:	91000000 	add	x0, x0, #0x0
			ffff8000113a3c50: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a3c54:	f9440802 	ldr	x2, [x0,#2064]
ffff8000113a3c58:	91204000 	add	x0, x0, #0x810
ffff8000113a3c5c:	eb02001f 	cmp	x0, x2
ffff8000113a3c60:	d1008042 	sub	x2, x2, #0x20
ffff8000113a3c64:	540000c1 	b.ne	ffff8000113a3c7c <dev_remove_offload+0x78>
ffff8000113a3c68:	1400001a 	b	ffff8000113a3cd0 <dev_remove_offload+0xcc>
ffff8000113a3c6c:	f9401042 	ldr	x2, [x2,#32]
ffff8000113a3c70:	eb02001f 	cmp	x0, x2
ffff8000113a3c74:	d1008042 	sub	x2, x2, #0x20
ffff8000113a3c78:	540002c0 	b.eq	ffff8000113a3cd0 <dev_remove_offload+0xcc>
		if (po == po1) {
ffff8000113a3c7c:	eb02027f 	cmp	x19, x2
ffff8000113a3c80:	54ffff61 	b.ne	ffff8000113a3c6c <dev_remove_offload+0x68>
	if (!__list_del_entry_valid(entry))
ffff8000113a3c84:	91008260 	add	x0, x19, #0x20
ffff8000113a3c88:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3c88: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3c8c:	53001c00 	uxtb	w0, w0
ffff8000113a3c90:	340000a0 	cbz	w0, ffff8000113a3ca4 <dev_remove_offload+0xa0>
	__list_del(entry->prev, entry->next);
ffff8000113a3c94:	f9401660 	ldr	x0, [x19,#40]
ffff8000113a3c98:	f9401261 	ldr	x1, [x19,#32]
	next->prev = prev;
ffff8000113a3c9c:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a3ca0:	f9000001 	str	x1, [x0]
ffff8000113a3ca4:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a3ca8:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
ffff8000113a3cac:	f9001660 	str	x0, [x19,#40]
	smp_store_release(&lock->locked, 0);
ffff8000113a3cb0:	91000294 	add	x20, x20, #0x0
			ffff8000113a3cb0: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a3cb4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a3cb8:	910ca294 	add	x20, x20, #0x328
ffff8000113a3cbc:	089ffe80 	stlrb	w0, [x20]
	synchronize_net();
ffff8000113a3cc0:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a3cc0: R_AARCH64_CALL26	synchronize_net
}
ffff8000113a3cc4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3cc8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3ccc:	d65f03c0 	ret
	pr_warn("dev_remove_offload: %p not found\n", po);
ffff8000113a3cd0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a3cd0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x2a0
ffff8000113a3cd4:	aa1303e1 	mov	x1, x19
ffff8000113a3cd8:	91000000 	add	x0, x0, #0x0
			ffff8000113a3cd8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x2a0
ffff8000113a3cdc:	94000000 	bl	0 <printk>
			ffff8000113a3cdc: R_AARCH64_CALL26	printk
ffff8000113a3ce0:	17fffff4 	b	ffff8000113a3cb0 <dev_remove_offload+0xac>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a3ce4:	910ca000 	add	x0, x0, #0x328
ffff8000113a3ce8:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a3ce8: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a3cec:	17ffffd8 	b	ffff8000113a3c4c <dev_remove_offload+0x48>

ffff8000113a3cf0 <dev_close_many>:
{
ffff8000113a3cf0:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a3cf4:	910003fd 	mov	x29, sp
ffff8000113a3cf8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3cfc:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3d00:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a3d04:	aa0003f6 	mov	x22, x0
ffff8000113a3d08:	aa1e03e0 	mov	x0, x30
ffff8000113a3d0c:	53001c37 	uxtb	w23, w1
ffff8000113a3d10:	94000000 	bl	0 <_mcount>
			ffff8000113a3d10: R_AARCH64_CALL26	_mcount
	list_for_each_entry_safe(dev, tmp, head, close_list)
ffff8000113a3d14:	f94002d3 	ldr	x19, [x22]
{
ffff8000113a3d18:	90000018 	adrp	x24, 0 <__stack_chk_guard>
			ffff8000113a3d18: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a3d1c:	f9400300 	ldr	x0, [x24]
			ffff8000113a3d1c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	list_for_each_entry_safe(dev, tmp, head, close_list)
ffff8000113a3d20:	aa1303f4 	mov	x20, x19
ffff8000113a3d24:	f8588695 	ldr	x21, [x20],#-120
{
ffff8000113a3d28:	f9002fa0 	str	x0, [x29,#88]
	list_for_each_entry_safe(dev, tmp, head, close_list)
ffff8000113a3d2c:	eb16027f 	cmp	x19, x22
ffff8000113a3d30:	d101e2b5 	sub	x21, x21, #0x78
ffff8000113a3d34:	54000121 	b.ne	ffff8000113a3d58 <dev_close_many+0x68>
ffff8000113a3d38:	1400001a 	b	ffff8000113a3da0 <dev_close_many+0xb0>
ffff8000113a3d3c:	aa1503f3 	mov	x19, x21
ffff8000113a3d40:	f8478e60 	ldr	x0, [x19,#120]!
ffff8000113a3d44:	eb16027f 	cmp	x19, x22
ffff8000113a3d48:	d101e000 	sub	x0, x0, #0x78
ffff8000113a3d4c:	540002a0 	b.eq	ffff8000113a3da0 <dev_close_many+0xb0>
ffff8000113a3d50:	aa1503f4 	mov	x20, x21
ffff8000113a3d54:	aa0003f5 	mov	x21, x0
		if (!(dev->flags & IFF_UP))
ffff8000113a3d58:	b9422a80 	ldr	w0, [x20,#552]
ffff8000113a3d5c:	3707ff00 	tbnz	w0, #0, ffff8000113a3d3c <dev_close_many+0x4c>
	if (!__list_del_entry_valid(entry))
ffff8000113a3d60:	aa1303e0 	mov	x0, x19
ffff8000113a3d64:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3d64: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3d68:	53001c00 	uxtb	w0, w0
ffff8000113a3d6c:	9101e281 	add	x1, x20, #0x78
ffff8000113a3d70:	340000a0 	cbz	w0, ffff8000113a3d84 <dev_close_many+0x94>
	__list_del(entry->prev, entry->next);
ffff8000113a3d74:	f9400420 	ldr	x0, [x1,#8]
ffff8000113a3d78:	f9403e82 	ldr	x2, [x20,#120]
	next->prev = prev;
ffff8000113a3d7c:	f9000440 	str	x0, [x2,#8]
ffff8000113a3d80:	f9000002 	str	x2, [x0]
ffff8000113a3d84:	f9003e93 	str	x19, [x20,#120]
	list->prev = list;
ffff8000113a3d88:	f9000433 	str	x19, [x1,#8]
	list_for_each_entry_safe(dev, tmp, head, close_list)
ffff8000113a3d8c:	aa1503f3 	mov	x19, x21
ffff8000113a3d90:	f8478e60 	ldr	x0, [x19,#120]!
ffff8000113a3d94:	eb16027f 	cmp	x19, x22
ffff8000113a3d98:	d101e000 	sub	x0, x0, #0x78
ffff8000113a3d9c:	54fffda1 	b.ne	ffff8000113a3d50 <dev_close_many+0x60>
	__dev_close_many(head);
ffff8000113a3da0:	aa1603e0 	mov	x0, x22
ffff8000113a3da4:	97fff1b7 	bl	ffff8000113a0480 <__dev_close_many>
	list_for_each_entry_safe(dev, tmp, head, close_list) {
ffff8000113a3da8:	f94002d3 	ldr	x19, [x22]
ffff8000113a3dac:	aa1303f4 	mov	x20, x19
ffff8000113a3db0:	f8588695 	ldr	x21, [x20],#-120
ffff8000113a3db4:	eb16027f 	cmp	x19, x22
ffff8000113a3db8:	d101e2b5 	sub	x21, x21, #0x78
ffff8000113a3dbc:	54000121 	b.ne	ffff8000113a3de0 <dev_close_many+0xf0>
ffff8000113a3dc0:	14000023 	b	ffff8000113a3e4c <dev_close_many+0x15c>
ffff8000113a3dc4:	aa1503f3 	mov	x19, x21
ffff8000113a3dc8:	f8478e60 	ldr	x0, [x19,#120]!
ffff8000113a3dcc:	eb16027f 	cmp	x19, x22
ffff8000113a3dd0:	d101e000 	sub	x0, x0, #0x78
ffff8000113a3dd4:	540003c0 	b.eq	ffff8000113a3e4c <dev_close_many+0x15c>
ffff8000113a3dd8:	aa1503f4 	mov	x20, x21
ffff8000113a3ddc:	aa0003f5 	mov	x21, x0
		rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING, GFP_KERNEL);
ffff8000113a3de0:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113a3de4:	aa1403e1 	mov	x1, x20
ffff8000113a3de8:	52800822 	mov	w2, #0x41                  	// #65
ffff8000113a3dec:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113a3df0:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113a3df0: R_AARCH64_CALL26	rtmsg_ifinfo
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a3df4:	d2800040 	mov	x0, #0x2                   	// #2
ffff8000113a3df8:	910123a1 	add	x1, x29, #0x48
	struct netdev_notifier_info info = {
ffff8000113a3dfc:	f90027b4 	str	x20, [x29,#72]
ffff8000113a3e00:	f9002bbf 	str	xzr, [x29,#80]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a3e04:	97fff0bd 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
		if (unlink)
ffff8000113a3e08:	34fffdf7 	cbz	w23, ffff8000113a3dc4 <dev_close_many+0xd4>
	if (!__list_del_entry_valid(entry))
ffff8000113a3e0c:	aa1303e0 	mov	x0, x19
ffff8000113a3e10:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3e10: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3e14:	53001c00 	uxtb	w0, w0
ffff8000113a3e18:	9101e281 	add	x1, x20, #0x78
ffff8000113a3e1c:	340000a0 	cbz	w0, ffff8000113a3e30 <dev_close_many+0x140>
	__list_del(entry->prev, entry->next);
ffff8000113a3e20:	f9400420 	ldr	x0, [x1,#8]
ffff8000113a3e24:	f9403e82 	ldr	x2, [x20,#120]
	next->prev = prev;
ffff8000113a3e28:	f9000440 	str	x0, [x2,#8]
ffff8000113a3e2c:	f9000002 	str	x2, [x0]
ffff8000113a3e30:	f9003e93 	str	x19, [x20,#120]
	list->prev = list;
ffff8000113a3e34:	f9000433 	str	x19, [x1,#8]
	list_for_each_entry_safe(dev, tmp, head, close_list) {
ffff8000113a3e38:	aa1503f3 	mov	x19, x21
ffff8000113a3e3c:	f8478e60 	ldr	x0, [x19,#120]!
ffff8000113a3e40:	eb16027f 	cmp	x19, x22
ffff8000113a3e44:	d101e000 	sub	x0, x0, #0x78
ffff8000113a3e48:	54fffc81 	b.ne	ffff8000113a3dd8 <dev_close_many+0xe8>
}
ffff8000113a3e4c:	f9402fa1 	ldr	x1, [x29,#88]
ffff8000113a3e50:	f9400300 	ldr	x0, [x24]
			ffff8000113a3e50: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a3e54:	eb00003f 	cmp	x1, x0
ffff8000113a3e58:	540000c1 	b.ne	ffff8000113a3e70 <dev_close_many+0x180>
ffff8000113a3e5c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3e60:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a3e64:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a3e68:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a3e6c:	d65f03c0 	ret
ffff8000113a3e70:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a3e70: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a3e74 <dev_close.part.108>:
void dev_close(struct net_device *dev)
ffff8000113a3e74:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a3e78:	910003fd 	mov	x29, sp
ffff8000113a3e7c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3e80:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3e84:	aa0003f6 	mov	x22, x0
ffff8000113a3e88:	aa1e03e0 	mov	x0, x30
ffff8000113a3e8c:	94000000 	bl	0 <_mcount>
			ffff8000113a3e8c: R_AARCH64_CALL26	_mcount
ffff8000113a3e90:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a3e90: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
		LIST_HEAD(single);
ffff8000113a3e94:	9100e3b3 	add	x19, x29, #0x38
void dev_close(struct net_device *dev)
ffff8000113a3e98:	f94002a3 	ldr	x3, [x21]
			ffff8000113a3e98: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
		list_add(&dev->close_list, &single);
ffff8000113a3e9c:	9101e2d4 	add	x20, x22, #0x78
	if (!__list_add_valid(new, prev, next))
ffff8000113a3ea0:	aa1403e0 	mov	x0, x20
ffff8000113a3ea4:	aa1303e1 	mov	x1, x19
ffff8000113a3ea8:	aa1303e2 	mov	x2, x19
void dev_close(struct net_device *dev)
ffff8000113a3eac:	f90027a3 	str	x3, [x29,#72]
		LIST_HEAD(single);
ffff8000113a3eb0:	f9001fb3 	str	x19, [x29,#56]
ffff8000113a3eb4:	f90023b3 	str	x19, [x29,#64]
ffff8000113a3eb8:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a3eb8: R_AARCH64_CALL26	__list_add_valid
ffff8000113a3ebc:	53001c00 	uxtb	w0, w0
ffff8000113a3ec0:	340000a0 	cbz	w0, ffff8000113a3ed4 <dev_close.part.108+0x60>
	new->next = next;
ffff8000113a3ec4:	f9003ed3 	str	x19, [x22,#120]
	next->prev = new;
ffff8000113a3ec8:	f90023b4 	str	x20, [x29,#64]
	new->prev = prev;
ffff8000113a3ecc:	f90042d3 	str	x19, [x22,#128]
ffff8000113a3ed0:	f9001fb4 	str	x20, [x29,#56]
		dev_close_many(&single, true);
ffff8000113a3ed4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a3ed8:	aa1303e0 	mov	x0, x19
ffff8000113a3edc:	94000000 	bl	ffff8000113a3cf0 <dev_close_many>
			ffff8000113a3edc: R_AARCH64_CALL26	dev_close_many
	if (!__list_del_entry_valid(entry))
ffff8000113a3ee0:	aa1303e0 	mov	x0, x19
ffff8000113a3ee4:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a3ee4: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a3ee8:	53001c00 	uxtb	w0, w0
ffff8000113a3eec:	340000a0 	cbz	w0, ffff8000113a3f00 <dev_close.part.108+0x8c>
	__list_del(entry->prev, entry->next);
ffff8000113a3ef0:	f94023a0 	ldr	x0, [x29,#64]
ffff8000113a3ef4:	f9401fa1 	ldr	x1, [x29,#56]
	next->prev = prev;
ffff8000113a3ef8:	f9000420 	str	x0, [x1,#8]
ffff8000113a3efc:	f9000001 	str	x1, [x0]
}
ffff8000113a3f00:	f94027a1 	ldr	x1, [x29,#72]
ffff8000113a3f04:	f94002a0 	ldr	x0, [x21]
			ffff8000113a3f04: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a3f08:	eb00003f 	cmp	x1, x0
ffff8000113a3f0c:	540000a1 	b.ne	ffff8000113a3f20 <dev_close.part.108+0xac>
ffff8000113a3f10:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a3f14:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a3f18:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a3f1c:	d65f03c0 	ret
ffff8000113a3f20:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a3f20: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a3f24 <dev_close>:
{
ffff8000113a3f24:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a3f28:	910003fd 	mov	x29, sp
ffff8000113a3f2c:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a3f30:	aa0003f3 	mov	x19, x0
ffff8000113a3f34:	aa1e03e0 	mov	x0, x30
ffff8000113a3f38:	94000000 	bl	0 <_mcount>
			ffff8000113a3f38: R_AARCH64_CALL26	_mcount
	if (dev->flags & IFF_UP) {
ffff8000113a3f3c:	b9422a60 	ldr	w0, [x19,#552]
ffff8000113a3f40:	36000060 	tbz	w0, #0, ffff8000113a3f4c <dev_close+0x28>
ffff8000113a3f44:	aa1303e0 	mov	x0, x19
ffff8000113a3f48:	97ffffcb 	bl	ffff8000113a3e74 <dev_close.part.108>
}
ffff8000113a3f4c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a3f50:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a3f54:	d65f03c0 	ret

ffff8000113a3f58 <dev_change_net_namespace>:
{
ffff8000113a3f58:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113a3f5c:	910003fd 	mov	x29, sp
ffff8000113a3f60:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a3f64:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a3f68:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a3f6c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a3f70:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a3f74:	aa0003f4 	mov	x20, x0
ffff8000113a3f78:	aa1e03e0 	mov	x0, x30
ffff8000113a3f7c:	90000017 	adrp	x23, 0 <__stack_chk_guard>
			ffff8000113a3f7c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a3f80:	aa0103f6 	mov	x22, x1
ffff8000113a3f84:	aa0203f3 	mov	x19, x2
ffff8000113a3f88:	94000000 	bl	0 <_mcount>
			ffff8000113a3f88: R_AARCH64_CALL26	_mcount
ffff8000113a3f8c:	f94002e0 	ldr	x0, [x23]
			ffff8000113a3f8c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a3f90:	f9427a98 	ldr	x24, [x20,#1264]
ffff8000113a3f94:	f9003fa0 	str	x0, [x29,#120]
	ASSERT_RTNL();
ffff8000113a3f98:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a3f98: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a3f9c:	34001b20 	cbz	w0, ffff8000113a4300 <dev_change_net_namespace+0x3a8>
	if (dev->features & NETIF_F_NETNS_LOCAL)
ffff8000113a3fa0:	f9406680 	ldr	x0, [x20,#200]
ffff8000113a3fa4:	92730000 	and	x0, x0, #0x2000
ffff8000113a3fa8:	b50019e0 	cbnz	x0, ffff8000113a42e4 <dev_change_net_namespace+0x38c>
	if (dev->reg_state != NETREG_REGISTERED)
ffff8000113a3fac:	39536281 	ldrb	w1, [x20,#1240]
ffff8000113a3fb0:	7100043f 	cmp	w1, #0x1
ffff8000113a3fb4:	54001981 	b.ne	ffff8000113a42e4 <dev_change_net_namespace+0x38c>
	if (net_eq(net_old, net))
ffff8000113a3fb8:	eb1802df 	cmp	x22, x24
ffff8000113a3fbc:	54001300 	b.eq	ffff8000113a421c <dev_change_net_namespace+0x2c4>
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a3fc0:	aa1603e0 	mov	x0, x22
ffff8000113a3fc4:	aa1403e1 	mov	x1, x20
ffff8000113a3fc8:	97ffedaa 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff8000113a3fcc:	b4000120 	cbz	x0, ffff8000113a3ff0 <dev_change_net_namespace+0x98>
	if (__dev_get_by_name(net, dev->name)) {
ffff8000113a3fd0:	f9401000 	ldr	x0, [x0,#32]
ffff8000113a3fd4:	b40000e0 	cbz	x0, ffff8000113a3ff0 <dev_change_net_namespace+0x98>
		if (!pat)
ffff8000113a3fd8:	b40018b3 	cbz	x19, ffff8000113a42ec <dev_change_net_namespace+0x394>
		err = dev_get_valid_name(net, dev, pat);
ffff8000113a3fdc:	aa1403e1 	mov	x1, x20
ffff8000113a3fe0:	aa1603e0 	mov	x0, x22
ffff8000113a3fe4:	aa1303e2 	mov	x2, x19
ffff8000113a3fe8:	97fff6cb 	bl	ffff8000113a1b14 <dev_get_valid_name>
		if (err < 0)
ffff8000113a3fec:	37f81180 	tbnz	w0, #31, ffff8000113a421c <dev_change_net_namespace+0x2c4>
	if (dev->flags & IFF_UP) {
ffff8000113a3ff0:	b9422a80 	ldr	w0, [x20,#552]
ffff8000113a3ff4:	37001720 	tbnz	w0, #0, ffff8000113a42d8 <dev_change_net_namespace+0x380>
	unlist_netdevice(dev);
ffff8000113a3ff8:	aa1403e0 	mov	x0, x20
ffff8000113a3ffc:	97fffe1d 	bl	ffff8000113a3870 <unlist_netdevice>
	synchronize_net();
ffff8000113a4000:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a4000: R_AARCH64_CALL26	synchronize_net
	dev_shutdown(dev);
ffff8000113a4004:	aa1403e0 	mov	x0, x20
ffff8000113a4008:	94000000 	bl	0 <dev_shutdown>
			ffff8000113a4008: R_AARCH64_CALL26	dev_shutdown
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a400c:	9101a3a1 	add	x1, x29, #0x68
ffff8000113a4010:	d28000c0 	mov	x0, #0x6                   	// #6
	struct netdev_notifier_info info = {
ffff8000113a4014:	f90037b4 	str	x20, [x29,#104]
ffff8000113a4018:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a401c:	97fff037 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	rcu_barrier();
ffff8000113a4020:	94000000 	bl	0 <rcu_barrier>
			ffff8000113a4020: R_AARCH64_CALL26	rcu_barrier
	new_nsid = peernet2id_alloc(dev_net(dev), net, GFP_KERNEL);
ffff8000113a4024:	f9427a80 	ldr	x0, [x20,#1264]
ffff8000113a4028:	aa1603e1 	mov	x1, x22
ffff8000113a402c:	52819802 	mov	w2, #0xcc0                 	// #3264
ffff8000113a4030:	94000000 	bl	0 <peernet2id_alloc>
			ffff8000113a4030: R_AARCH64_CALL26	peernet2id_alloc
	if (__dev_get_by_index(net, dev->ifindex))
ffff8000113a4034:	b9410299 	ldr	w25, [x20,#256]
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113a4038:	f9409ac1 	ldr	x1, [x22,#304]
	new_nsid = peernet2id_alloc(dev_net(dev), net, GFP_KERNEL);
ffff8000113a403c:	b90067a0 	str	w0, [x29,#100]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff8000113a4040:	d37d1f20 	ubfiz	x0, x25, #3, #8
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113a4044:	f8606823 	ldr	x3, [x1,x0]
ffff8000113a4048:	b4000043 	cbz	x3, ffff8000113a4050 <dev_change_net_namespace+0xf8>
ffff8000113a404c:	d10e4063 	sub	x3, x3, #0x390
ffff8000113a4050:	b40000c3 	cbz	x3, ffff8000113a4068 <dev_change_net_namespace+0x110>
		if (dev->ifindex == ifindex)
ffff8000113a4054:	b9410060 	ldr	w0, [x3,#256]
ffff8000113a4058:	6b00033f 	cmp	w25, w0
ffff8000113a405c:	54001360 	b.eq	ffff8000113a42c8 <dev_change_net_namespace+0x370>
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113a4060:	f941c863 	ldr	x3, [x3,#912]
ffff8000113a4064:	b5ffff43 	cbnz	x3, ffff8000113a404c <dev_change_net_namespace+0xf4>
	rtmsg_ifinfo_newnet(RTM_DELLINK, dev, ~0U, GFP_KERNEL, &new_nsid,
ffff8000113a4068:	aa1403e1 	mov	x1, x20
ffff8000113a406c:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a4070:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113a4074:	910193a4 	add	x4, x29, #0x64
ffff8000113a4078:	2a1903e5 	mov	w5, w25
ffff8000113a407c:	52800220 	mov	w0, #0x11                  	// #17
ffff8000113a4080:	94000000 	bl	0 <rtmsg_ifinfo_newnet>
			ffff8000113a4080: R_AARCH64_CALL26	rtmsg_ifinfo_newnet
	dev_uc_flush(dev);
ffff8000113a4084:	aa1403e0 	mov	x0, x20
ffff8000113a4088:	94000000 	bl	0 <dev_uc_flush>
			ffff8000113a4088: R_AARCH64_CALL26	dev_uc_flush
	dev_mc_flush(dev);
ffff8000113a408c:	aa1403e0 	mov	x0, x20
ffff8000113a4090:	94000000 	bl	0 <dev_mc_flush>
			ffff8000113a4090: R_AARCH64_CALL26	dev_mc_flush
	kobject_uevent(&dev->dev.kobj, KOBJ_REMOVE);
ffff8000113a4094:	9114429a 	add	x26, x20, #0x510
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113a4098:	aa1403fb 	mov	x27, x20
	kobject_uevent(&dev->dev.kobj, KOBJ_REMOVE);
ffff8000113a409c:	aa1a03e0 	mov	x0, x26
ffff8000113a40a0:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a40a4:	94000000 	bl	0 <kobject_uevent>
			ffff8000113a40a4: R_AARCH64_CALL26	kobject_uevent
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113a40a8:	f84a8f73 	ldr	x19, [x27,#168]!
ffff8000113a40ac:	f9427a9c 	ldr	x28, [x20,#1264]
ffff8000113a40b0:	eb13037f 	cmp	x27, x19
ffff8000113a40b4:	d1006273 	sub	x19, x19, #0x18
ffff8000113a40b8:	54000120 	b.eq	ffff8000113a40dc <dev_change_net_namespace+0x184>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113a40bc:	f9400260 	ldr	x0, [x19]
ffff8000113a40c0:	f9427801 	ldr	x1, [x0,#1264]
ffff8000113a40c4:	eb01039f 	cmp	x28, x1
ffff8000113a40c8:	54000f00 	b.eq	ffff8000113a42a8 <dev_change_net_namespace+0x350>
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113a40cc:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113a40d0:	eb13037f 	cmp	x27, x19
ffff8000113a40d4:	d1006273 	sub	x19, x19, #0x18
ffff8000113a40d8:	54ffff21 	b.ne	ffff8000113a40bc <dev_change_net_namespace+0x164>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113a40dc:	aa1403f5 	mov	x21, x20
ffff8000113a40e0:	f84b8eb3 	ldr	x19, [x21,#184]!
ffff8000113a40e4:	eb1302bf 	cmp	x21, x19
ffff8000113a40e8:	d1006273 	sub	x19, x19, #0x18
ffff8000113a40ec:	54000120 	b.eq	ffff8000113a4110 <dev_change_net_namespace+0x1b8>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113a40f0:	f9400260 	ldr	x0, [x19]
ffff8000113a40f4:	f9427801 	ldr	x1, [x0,#1264]
ffff8000113a40f8:	eb01039f 	cmp	x28, x1
ffff8000113a40fc:	54000c60 	b.eq	ffff8000113a4288 <dev_change_net_namespace+0x330>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113a4100:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113a4104:	eb1302bf 	cmp	x21, x19
ffff8000113a4108:	d1006273 	sub	x19, x19, #0x18
ffff8000113a410c:	54ffff21 	b.ne	ffff8000113a40f0 <dev_change_net_namespace+0x198>
	list_for_each_entry(nn, &dev->net_notifier_list, list) {
ffff8000113a4110:	f9446293 	ldr	x19, [x20,#2240]
ffff8000113a4114:	9123029c 	add	x28, x20, #0x8c0
ffff8000113a4118:	eb1c027f 	cmp	x19, x28
ffff8000113a411c:	54000160 	b.eq	ffff8000113a4148 <dev_change_net_namespace+0x1f0>
		__unregister_netdevice_notifier_net(dev_net(dev), nn->nb);
ffff8000113a4120:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113a4124:	f9427a80 	ldr	x0, [x20,#1264]
ffff8000113a4128:	97fff743 	bl	ffff8000113a1e34 <__unregister_netdevice_notifier_net>
		__register_netdevice_notifier_net(net, nn->nb, true);
ffff8000113a412c:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113a4130:	aa1603e0 	mov	x0, x22
ffff8000113a4134:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a4138:	97fff1a0 	bl	ffff8000113a07b8 <__register_netdevice_notifier_net>
	list_for_each_entry(nn, &dev->net_notifier_list, list) {
ffff8000113a413c:	f9400273 	ldr	x19, [x19]
ffff8000113a4140:	eb13039f 	cmp	x28, x19
ffff8000113a4144:	54fffee1 	b.ne	ffff8000113a4120 <dev_change_net_namespace+0x1c8>
	dev->ifindex = new_ifindex;
ffff8000113a4148:	b9010299 	str	w25, [x20,#256]
	pnet->net = net;
ffff8000113a414c:	f9027a96 	str	x22, [x20,#1264]
	kobject_uevent(&dev->dev.kobj, KOBJ_ADD);
ffff8000113a4150:	aa1a03e0 	mov	x0, x26
ffff8000113a4154:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a4158:	94000000 	bl	0 <kobject_uevent>
			ffff8000113a4158: R_AARCH64_CALL26	kobject_uevent
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113a415c:	f9405693 	ldr	x19, [x20,#168]
	return pnet->net;
ffff8000113a4160:	f9427a99 	ldr	x25, [x20,#1264]
ffff8000113a4164:	eb13037f 	cmp	x27, x19
ffff8000113a4168:	d1006273 	sub	x19, x19, #0x18
ffff8000113a416c:	54000120 	b.eq	ffff8000113a4190 <dev_change_net_namespace+0x238>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113a4170:	f9400260 	ldr	x0, [x19]
ffff8000113a4174:	f9427801 	ldr	x1, [x0,#1264]
ffff8000113a4178:	eb01033f 	cmp	x25, x1
ffff8000113a417c:	54000760 	b.eq	ffff8000113a4268 <dev_change_net_namespace+0x310>
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113a4180:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113a4184:	eb13037f 	cmp	x27, x19
ffff8000113a4188:	d1006273 	sub	x19, x19, #0x18
ffff8000113a418c:	54ffff21 	b.ne	ffff8000113a4170 <dev_change_net_namespace+0x218>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113a4190:	f9405e93 	ldr	x19, [x20,#184]
ffff8000113a4194:	eb1302bf 	cmp	x21, x19
ffff8000113a4198:	d1006273 	sub	x19, x19, #0x18
ffff8000113a419c:	54000120 	b.eq	ffff8000113a41c0 <dev_change_net_namespace+0x268>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113a41a0:	f9400260 	ldr	x0, [x19]
ffff8000113a41a4:	f9427801 	ldr	x1, [x0,#1264]
ffff8000113a41a8:	eb01033f 	cmp	x25, x1
ffff8000113a41ac:	540004e0 	b.eq	ffff8000113a4248 <dev_change_net_namespace+0x2f0>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113a41b0:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113a41b4:	eb1302bf 	cmp	x21, x19
ffff8000113a41b8:	d1006273 	sub	x19, x19, #0x18
ffff8000113a41bc:	54ffff21 	b.ne	ffff8000113a41a0 <dev_change_net_namespace+0x248>
	err = device_rename(&dev->dev, dev->name);
ffff8000113a41c0:	aa1a03e0 	mov	x0, x26
ffff8000113a41c4:	aa1403e1 	mov	x1, x20
ffff8000113a41c8:	94000000 	bl	0 <device_rename>
			ffff8000113a41c8: R_AARCH64_CALL26	device_rename
	WARN_ON(err);
ffff8000113a41cc:	35000b60 	cbnz	w0, ffff8000113a4338 <dev_change_net_namespace+0x3e0>
	err = netdev_change_owner(dev, net_old, net);
ffff8000113a41d0:	aa1403e0 	mov	x0, x20
ffff8000113a41d4:	aa1803e1 	mov	x1, x24
ffff8000113a41d8:	aa1603e2 	mov	x2, x22
ffff8000113a41dc:	94000000 	bl	0 <netdev_change_owner>
			ffff8000113a41dc: R_AARCH64_CALL26	netdev_change_owner
	WARN_ON(err);
ffff8000113a41e0:	350008c0 	cbnz	w0, ffff8000113a42f8 <dev_change_net_namespace+0x3a0>
	list_netdevice(dev);
ffff8000113a41e4:	aa1403e0 	mov	x0, x20
ffff8000113a41e8:	97fffc63 	bl	ffff8000113a3374 <list_netdevice>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a41ec:	9101a3a1 	add	x1, x29, #0x68
ffff8000113a41f0:	d28000a0 	mov	x0, #0x5                   	// #5
	struct netdev_notifier_info info = {
ffff8000113a41f4:	f90037b4 	str	x20, [x29,#104]
ffff8000113a41f8:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113a41fc:	97ffefbf 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U, GFP_KERNEL);
ffff8000113a4200:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113a4204:	aa1403e1 	mov	x1, x20
ffff8000113a4208:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a420c:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113a4210:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113a4210: R_AARCH64_CALL26	rtmsg_ifinfo
	synchronize_net();
ffff8000113a4214:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a4214: R_AARCH64_CALL26	synchronize_net
	err = 0;
ffff8000113a4218:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a421c:	f9403fa2 	ldr	x2, [x29,#120]
ffff8000113a4220:	f94002e1 	ldr	x1, [x23]
			ffff8000113a4220: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a4224:	eb01005f 	cmp	x2, x1
ffff8000113a4228:	54000661 	b.ne	ffff8000113a42f4 <dev_change_net_namespace+0x39c>
ffff8000113a422c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4230:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4234:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a4238:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a423c:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a4240:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113a4244:	d65f03c0 	ret
		netdev_adjacent_sysfs_add(iter->dev, dev,
ffff8000113a4248:	aa1403e1 	mov	x1, x20
ffff8000113a424c:	9102a002 	add	x2, x0, #0xa8
ffff8000113a4250:	97fff32e 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
		netdev_adjacent_sysfs_add(dev, iter->dev,
ffff8000113a4254:	f9400261 	ldr	x1, [x19]
ffff8000113a4258:	aa1403e0 	mov	x0, x20
ffff8000113a425c:	aa1503e2 	mov	x2, x21
ffff8000113a4260:	97fff32a 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
ffff8000113a4264:	17ffffd3 	b	ffff8000113a41b0 <dev_change_net_namespace+0x258>
		netdev_adjacent_sysfs_add(iter->dev, dev,
ffff8000113a4268:	aa1403e1 	mov	x1, x20
ffff8000113a426c:	9102e002 	add	x2, x0, #0xb8
ffff8000113a4270:	97fff326 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
		netdev_adjacent_sysfs_add(dev, iter->dev,
ffff8000113a4274:	f9400261 	ldr	x1, [x19]
ffff8000113a4278:	aa1403e0 	mov	x0, x20
ffff8000113a427c:	aa1b03e2 	mov	x2, x27
ffff8000113a4280:	97fff322 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
ffff8000113a4284:	17ffffbf 	b	ffff8000113a4180 <dev_change_net_namespace+0x228>
		netdev_adjacent_sysfs_del(iter->dev, dev->name,
ffff8000113a4288:	aa1403e1 	mov	x1, x20
ffff8000113a428c:	9102a002 	add	x2, x0, #0xa8
ffff8000113a4290:	97fff343 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
		netdev_adjacent_sysfs_del(dev, iter->dev->name,
ffff8000113a4294:	f9400261 	ldr	x1, [x19]
ffff8000113a4298:	aa1403e0 	mov	x0, x20
ffff8000113a429c:	aa1503e2 	mov	x2, x21
ffff8000113a42a0:	97fff33f 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
ffff8000113a42a4:	17ffff97 	b	ffff8000113a4100 <dev_change_net_namespace+0x1a8>
		netdev_adjacent_sysfs_del(iter->dev, dev->name,
ffff8000113a42a8:	aa1403e1 	mov	x1, x20
ffff8000113a42ac:	9102e002 	add	x2, x0, #0xb8
ffff8000113a42b0:	97fff33b 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
		netdev_adjacent_sysfs_del(dev, iter->dev->name,
ffff8000113a42b4:	f9400261 	ldr	x1, [x19]
ffff8000113a42b8:	aa1403e0 	mov	x0, x20
ffff8000113a42bc:	aa1b03e2 	mov	x2, x27
ffff8000113a42c0:	97fff337 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
ffff8000113a42c4:	17ffff82 	b	ffff8000113a40cc <dev_change_net_namespace+0x174>
		new_ifindex = dev_new_index(net);
ffff8000113a42c8:	aa1603e0 	mov	x0, x22
ffff8000113a42cc:	97ffec6e 	bl	ffff80001139f484 <dev_new_index>
ffff8000113a42d0:	2a0003f9 	mov	w25, w0
ffff8000113a42d4:	17ffff65 	b	ffff8000113a4068 <dev_change_net_namespace+0x110>
ffff8000113a42d8:	aa1403e0 	mov	x0, x20
ffff8000113a42dc:	97fffee6 	bl	ffff8000113a3e74 <dev_close.part.108>
ffff8000113a42e0:	17ffff46 	b	ffff8000113a3ff8 <dev_change_net_namespace+0xa0>
	err = -EINVAL;
ffff8000113a42e4:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a42e8:	17ffffcd 	b	ffff8000113a421c <dev_change_net_namespace+0x2c4>
	err = -EEXIST;
ffff8000113a42ec:	12800200 	mov	w0, #0xffffffef            	// #-17
ffff8000113a42f0:	17ffffcb 	b	ffff8000113a421c <dev_change_net_namespace+0x2c4>
}
ffff8000113a42f4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a42f4: R_AARCH64_CALL26	__stack_chk_fail
	WARN_ON(err);
ffff8000113a42f8:	d4210000 	brk	#0x800
ffff8000113a42fc:	17ffffba 	b	ffff8000113a41e4 <dev_change_net_namespace+0x28c>
	ASSERT_RTNL();
ffff8000113a4300:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4300: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a4304:	91000063 	add	x3, x3, #0x0
			ffff8000113a4304: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a4308:	39404060 	ldrb	w0, [x3,#16]
ffff8000113a430c:	35ffe4a0 	cbnz	w0, ffff8000113a3fa0 <dev_change_net_namespace+0x48>
ffff8000113a4310:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4310: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a4314:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4314: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a4318:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a431c:	91000000 	add	x0, x0, #0x0
			ffff8000113a431c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a4320:	91000021 	add	x1, x1, #0x0
			ffff8000113a4320: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a4324:	5284e642 	mov	w2, #0x2732                	// #10034
ffff8000113a4328:	39004064 	strb	w4, [x3,#16]
ffff8000113a432c:	94000000 	bl	0 <__warn_printk>
			ffff8000113a432c: R_AARCH64_CALL26	__warn_printk
ffff8000113a4330:	d4210000 	brk	#0x800
ffff8000113a4334:	17ffff1b 	b	ffff8000113a3fa0 <dev_change_net_namespace+0x48>
	WARN_ON(err);
ffff8000113a4338:	d4210000 	brk	#0x800
ffff8000113a433c:	17ffffa5 	b	ffff8000113a41d0 <dev_change_net_namespace+0x278>

ffff8000113a4340 <default_device_exit>:
	.init = netdev_init,
	.exit = netdev_exit,
};

static void __net_exit default_device_exit(struct net *net)
{
ffff8000113a4340:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a4344:	910003fd 	mov	x29, sp
ffff8000113a4348:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a434c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4350:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a4354:	f90023f9 	str	x25, [sp,#64]
ffff8000113a4358:	aa0003f9 	mov	x25, x0
ffff8000113a435c:	aa1e03e0 	mov	x0, x30
ffff8000113a4360:	94000000 	bl	0 <_mcount>
			ffff8000113a4360: R_AARCH64_CALL26	_mcount
ffff8000113a4364:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a4364: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a4368:	f94002a0 	ldr	x0, [x21]
			ffff8000113a4368: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a436c:	f90037a0 	str	x0, [x29,#104]
	struct net_device *dev, *aux;
	/*
	 * Push all migratable network devices back to the
	 * initial network namespace
	 */
	rtnl_lock();
ffff8000113a4370:	94000000 	bl	0 <rtnl_lock>
			ffff8000113a4370: R_AARCH64_CALL26	rtnl_lock
	for_each_netdev_safe(net, dev, aux) {
ffff8000113a4374:	f8490f20 	ldr	x0, [x25,#144]!
ffff8000113a4378:	aa0003f4 	mov	x20, x0
ffff8000113a437c:	f85b8693 	ldr	x19, [x20],#-72
ffff8000113a4380:	eb00033f 	cmp	x25, x0
ffff8000113a4384:	d1012273 	sub	x19, x19, #0x48
ffff8000113a4388:	54000260 	b.eq	ffff8000113a43d4 <default_device_exit+0x94>
		/* Leave virtual devices for the generic cleanup */
		if (dev->rtnl_link_ops)
			continue;

		/* Push remaining network devices to init_net */
		snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex);
ffff8000113a438c:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a438c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x2c8
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a4390:	90000016 	adrp	x22, 0 <init_net>
			ffff8000113a4390: R_AARCH64_ADR_PREL_PG_HI21	init_net
		if (__dev_get_by_name(&init_net, fb_name))
			snprintf(fb_name, IFNAMSIZ, "dev%%d");
ffff8000113a4394:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4394: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x2d0
		snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex);
ffff8000113a4398:	910002f7 	add	x23, x23, #0x0
			ffff8000113a4398: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x2c8
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a439c:	910002d6 	add	x22, x22, #0x0
			ffff8000113a439c: R_AARCH64_ADD_ABS_LO12_NC	init_net
			snprintf(fb_name, IFNAMSIZ, "dev%%d");
ffff8000113a43a0:	91000318 	add	x24, x24, #0x0
			ffff8000113a43a0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x2d0
ffff8000113a43a4:	14000003 	b	ffff8000113a43b0 <default_device_exit+0x70>
ffff8000113a43a8:	aa1303f4 	mov	x20, x19
	for_each_netdev_safe(net, dev, aux) {
ffff8000113a43ac:	aa0403f3 	mov	x19, x4
		if (dev->features & NETIF_F_NETNS_LOCAL)
ffff8000113a43b0:	f9406683 	ldr	x3, [x20,#200]
ffff8000113a43b4:	37680063 	tbnz	w3, #13, ffff8000113a43c0 <default_device_exit+0x80>
		if (dev->rtnl_link_ops)
ffff8000113a43b8:	f9441a80 	ldr	x0, [x20,#2096]
ffff8000113a43bc:	b4000220 	cbz	x0, ffff8000113a4400 <default_device_exit+0xc0>
	for_each_netdev_safe(net, dev, aux) {
ffff8000113a43c0:	aa1303e3 	mov	x3, x19
ffff8000113a43c4:	f8448c64 	ldr	x4, [x3,#72]!
ffff8000113a43c8:	eb03033f 	cmp	x25, x3
ffff8000113a43cc:	d1012084 	sub	x4, x4, #0x48
ffff8000113a43d0:	54fffec1 	b.ne	ffff8000113a43a8 <default_device_exit+0x68>
			pr_emerg("%s: failed to move %s to init_net: %d\n",
				 __func__, dev->name, err);
			BUG();
		}
	}
	rtnl_unlock();
ffff8000113a43d4:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113a43d4: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113a43d8:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113a43dc:	f94002a0 	ldr	x0, [x21]
			ffff8000113a43dc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a43e0:	eb00003f 	cmp	x1, x0
ffff8000113a43e4:	54000481 	b.ne	ffff8000113a4474 <default_device_exit+0x134>
ffff8000113a43e8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a43ec:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a43f0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a43f4:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a43f8:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a43fc:	d65f03c0 	ret
		snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex);
ffff8000113a4400:	b9410283 	ldr	w3, [x20,#256]
ffff8000113a4404:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a4408:	aa1703e2 	mov	x2, x23
ffff8000113a440c:	910163a0 	add	x0, x29, #0x58
ffff8000113a4410:	94000000 	bl	0 <snprintf>
			ffff8000113a4410: R_AARCH64_CALL26	snprintf
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a4414:	aa1603e0 	mov	x0, x22
ffff8000113a4418:	910163a1 	add	x1, x29, #0x58
ffff8000113a441c:	97ffec95 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff8000113a4420:	b40000e0 	cbz	x0, ffff8000113a443c <default_device_exit+0xfc>
		if (__dev_get_by_name(&init_net, fb_name))
ffff8000113a4424:	f9401000 	ldr	x0, [x0,#32]
ffff8000113a4428:	b40000a0 	cbz	x0, ffff8000113a443c <default_device_exit+0xfc>
			snprintf(fb_name, IFNAMSIZ, "dev%%d");
ffff8000113a442c:	910163a0 	add	x0, x29, #0x58
ffff8000113a4430:	d2800201 	mov	x1, #0x10                  	// #16
ffff8000113a4434:	aa1803e2 	mov	x2, x24
ffff8000113a4438:	94000000 	bl	0 <snprintf>
			ffff8000113a4438: R_AARCH64_CALL26	snprintf
		err = dev_change_net_namespace(dev, &init_net, fb_name);
ffff8000113a443c:	aa1403e0 	mov	x0, x20
ffff8000113a4440:	aa1603e1 	mov	x1, x22
ffff8000113a4444:	910163a2 	add	x2, x29, #0x58
ffff8000113a4448:	94000000 	bl	ffff8000113a3f58 <dev_change_net_namespace>
			ffff8000113a4448: R_AARCH64_CALL26	dev_change_net_namespace
ffff8000113a444c:	2a0003e3 	mov	w3, w0
		if (err) {
ffff8000113a4450:	34fffb80 	cbz	w0, ffff8000113a43c0 <default_device_exit+0x80>
			pr_emerg("%s: failed to move %s to init_net: %d\n",
ffff8000113a4454:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4454: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a4458:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4458: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x2d8
ffff8000113a445c:	91000021 	add	x1, x1, #0x0
			ffff8000113a445c: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a4460:	91010021 	add	x1, x1, #0x40
ffff8000113a4464:	aa1403e2 	mov	x2, x20
ffff8000113a4468:	91000000 	add	x0, x0, #0x0
			ffff8000113a4468: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x2d8
ffff8000113a446c:	94000000 	bl	0 <printk>
			ffff8000113a446c: R_AARCH64_CALL26	printk
			BUG();
ffff8000113a4470:	d4210000 	brk	#0x800
}
ffff8000113a4474:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a4474: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a4478 <netif_napi_add>:
{
ffff8000113a4478:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a447c:	910003fd 	mov	x29, sp
ffff8000113a4480:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4484:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4488:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a448c:	aa0003f5 	mov	x21, x0
ffff8000113a4490:	aa1e03e0 	mov	x0, x30
ffff8000113a4494:	aa0103f3 	mov	x19, x1
ffff8000113a4498:	aa0203f7 	mov	x23, x2
ffff8000113a449c:	2a0303f6 	mov	w22, w3
ffff8000113a44a0:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a44a0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a44a4:	94000000 	bl	0 <_mcount>
			ffff8000113a44a4: R_AARCH64_CALL26	_mcount
ffff8000113a44a8:	f9400280 	ldr	x0, [x20]
			ffff8000113a44a8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	list->prev = list;
ffff8000113a44ac:	f9000673 	str	x19, [x19,#8]
ffff8000113a44b0:	f90027a0 	str	x0, [x29,#72]
ffff8000113a44b4:	f9000273 	str	x19, [x19]
	hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
ffff8000113a44b8:	91048260 	add	x0, x19, #0x120
ffff8000113a44bc:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a44c0:	52800062 	mov	w2, #0x3                   	// #3
ffff8000113a44c4:	94000000 	bl	0 <hrtimer_init>
			ffff8000113a44c4: R_AARCH64_CALL26	hrtimer_init
	napi->timer.function = napi_watchdog;
ffff8000113a44c8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a44c8: R_AARCH64_ADR_PREL_PG_HI21	.text+0x73f8
ffff8000113a44cc:	91000000 	add	x0, x0, #0x0
			ffff8000113a44cc: R_AARCH64_ADD_ABS_LO12_NC	.text+0x73f8
ffff8000113a44d0:	f900a660 	str	x0, [x19,#328]
ffff8000113a44d4:	91010265 	add	x5, x19, #0x40
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
ffff8000113a44d8:	52800006 	mov	w6, #0x0                   	// #0
ffff8000113a44dc:	110004c6 	add	w6, w6, #0x1
ffff8000113a44e0:	f90000a5 	str	x5, [x5]
ffff8000113a44e4:	f90004a5 	str	x5, [x5,#8]
		napi->gro_hash[i].count = 0;
ffff8000113a44e8:	b90010bf 	str	wzr, [x5,#16]
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
ffff8000113a44ec:	710020df 	cmp	w6, #0x8
ffff8000113a44f0:	910060a5 	add	x5, x5, #0x18
ffff8000113a44f4:	54ffff41 	b.ne	ffff8000113a44dc <netif_napi_add+0x64>
	INIT_LIST_HEAD(&napi->rx_list);
ffff8000113a44f8:	91042260 	add	x0, x19, #0x108
	napi->gro_bitmask = 0;
ffff8000113a44fc:	f900127f 	str	xzr, [x19,#32]
	napi->skb = NULL;
ffff8000113a4500:	f900827f 	str	xzr, [x19,#256]
ffff8000113a4504:	f9008660 	str	x0, [x19,#264]
ffff8000113a4508:	f9000400 	str	x0, [x0,#8]
	napi->rx_count = 0;
ffff8000113a450c:	b9011a7f 	str	wzr, [x19,#280]
	napi->poll = poll;
ffff8000113a4510:	f9001677 	str	x23, [x19,#40]
	if (weight > NAPI_POLL_WEIGHT)
ffff8000113a4514:	710102df 	cmp	w22, #0x40
ffff8000113a4518:	540000ad 	b.le	ffff8000113a452c <netif_napi_add+0xb4>
		netdev_err_once(dev, "%s() called with weight %d\n", __func__,
ffff8000113a451c:	90000005 	adrp	x5, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a451c: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a4520:	910000a5 	add	x5, x5, #0x0
			ffff8000113a4520: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4524:	396510a0 	ldrb	w0, [x5,#2372]
ffff8000113a4528:	34000ca0 	cbz	w0, ffff8000113a46bc <netif_napi_add+0x244>
	napi->weight = weight;
ffff8000113a452c:	b9001a76 	str	w22, [x19,#24]
	__list_add(new, head, head->next);
ffff8000113a4530:	f9402eb7 	ldr	x23, [x21,#88]
	list_add(&napi->dev_list, &dev->napi_list);
ffff8000113a4534:	91058276 	add	x22, x19, #0x160
ffff8000113a4538:	910162b8 	add	x24, x21, #0x58
	if (!__list_add_valid(new, prev, next))
ffff8000113a453c:	aa1603e0 	mov	x0, x22
ffff8000113a4540:	aa1803e1 	mov	x1, x24
ffff8000113a4544:	aa1703e2 	mov	x2, x23
ffff8000113a4548:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a4548: R_AARCH64_CALL26	__list_add_valid
ffff8000113a454c:	53001c00 	uxtb	w0, w0
ffff8000113a4550:	340000a0 	cbz	w0, ffff8000113a4564 <netif_napi_add+0xec>
	next->prev = new;
ffff8000113a4554:	f90006f6 	str	x22, [x23,#8]
	new->next = next;
ffff8000113a4558:	f900b277 	str	x23, [x19,#352]
	new->prev = prev;
ffff8000113a455c:	f900b678 	str	x24, [x19,#360]
ffff8000113a4560:	f9002eb6 	str	x22, [x21,#88]
	napi->poll_owner = -1;
ffff8000113a4564:	12800000 	mov	w0, #0xffffffff            	// #-1
ATOMIC64_OPS(or, orr, L)
ffff8000113a4568:	91004262 	add	x2, x19, #0x10
	napi->dev = dev;
ffff8000113a456c:	f9001e75 	str	x21, [x19,#56]
	napi->poll_owner = -1;
ffff8000113a4570:	b9003260 	str	w0, [x19,#48]
ffff8000113a4574:	aa0203e3 	mov	x3, x2
ffff8000113a4578:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a457c:	c85f7c40 	ldxr	x0, [x2]
ffff8000113a4580:	b2400000 	orr	x0, x0, #0x1
ffff8000113a4584:	c8017c40 	stxr	w1, x0, [x2]
ffff8000113a4588:	35ffffa1 	cbnz	w1, ffff8000113a457c <netif_napi_add+0x104>
ffff8000113a458c:	f9400a60 	ldr	x0, [x19,#16]
	if (test_bit(NAPI_STATE_NO_BUSY_POLL, &napi->state) ||
ffff8000113a4590:	36280140 	tbz	w0, #5, ffff8000113a45b8 <netif_napi_add+0x140>
}
ffff8000113a4594:	f94027a1 	ldr	x1, [x29,#72]
ffff8000113a4598:	f9400280 	ldr	x0, [x20]
			ffff8000113a4598: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a459c:	eb00003f 	cmp	x1, x0
ffff8000113a45a0:	54000a81 	b.ne	ffff8000113a46f0 <netif_napi_add+0x278>
ffff8000113a45a4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a45a8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a45ac:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a45b0:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a45b4:	d65f03c0 	ret
	__READ_ONCE_SIZE;
ffff8000113a45b8:	f9400a60 	ldr	x0, [x19,#16]
ffff8000113a45bc:	3727fec0 	tbnz	w0, #4, ffff8000113a4594 <netif_napi_add+0x11c>
ffff8000113a45c0:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a45c4:	c85f7c62 	ldxr	x2, [x3]
ffff8000113a45c8:	b27c0040 	orr	x0, x2, #0x10
ffff8000113a45cc:	c801fc60 	stlxr	w1, x0, [x3]
ffff8000113a45d0:	35ffffa1 	cbnz	w1, ffff8000113a45c4 <netif_napi_add+0x14c>
ffff8000113a45d4:	d5033bbf 	dmb	ish
	return !!(old & mask);
ffff8000113a45d8:	927c0042 	and	x2, x2, #0x10
	if (test_bit(NAPI_STATE_NO_BUSY_POLL, &napi->state) ||
ffff8000113a45dc:	b5fffdc2 	cbnz	x2, ffff8000113a4594 <netif_napi_add+0x11c>
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a45e0:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a45e0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a45e4:	910002a0 	add	x0, x21, #0x0
			ffff8000113a45e4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a45e8:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a45ec:	910c8005 	add	x5, x0, #0x320
ffff8000113a45f0:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a45f4:	885ffca1 	ldaxr	w1, [x5]
ffff8000113a45f8:	4a020024 	eor	w4, w1, w2
ffff8000113a45fc:	35000064 	cbnz	w4, ffff8000113a4608 <netif_napi_add+0x190>
ffff8000113a4600:	88047ca3 	stxr	w4, w3, [x5]
ffff8000113a4604:	35ffff84 	cbnz	w4, ffff8000113a45f4 <netif_napi_add+0x17c>
ffff8000113a4608:	35000541 	cbnz	w1, ffff8000113a46b0 <netif_napi_add+0x238>
ffff8000113a460c:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a460c: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a4610:	91000080 	add	x0, x4, #0x0
			ffff8000113a4610: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a4614:	90000005 	adrp	x5, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4614: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a4618:	b9408803 	ldr	w3, [x0,#136]
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113a461c:	910000a6 	add	x6, x5, #0x0
			ffff8000113a461c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
		if (unlikely(++napi_gen_id < MIN_NAPI_ID))
ffff8000113a4620:	11000463 	add	w3, w3, #0x1
ffff8000113a4624:	7140047f 	cmp	w3, #0x1, lsl #12
ffff8000113a4628:	54000669 	b.ls	ffff8000113a46f4 <netif_napi_add+0x27c>
ffff8000113a462c:	12001c61 	and	w1, w3, #0xff
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113a4630:	2a0103e1 	mov	w1, w1
ffff8000113a4634:	d37df020 	lsl	x0, x1, #3
ffff8000113a4638:	f86068c0 	ldr	x0, [x6,x0]
ffff8000113a463c:	b4000040 	cbz	x0, ffff8000113a4644 <netif_napi_add+0x1cc>
ffff8000113a4640:	d105c000 	sub	x0, x0, #0x170
ffff8000113a4644:	b4000300 	cbz	x0, ffff8000113a46a4 <netif_napi_add+0x22c>
		if (napi->napi_id == napi_id)
ffff8000113a4648:	b9418002 	ldr	w2, [x0,#384]
ffff8000113a464c:	6b03005f 	cmp	w2, w3
ffff8000113a4650:	54fffe80 	b.eq	ffff8000113a4620 <netif_napi_add+0x1a8>
ffff8000113a4654:	f940b800 	ldr	x0, [x0,#368]
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113a4658:	b5ffff40 	cbnz	x0, ffff8000113a4640 <netif_napi_add+0x1c8>
ffff8000113a465c:	91000080 	add	x0, x4, #0x0
			ffff8000113a465c: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a4660:	b9008803 	str	w3, [x0,#136]
	hlist_add_head_rcu(&napi->napi_hash_node,
ffff8000113a4664:	910000a2 	add	x2, x5, #0x0
			ffff8000113a4664: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4668:	d37df021 	lsl	x1, x1, #3
	napi->napi_id = napi_gen_id;
ffff8000113a466c:	b9018263 	str	w3, [x19,#384]
	struct hlist_node *first = h->first;
ffff8000113a4670:	f8616840 	ldr	x0, [x2,x1]
	hlist_add_head_rcu(&napi->napi_hash_node,
ffff8000113a4674:	8b010041 	add	x1, x2, x1
	n->next = first;
ffff8000113a4678:	f900ba60 	str	x0, [x19,#368]
ffff8000113a467c:	9105c262 	add	x2, x19, #0x170
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a4680:	f900be61 	str	x1, [x19,#376]
	rcu_assign_pointer(hlist_first_rcu(h), n);
ffff8000113a4684:	c89ffc22 	stlr	x2, [x1]
	if (first)
ffff8000113a4688:	b4000040 	cbz	x0, ffff8000113a4690 <netif_napi_add+0x218>
ffff8000113a468c:	f9000402 	str	x2, [x0,#8]
	smp_store_release(&lock->locked, 0);
ffff8000113a4690:	910002b5 	add	x21, x21, #0x0
			ffff8000113a4690: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a4694:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a4698:	910c82b5 	add	x21, x21, #0x320
ffff8000113a469c:	089ffea0 	stlrb	w0, [x21]

static inline void __raw_spin_unlock(raw_spinlock_t *lock)
{
	spin_release(&lock->dep_map, _RET_IP_);
	do_raw_spin_unlock(lock);
	preempt_enable();
ffff8000113a46a0:	17ffffbd 	b	ffff8000113a4594 <netif_napi_add+0x11c>
ffff8000113a46a4:	91000084 	add	x4, x4, #0x0
			ffff8000113a46a4: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a46a8:	b9008883 	str	w3, [x4,#136]
ffff8000113a46ac:	17ffffee 	b	ffff8000113a4664 <netif_napi_add+0x1ec>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a46b0:	910c8000 	add	x0, x0, #0x320
ffff8000113a46b4:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a46b4: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a46b8:	17ffffd5 	b	ffff8000113a460c <netif_napi_add+0x194>
		netdev_err_once(dev, "%s() called with weight %d\n", __func__,
ffff8000113a46bc:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a46bc: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a46c0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a46c0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1e8
ffff8000113a46c4:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a46c4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x308
ffff8000113a46c8:	91000063 	add	x3, x3, #0x0
			ffff8000113a46c8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a46cc:	52800026 	mov	w6, #0x1                   	// #1
ffff8000113a46d0:	91000000 	add	x0, x0, #0x0
			ffff8000113a46d0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1e8
ffff8000113a46d4:	aa1503e1 	mov	x1, x21
ffff8000113a46d8:	91000042 	add	x2, x2, #0x0
			ffff8000113a46d8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x308
ffff8000113a46dc:	91016063 	add	x3, x3, #0x58
ffff8000113a46e0:	2a1603e4 	mov	w4, w22
ffff8000113a46e4:	392510a6 	strb	w6, [x5,#2372]
ffff8000113a46e8:	94000000 	bl	ffff80001139e618 <call_netdevice_register_net_notifiers+0x28>
			ffff8000113a46e8: R_AARCH64_CALL26	netdev_printk
ffff8000113a46ec:	17ffff90 	b	ffff8000113a452c <netif_napi_add+0xb4>
}
ffff8000113a46f0:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a46f0: R_AARCH64_CALL26	__stack_chk_fail
		if (unlikely(++napi_gen_id < MIN_NAPI_ID))
ffff8000113a46f4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a46f8:	52820023 	mov	w3, #0x1001                	// #4097
ffff8000113a46fc:	17ffffcd 	b	ffff8000113a4630 <netif_napi_add+0x1b8>

ffff8000113a4700 <reset_xps_maps>:
{
ffff8000113a4700:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a4704:	910003fd 	mov	x29, sp
ffff8000113a4708:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a470c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4710:	aa0003f6 	mov	x22, x0
ffff8000113a4714:	53001c54 	uxtb	w20, w2
ffff8000113a4718:	aa1e03e0 	mov	x0, x30
ffff8000113a471c:	aa0103f3 	mov	x19, x1
ffff8000113a4720:	94000000 	bl	0 <_mcount>
			ffff8000113a4720: R_AARCH64_CALL26	_mcount
	if (is_rxqs_map) {
ffff8000113a4724:	350002d4 	cbnz	w20, ffff8000113a477c <reset_xps_maps+0x7c>
ffff8000113a4728:	f901f6df 	str	xzr, [x22,#1000]
ffff8000113a472c:	90000015 	adrp	x21, 0 <static_key_initialized>
			ffff8000113a472c: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a4730:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4730: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
	STATIC_KEY_CHECK_USE(key);
ffff8000113a4734:	394002a0 	ldrb	w0, [x21]
			ffff8000113a4734: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a4738:	340003e0 	cbz	w0, ffff8000113a47b4 <reset_xps_maps+0xb4>
ATOMIC_OPS(sub, sub, J)
ffff8000113a473c:	91000282 	add	x2, x20, #0x0
			ffff8000113a473c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4740:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a4744:	9124e044 	add	x4, x2, #0x938
ffff8000113a4748:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a474c:	885f7c80 	ldxr	w0, [x4]
ffff8000113a4750:	4b030000 	sub	w0, w0, w3
ffff8000113a4754:	88017c80 	stxr	w1, w0, [x4]
ffff8000113a4758:	35ffffa1 	cbnz	w1, ffff8000113a474c <reset_xps_maps+0x4c>
	kfree_rcu(dev_maps, rcu);
ffff8000113a475c:	b4000093 	cbz	x19, ffff8000113a476c <reset_xps_maps+0x6c>
ffff8000113a4760:	aa1303e0 	mov	x0, x19
ffff8000113a4764:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a4768:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a4768: R_AARCH64_CALL26	kfree_call_rcu
}
ffff8000113a476c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4770:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4774:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a4778:	d65f03c0 	ret
ffff8000113a477c:	90000015 	adrp	x21, 0 <static_key_initialized>
			ffff8000113a477c: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a4780:	394002a0 	ldrb	w0, [x21]
			ffff8000113a4780: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a4784:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4784: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a4788:	340002a0 	cbz	w0, ffff8000113a47dc <reset_xps_maps+0xdc>
ffff8000113a478c:	91000280 	add	x0, x20, #0x0
			ffff8000113a478c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4790:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a4794:	91250004 	add	x4, x0, #0x940
ffff8000113a4798:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a479c:	885f7c82 	ldxr	w2, [x4]
ffff8000113a47a0:	4b010042 	sub	w2, w2, w1
ffff8000113a47a4:	88037c82 	stxr	w3, w2, [x4]
ffff8000113a47a8:	35ffffa3 	cbnz	w3, ffff8000113a479c <reset_xps_maps+0x9c>
ffff8000113a47ac:	f901fadf 	str	xzr, [x22,#1008]
ffff8000113a47b0:	17ffffe1 	b	ffff8000113a4734 <reset_xps_maps+0x34>
ffff8000113a47b4:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a47b4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a47b8:	91000282 	add	x2, x20, #0x0
			ffff8000113a47b8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a47bc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a47bc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a47c0:	91000021 	add	x1, x1, #0x0
			ffff8000113a47c0: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a47c4:	91000000 	add	x0, x0, #0x0
			ffff8000113a47c4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a47c8:	91004021 	add	x1, x1, #0x10
ffff8000113a47cc:	9124e042 	add	x2, x2, #0x938
ffff8000113a47d0:	94000000 	bl	0 <__warn_printk>
			ffff8000113a47d0: R_AARCH64_CALL26	__warn_printk
ffff8000113a47d4:	d4210000 	brk	#0x800
ffff8000113a47d8:	17ffffd9 	b	ffff8000113a473c <reset_xps_maps+0x3c>
ffff8000113a47dc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a47dc: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a47e0:	91000282 	add	x2, x20, #0x0
			ffff8000113a47e0: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a47e4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a47e4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a47e8:	91000021 	add	x1, x1, #0x0
			ffff8000113a47e8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a47ec:	91000000 	add	x0, x0, #0x0
			ffff8000113a47ec: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a47f0:	91004021 	add	x1, x1, #0x10
ffff8000113a47f4:	91250042 	add	x2, x2, #0x940
ffff8000113a47f8:	94000000 	bl	0 <__warn_printk>
			ffff8000113a47f8: R_AARCH64_CALL26	__warn_printk
ffff8000113a47fc:	d4210000 	brk	#0x800
ffff8000113a4800:	17ffffe3 	b	ffff8000113a478c <reset_xps_maps+0x8c>

ffff8000113a4804 <netif_reset_xps_queues>:
{
ffff8000113a4804:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a4808:	910003fd 	mov	x29, sp
ffff8000113a480c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4810:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4814:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a4818:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a481c:	a90573fb 	stp	x27, x28, [sp,#80]
	__READ_ONCE_SIZE;
ffff8000113a4820:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4820: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a4824:	aa0003f4 	mov	x20, x0
ffff8000113a4828:	aa1e03e0 	mov	x0, x30
ffff8000113a482c:	53003c38 	uxth	w24, w1
ffff8000113a4830:	53003c57 	uxth	w23, w2
ffff8000113a4834:	91000273 	add	x19, x19, #0x0
			ffff8000113a4834: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4838:	94000000 	bl	0 <_mcount>
			ffff8000113a4838: R_AARCH64_CALL26	_mcount
ffff8000113a483c:	b9493a60 	ldr	w0, [x19,#2360]
	if (unlikely(static_key_count(key) > 0))
ffff8000113a4840:	6b1f001f 	cmp	w0, wzr
ffff8000113a4844:	5400010c 	b.gt	ffff8000113a4864 <netif_reset_xps_queues+0x60>
}
ffff8000113a4848:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a484c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4850:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a4854:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a4858:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a485c:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a4860:	d65f03c0 	ret
	cpus_read_lock();
ffff8000113a4864:	94000000 	bl	0 <cpus_read_lock>
			ffff8000113a4864: R_AARCH64_CALL26	cpus_read_lock
	mutex_lock(&xps_map_mutex);
ffff8000113a4868:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4868: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a486c:	91000360 	add	x0, x27, #0x0
			ffff8000113a486c: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a4870:	91024000 	add	x0, x0, #0x90
ffff8000113a4874:	94000000 	bl	0 <mutex_lock>
			ffff8000113a4874: R_AARCH64_CALL26	mutex_lock
ffff8000113a4878:	b9494260 	ldr	w0, [x19,#2368]
ffff8000113a487c:	6b1f001f 	cmp	w0, wzr
ffff8000113a4880:	5400090c 	b.gt	ffff8000113a49a0 <netif_reset_xps_queues+0x19c>
	dev_maps = xmap_dereference(dev->xps_cpus_map);
ffff8000113a4884:	f941f699 	ldr	x25, [x20,#1000]
	if (!dev_maps)
ffff8000113a4888:	b40006f9 	cbz	x25, ffff8000113a4964 <netif_reset_xps_queues+0x160>

static __always_inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
{
	if (small_const_nbits(nbits))
		return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
	return __bitmap_weight(src, nbits);
ffff8000113a488c:	90000015 	adrp	x21, 0 <__cpu_possible_mask>
			ffff8000113a488c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_possible_mask
ffff8000113a4890:	910002b5 	add	x21, x21, #0x0
			ffff8000113a4890: R_AARCH64_ADD_ABS_LO12_NC	__cpu_possible_mask
ffff8000113a4894:	aa1503e0 	mov	x0, x21
ffff8000113a4898:	52820001 	mov	w1, #0x1000                	// #4096
ffff8000113a489c:	94000000 	bl	0 <__bitmap_weight>
			ffff8000113a489c: R_AARCH64_CALL26	__bitmap_weight
	nr_ids = nr_cpu_ids;
ffff8000113a48a0:	90000001 	adrp	x1, 0 <nr_cpu_ids>
			ffff8000113a48a0: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
ffff8000113a48a4:	b940003a 	ldr	w26, [x1]
			ffff8000113a48a4: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
	const unsigned long *possible_mask = NULL;
ffff8000113a48a8:	7100041f 	cmp	w0, #0x1
ffff8000113a48ac:	9a9f82b5 	csel	x21, x21, xzr, hi
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a48b0:	12800013 	mov	w19, #0xffffffff            	// #-1
	bool active = false;
ffff8000113a48b4:	52800016 	mov	w22, #0x0                   	// #0
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a48b8:	2a1a03fc 	mov	w28, w26
ffff8000113a48bc:	1400000d 	b	ffff8000113a48f0 <netif_reset_xps_queues+0xec>
ffff8000113a48c0:	94000000 	bl	0 <find_next_bit>
			ffff8000113a48c0: R_AARCH64_CALL26	find_next_bit
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a48c4:	6b00035f 	cmp	w26, w0
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a48c8:	aa1903e1 	mov	x1, x25
ffff8000113a48cc:	2a1803e3 	mov	w3, w24
ffff8000113a48d0:	2a1703e4 	mov	w4, w23
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a48d4:	2a0003f3 	mov	w19, w0
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a48d8:	2a0003e2 	mov	w2, w0
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a48dc:	54000249 	b.ls	ffff8000113a4924 <netif_reset_xps_queues+0x120>
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a48e0:	79509280 	ldrh	w0, [x20,#2120]
ffff8000113a48e4:	97fff4be 	bl	ffff8000113a1bdc <remove_xps_queue_cpu.isra.105>
ffff8000113a48e8:	53001c00 	uxtb	w0, w0
ffff8000113a48ec:	2a160016 	orr	w22, w0, w22
ffff8000113a48f0:	11000662 	add	w2, w19, #0x1
ffff8000113a48f4:	aa1503e0 	mov	x0, x21
ffff8000113a48f8:	aa1c03e1 	mov	x1, x28
ffff8000113a48fc:	93407c42 	sxtw	x2, w2
	if (srcp)
ffff8000113a4900:	b5fffe15 	cbnz	x21, ffff8000113a48c0 <netif_reset_xps_queues+0xbc>
	return n + 1;
ffff8000113a4904:	11000660 	add	w0, w19, #0x1
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a4908:	6b00035f 	cmp	w26, w0
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a490c:	aa1903e1 	mov	x1, x25
ffff8000113a4910:	2a1803e3 	mov	w3, w24
ffff8000113a4914:	2a1703e4 	mov	w4, w23
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a4918:	2a0003f3 	mov	w19, w0
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a491c:	2a0003e2 	mov	w2, w0
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a4920:	54fffe08 	b.hi	ffff8000113a48e0 <netif_reset_xps_queues+0xdc>
	if (!active)
ffff8000113a4924:	34000376 	cbz	w22, ffff8000113a4990 <netif_reset_xps_queues+0x18c>
		for (i = offset + (count - 1); count--; i--) {
ffff8000113a4928:	510006e5 	sub	w5, w23, #0x1
ffff8000113a492c:	0b050301 	add	w1, w24, w5
ffff8000113a4930:	53003ca5 	uxth	w5, w5
ffff8000113a4934:	34000197 	cbz	w23, ffff8000113a4964 <netif_reset_xps_queues+0x160>
ffff8000113a4938:	2a2503e5 	mvn	w5, w5
ffff8000113a493c:	0b0100a5 	add	w5, w5, w1
	return &dev->_tx[index];
ffff8000113a4940:	52802804 	mov	w4, #0x140                 	// #320
	q->numa_node = node;
ffff8000113a4944:	12800003 	mov	w3, #0xffffffff            	// #-1
ffff8000113a4948:	f941e282 	ldr	x2, [x20,#960]
	return &dev->_tx[index];
ffff8000113a494c:	9ba47c20 	umull	x0, w1, w4
	q->numa_node = node;
ffff8000113a4950:	8b000040 	add	x0, x2, x0
ffff8000113a4954:	51000421 	sub	w1, w1, #0x1
ffff8000113a4958:	b9005803 	str	w3, [x0,#88]
ffff8000113a495c:	6b05003f 	cmp	w1, w5
ffff8000113a4960:	54ffff41 	b.ne	ffff8000113a4948 <netif_reset_xps_queues+0x144>
	mutex_unlock(&xps_map_mutex);
ffff8000113a4964:	91000360 	add	x0, x27, #0x0
			ffff8000113a4964: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a4968:	91024000 	add	x0, x0, #0x90
ffff8000113a496c:	94000000 	bl	0 <mutex_unlock>
			ffff8000113a496c: R_AARCH64_CALL26	mutex_unlock
	cpus_read_unlock();
ffff8000113a4970:	94000000 	bl	0 <cpus_read_unlock>
			ffff8000113a4970: R_AARCH64_CALL26	cpus_read_unlock
}
ffff8000113a4974:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4978:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a497c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a4980:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a4984:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a4988:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a498c:	d65f03c0 	ret
		reset_xps_maps(dev, dev_maps, is_rxqs_map);
ffff8000113a4990:	aa1403e0 	mov	x0, x20
ffff8000113a4994:	2a1603e2 	mov	w2, w22
ffff8000113a4998:	97ffff5a 	bl	ffff8000113a4700 <reset_xps_maps>
ffff8000113a499c:	17ffffe3 	b	ffff8000113a4928 <netif_reset_xps_queues+0x124>
		dev_maps = xmap_dereference(dev->xps_rxqs_map);
ffff8000113a49a0:	f941fa99 	ldr	x25, [x20,#1008]
		if (dev_maps) {
ffff8000113a49a4:	b4fff719 	cbz	x25, ffff8000113a4884 <netif_reset_xps_queues+0x80>
			nr_ids = dev->num_rx_queues;
ffff8000113a49a8:	b9432a96 	ldr	w22, [x20,#808]
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a49ac:	52800013 	mov	w19, #0x0                   	// #0
	bool active = false;
ffff8000113a49b0:	2a1303f5 	mov	w21, w19
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a49b4:	340001b6 	cbz	w22, ffff8000113a49e8 <netif_reset_xps_queues+0x1e4>
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a49b8:	79509280 	ldrh	w0, [x20,#2120]
ffff8000113a49bc:	2a1303e2 	mov	w2, w19
ffff8000113a49c0:	aa1903e1 	mov	x1, x25
ffff8000113a49c4:	2a1803e3 	mov	w3, w24
ffff8000113a49c8:	2a1703e4 	mov	w4, w23
ffff8000113a49cc:	97fff484 	bl	ffff8000113a1bdc <remove_xps_queue_cpu.isra.105>
ffff8000113a49d0:	11000673 	add	w19, w19, #0x1
ffff8000113a49d4:	53001c00 	uxtb	w0, w0
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a49d8:	6b16027f 	cmp	w19, w22
		active |= remove_xps_queue_cpu(dev, dev_maps, j, offset,
ffff8000113a49dc:	2a0002b5 	orr	w21, w21, w0
	for (j = -1; j = netif_attrmask_next(j, mask, nr_ids),
ffff8000113a49e0:	54fffec1 	b.ne	ffff8000113a49b8 <netif_reset_xps_queues+0x1b4>
	if (!active)
ffff8000113a49e4:	35fff515 	cbnz	w21, ffff8000113a4884 <netif_reset_xps_queues+0x80>
		reset_xps_maps(dev, dev_maps, is_rxqs_map);
ffff8000113a49e8:	aa1403e0 	mov	x0, x20
ffff8000113a49ec:	aa1903e1 	mov	x1, x25
ffff8000113a49f0:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a49f4:	97ffff43 	bl	ffff8000113a4700 <reset_xps_maps>
ffff8000113a49f8:	17ffffa3 	b	ffff8000113a4884 <netif_reset_xps_queues+0x80>

ffff8000113a49fc <netdev_unbind_sb_channel>:
{
ffff8000113a49fc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a4a00:	910003fd 	mov	x29, sp
ffff8000113a4a04:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4a08:	f90013f5 	str	x21, [sp,#32]
ffff8000113a4a0c:	aa0003f5 	mov	x21, x0
ffff8000113a4a10:	aa1e03e0 	mov	x0, x30
ffff8000113a4a14:	aa0103f3 	mov	x19, x1
ffff8000113a4a18:	94000000 	bl	0 <_mcount>
			ffff8000113a4a18: R_AARCH64_CALL26	_mcount
	struct netdev_queue *txq = &dev->_tx[dev->num_tx_queues];
ffff8000113a4a1c:	b943cab4 	ldr	w20, [x21,#968]
ffff8000113a4a20:	f941e2a3 	ldr	x3, [x21,#960]
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4a24:	79479262 	ldrh	w2, [x19,#968]
	struct netdev_queue *txq = &dev->_tx[dev->num_tx_queues];
ffff8000113a4a28:	52802800 	mov	w0, #0x140                 	// #320
ffff8000113a4a2c:	9ba07e94 	umull	x20, w20, w0
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4a30:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a4a34:	aa1303e0 	mov	x0, x19
	struct netdev_queue *txq = &dev->_tx[dev->num_tx_queues];
ffff8000113a4a38:	8b140074 	add	x20, x3, x20
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4a3c:	97ffff72 	bl	ffff8000113a4804 <netif_reset_xps_queues>
	return __builtin_memset(p, c, size);
ffff8000113a4a40:	91212a60 	add	x0, x19, #0x84a
ffff8000113a4a44:	a9007c1f 	stp	xzr, xzr, [x0]
ffff8000113a4a48:	a9017c1f 	stp	xzr, xzr, [x0,#16]
ffff8000113a4a4c:	a9027c1f 	stp	xzr, xzr, [x0,#32]
ffff8000113a4a50:	a9037c1f 	stp	xzr, xzr, [x0,#48]
ffff8000113a4a54:	91222a60 	add	x0, x19, #0x88a
ffff8000113a4a58:	a9007c1f 	stp	xzr, xzr, [x0]
ffff8000113a4a5c:	f941e2a1 	ldr	x1, [x21,#960]
ffff8000113a4a60:	aa1403e2 	mov	x2, x20
ffff8000113a4a64:	d1050285 	sub	x5, x20, #0x140
ffff8000113a4a68:	cb140043 	sub	x3, x2, x20
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4a6c:	eb02003f 	cmp	x1, x2
ffff8000113a4a70:	8b050063 	add	x3, x3, x5
ffff8000113a4a74:	54000160 	b.eq	ffff8000113a4aa0 <netdev_unbind_sb_channel+0xa4>
		if (txq->sb_dev == sb_dev)
ffff8000113a4a78:	f9403864 	ldr	x4, [x3,#112]
ffff8000113a4a7c:	d1050042 	sub	x2, x2, #0x140
ffff8000113a4a80:	eb13009f 	cmp	x4, x19
ffff8000113a4a84:	54ffff21 	b.ne	ffff8000113a4a68 <netdev_unbind_sb_channel+0x6c>
			txq->sb_dev = NULL;
ffff8000113a4a88:	f900387f 	str	xzr, [x3,#112]
ffff8000113a4a8c:	f941e2a1 	ldr	x1, [x21,#960]
ffff8000113a4a90:	cb140043 	sub	x3, x2, x20
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4a94:	eb02003f 	cmp	x1, x2
ffff8000113a4a98:	8b050063 	add	x3, x3, x5
ffff8000113a4a9c:	54fffee1 	b.ne	ffff8000113a4a78 <netdev_unbind_sb_channel+0x7c>
}
ffff8000113a4aa0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4aa4:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a4aa8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a4aac:	d65f03c0 	ret

ffff8000113a4ab0 <netdev_unbind_all_sb_channels>:
{
ffff8000113a4ab0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a4ab4:	910003fd 	mov	x29, sp
ffff8000113a4ab8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4abc:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4ac0:	aa0003f4 	mov	x20, x0
ffff8000113a4ac4:	aa1e03e0 	mov	x0, x30
ffff8000113a4ac8:	94000000 	bl	0 <_mcount>
			ffff8000113a4ac8: R_AARCH64_CALL26	_mcount
	struct netdev_queue *txq = &dev->_tx[dev->num_tx_queues];
ffff8000113a4acc:	b943ca95 	ldr	w21, [x20,#968]
ffff8000113a4ad0:	f941e283 	ldr	x3, [x20,#960]
ffff8000113a4ad4:	52802800 	mov	w0, #0x140                 	// #320
ffff8000113a4ad8:	9ba07eb5 	umull	x21, w21, w0
ffff8000113a4adc:	8b150075 	add	x21, x3, x21
ffff8000113a4ae0:	aa1503e1 	mov	x1, x21
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4ae4:	d1050033 	sub	x19, x1, #0x140
ffff8000113a4ae8:	d10502b6 	sub	x22, x21, #0x140
ffff8000113a4aec:	eb03003f 	cmp	x1, x3
ffff8000113a4af0:	cb150261 	sub	x1, x19, x21
			netdev_unbind_sb_channel(dev, txq->sb_dev);
ffff8000113a4af4:	aa1403e0 	mov	x0, x20
ffff8000113a4af8:	8b160021 	add	x1, x1, x22
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4afc:	540001a0 	b.eq	ffff8000113a4b30 <netdev_unbind_all_sb_channels+0x80>
		if (txq->sb_dev)
ffff8000113a4b00:	f940d822 	ldr	x2, [x1,#432]
			netdev_unbind_sb_channel(dev, txq->sb_dev);
ffff8000113a4b04:	aa0203e1 	mov	x1, x2
		if (txq->sb_dev)
ffff8000113a4b08:	b4000062 	cbz	x2, ffff8000113a4b14 <netdev_unbind_all_sb_channels+0x64>
			netdev_unbind_sb_channel(dev, txq->sb_dev);
ffff8000113a4b0c:	94000000 	bl	ffff8000113a49fc <netdev_unbind_sb_channel>
			ffff8000113a4b0c: R_AARCH64_CALL26	netdev_unbind_sb_channel
ffff8000113a4b10:	f941e283 	ldr	x3, [x20,#960]
ffff8000113a4b14:	aa1303e1 	mov	x1, x19
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4b18:	d1050033 	sub	x19, x1, #0x140
ffff8000113a4b1c:	eb03003f 	cmp	x1, x3
ffff8000113a4b20:	cb150261 	sub	x1, x19, x21
			netdev_unbind_sb_channel(dev, txq->sb_dev);
ffff8000113a4b24:	aa1403e0 	mov	x0, x20
ffff8000113a4b28:	8b160021 	add	x1, x1, x22
	while (txq-- != &dev->_tx[0]) {
ffff8000113a4b2c:	54fffea1 	b.ne	ffff8000113a4b00 <netdev_unbind_all_sb_channels+0x50>
}
ffff8000113a4b30:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4b34:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4b38:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a4b3c:	d65f03c0 	ret

ffff8000113a4b40 <netdev_reset_tc>:
{
ffff8000113a4b40:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a4b44:	910003fd 	mov	x29, sp
ffff8000113a4b48:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a4b4c:	aa0003f3 	mov	x19, x0
ffff8000113a4b50:	aa1e03e0 	mov	x0, x30
ffff8000113a4b54:	94000000 	bl	0 <_mcount>
			ffff8000113a4b54: R_AARCH64_CALL26	_mcount
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4b58:	79479262 	ldrh	w2, [x19,#968]
ffff8000113a4b5c:	aa1303e0 	mov	x0, x19
ffff8000113a4b60:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a4b64:	97ffff28 	bl	ffff8000113a4804 <netif_reset_xps_queues>
	netdev_unbind_all_sb_channels(dev);
ffff8000113a4b68:	aa1303e0 	mov	x0, x19
ffff8000113a4b6c:	97ffffd1 	bl	ffff8000113a4ab0 <netdev_unbind_all_sb_channels>
ffff8000113a4b70:	91212a60 	add	x0, x19, #0x84a
	dev->num_tc = 0;
ffff8000113a4b74:	7910927f 	strh	wzr, [x19,#2120]
ffff8000113a4b78:	a9007c1f 	stp	xzr, xzr, [x0]
ffff8000113a4b7c:	a9017c1f 	stp	xzr, xzr, [x0,#16]
ffff8000113a4b80:	a9027c1f 	stp	xzr, xzr, [x0,#32]
ffff8000113a4b84:	a9037c1f 	stp	xzr, xzr, [x0,#48]
ffff8000113a4b88:	91222a73 	add	x19, x19, #0x88a
ffff8000113a4b8c:	a9007e7f 	stp	xzr, xzr, [x19]
}
ffff8000113a4b90:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a4b94:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a4b98:	d65f03c0 	ret

ffff8000113a4b9c <netdev_set_num_tc>:
{
ffff8000113a4b9c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a4ba0:	910003fd 	mov	x29, sp
ffff8000113a4ba4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4ba8:	aa0003f3 	mov	x19, x0
ffff8000113a4bac:	aa1e03e0 	mov	x0, x30
ffff8000113a4bb0:	53001c34 	uxtb	w20, w1
ffff8000113a4bb4:	94000000 	bl	0 <_mcount>
			ffff8000113a4bb4: R_AARCH64_CALL26	_mcount
	if (num_tc > TC_MAX_QUEUE)
ffff8000113a4bb8:	7100429f 	cmp	w20, #0x10
ffff8000113a4bbc:	54000188 	b.hi	ffff8000113a4bec <netdev_set_num_tc+0x50>
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4bc0:	79479262 	ldrh	w2, [x19,#968]
ffff8000113a4bc4:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a4bc8:	aa1303e0 	mov	x0, x19
ffff8000113a4bcc:	97ffff0e 	bl	ffff8000113a4804 <netif_reset_xps_queues>
	netdev_unbind_all_sb_channels(dev);
ffff8000113a4bd0:	aa1303e0 	mov	x0, x19
ffff8000113a4bd4:	97ffffb7 	bl	ffff8000113a4ab0 <netdev_unbind_all_sb_channels>
	return 0;
ffff8000113a4bd8:	52800000 	mov	w0, #0x0                   	// #0
	dev->num_tc = num_tc;
ffff8000113a4bdc:	79109274 	strh	w20, [x19,#2120]
}
ffff8000113a4be0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4be4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a4be8:	d65f03c0 	ret
		return -EINVAL;
ffff8000113a4bec:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a4bf0:	17fffffc 	b	ffff8000113a4be0 <netdev_set_num_tc+0x44>

ffff8000113a4bf4 <netdev_set_tc_queue>:
{
ffff8000113a4bf4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a4bf8:	910003fd 	mov	x29, sp
ffff8000113a4bfc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4c00:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4c04:	aa0003f3 	mov	x19, x0
ffff8000113a4c08:	aa1e03e0 	mov	x0, x30
ffff8000113a4c0c:	53001c34 	uxtb	w20, w1
ffff8000113a4c10:	53003c56 	uxth	w22, w2
ffff8000113a4c14:	53003c75 	uxth	w21, w3
ffff8000113a4c18:	94000000 	bl	0 <_mcount>
			ffff8000113a4c18: R_AARCH64_CALL26	_mcount
	if (tc >= dev->num_tc)
ffff8000113a4c1c:	79d09260 	ldrsh	w0, [x19,#2120]
ffff8000113a4c20:	6b00029f 	cmp	w20, w0
ffff8000113a4c24:	540001aa 	b.ge	ffff8000113a4c58 <netdev_set_tc_queue+0x64>
	netif_reset_xps_queues(dev, offset, count);
ffff8000113a4c28:	aa1303e0 	mov	x0, x19
ffff8000113a4c2c:	2a1503e1 	mov	w1, w21
ffff8000113a4c30:	2a1603e2 	mov	w2, w22
ffff8000113a4c34:	97fffef4 	bl	ffff8000113a4804 <netif_reset_xps_queues>
ffff8000113a4c38:	8b340a73 	add	x19, x19, w20, uxtb #2
	dev->tc_to_txq[tc].count = count;
ffff8000113a4c3c:	79109676 	strh	w22, [x19,#2122]
	dev->tc_to_txq[tc].offset = offset;
ffff8000113a4c40:	79109a75 	strh	w21, [x19,#2124]
	return 0;
ffff8000113a4c44:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a4c48:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4c4c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4c50:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a4c54:	d65f03c0 	ret
		return -EINVAL;
ffff8000113a4c58:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a4c5c:	17fffffb 	b	ffff8000113a4c48 <netdev_set_tc_queue+0x54>

ffff8000113a4c60 <netif_set_real_num_tx_queues>:
{
ffff8000113a4c60:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a4c64:	910003fd 	mov	x29, sp
ffff8000113a4c68:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4c6c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4c70:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a4c74:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a4c78:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a4c7c:	aa0003f3 	mov	x19, x0
ffff8000113a4c80:	2a0103f4 	mov	w20, w1
ffff8000113a4c84:	aa1e03e0 	mov	x0, x30
ffff8000113a4c88:	aa1e03f5 	mov	x21, x30
ffff8000113a4c8c:	94000000 	bl	0 <_mcount>
			ffff8000113a4c8c: R_AARCH64_CALL26	_mcount
	disabling = txq < dev->real_num_tx_queues;
ffff8000113a4c90:	b943ce76 	ldr	w22, [x19,#972]
	if (txq < 1 || txq > dev->num_tx_queues)
ffff8000113a4c94:	340009b4 	cbz	w20, ffff8000113a4dc8 <netif_set_real_num_tx_queues+0x168>
ffff8000113a4c98:	b943ca60 	ldr	w0, [x19,#968]
ffff8000113a4c9c:	6b00029f 	cmp	w20, w0
ffff8000113a4ca0:	54000948 	b.hi	ffff8000113a4dc8 <netif_set_real_num_tx_queues+0x168>
	if (dev->reg_state == NETREG_REGISTERED ||
ffff8000113a4ca4:	39536260 	ldrb	w0, [x19,#1240]
ffff8000113a4ca8:	51000400 	sub	w0, w0, #0x1
ffff8000113a4cac:	53001c00 	uxtb	w0, w0
ffff8000113a4cb0:	7100041f 	cmp	w0, #0x1
ffff8000113a4cb4:	54000149 	b.ls	ffff8000113a4cdc <netif_set_real_num_tx_queues+0x7c>
		dev->real_num_tx_queues = txq;
ffff8000113a4cb8:	b903ce74 	str	w20, [x19,#972]
	return 0;
ffff8000113a4cbc:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a4cc0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a4cc4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a4cc8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a4ccc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a4cd0:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a4cd4:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a4cd8:	d65f03c0 	ret
		ASSERT_RTNL();
ffff8000113a4cdc:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a4cdc: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a4ce0:	34000c40 	cbz	w0, ffff8000113a4e68 <netif_set_real_num_tx_queues+0x208>
		rc = netdev_queue_update_kobjects(dev, dev->real_num_tx_queues,
ffff8000113a4ce4:	b943ce61 	ldr	w1, [x19,#972]
ffff8000113a4ce8:	aa1303e0 	mov	x0, x19
ffff8000113a4cec:	2a1403e2 	mov	w2, w20
ffff8000113a4cf0:	94000000 	bl	0 <netdev_queue_update_kobjects>
			ffff8000113a4cf0: R_AARCH64_CALL26	netdev_queue_update_kobjects
ffff8000113a4cf4:	2a0003f9 	mov	w25, w0
		if (rc)
ffff8000113a4cf8:	35fffe59 	cbnz	w25, ffff8000113a4cc0 <netif_set_real_num_tx_queues+0x60>
		if (dev->num_tc)
ffff8000113a4cfc:	79d09260 	ldrsh	w0, [x19,#2120]
ffff8000113a4d00:	35000680 	cbnz	w0, ffff8000113a4dd0 <netif_set_real_num_tx_queues+0x170>
		dev->real_num_tx_queues = txq;
ffff8000113a4d04:	b903ce74 	str	w20, [x19,#972]
		if (disabling) {
ffff8000113a4d08:	6b1402df 	cmp	w22, w20
	return 0;
ffff8000113a4d0c:	52800000 	mov	w0, #0x0                   	// #0
		if (disabling) {
ffff8000113a4d10:	54fffd89 	b.ls	ffff8000113a4cc0 <netif_set_real_num_tx_queues+0x60>
			synchronize_net();
ffff8000113a4d14:	f90037a0 	str	x0, [x29,#104]
ffff8000113a4d18:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a4d18: R_AARCH64_CALL26	synchronize_net
/* Reset all TX qdiscs greater than index of a device.  */
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
{
	struct Qdisc *qdisc;

	for (; i < dev->num_tx_queues; i++) {
ffff8000113a4d1c:	b943ca62 	ldr	w2, [x19,#968]
ffff8000113a4d20:	f94037a0 	ldr	x0, [x29,#104]
ffff8000113a4d24:	6b02029f 	cmp	w20, w2
ffff8000113a4d28:	54000442 	b.cs	ffff8000113a4db0 <netif_set_real_num_tx_queues+0x150>
ffff8000113a4d2c:	2a1403f7 	mov	w23, w20
	return &dev->_tx[index];
ffff8000113a4d30:	5280281a 	mov	w26, #0x140                 	// #320
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a4d34:	d2800019 	mov	x25, #0x0                   	// #0
ffff8000113a4d38:	52800038 	mov	w24, #0x1                   	// #1
	smp_store_release(&lock->locked, 0);
ffff8000113a4d3c:	2a0003fb 	mov	w27, w0
ffff8000113a4d40:	d538411c 	mrs	x28, sp_el0
		qdisc = rtnl_dereference(netdev_get_tx_queue(dev, i)->qdisc);
ffff8000113a4d44:	f941e261 	ldr	x1, [x19,#960]
ffff8000113a4d48:	9bba7ee0 	umull	x0, w23, w26
ffff8000113a4d4c:	8b000021 	add	x1, x1, x0
ffff8000113a4d50:	f9400436 	ldr	x22, [x1,#8]
		if (qdisc) {
ffff8000113a4d54:	b4000296 	cbz	x22, ffff8000113a4da4 <netif_set_real_num_tx_queues+0x144>
ffff8000113a4d58:	b9401b80 	ldr	w0, [x28,#24]
ffff8000113a4d5c:	11080000 	add	w0, w0, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a4d60:	b9001b80 	str	w0, [x28,#24]
 extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
#else
static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
{
	__acquire(lock);
	arch_spin_lock(&lock->raw_lock);
ffff8000113a4d64:	9102b2c0 	add	x0, x22, #0xac
ffff8000113a4d68:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a4d6c:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a4d70:	4a190022 	eor	w2, w1, w25
ffff8000113a4d74:	35000062 	cbnz	w2, ffff8000113a4d80 <netif_set_real_num_tx_queues+0x120>
ffff8000113a4d78:	88027c18 	stxr	w2, w24, [x0]
ffff8000113a4d7c:	35ffff82 	cbnz	w2, ffff8000113a4d6c <netif_set_real_num_tx_queues+0x10c>
ffff8000113a4d80:	35000661 	cbnz	w1, ffff8000113a4e4c <netif_set_real_num_tx_queues+0x1ec>
			spin_lock_bh(qdisc_lock(qdisc));
			qdisc_reset(qdisc);
ffff8000113a4d84:	aa1603e0 	mov	x0, x22
ffff8000113a4d88:	94000000 	bl	0 <qdisc_reset>
			ffff8000113a4d88: R_AARCH64_CALL26	qdisc_reset
ffff8000113a4d8c:	9102b2d6 	add	x22, x22, #0xac
ffff8000113a4d90:	089ffedb 	stlrb	w27, [x22]

static inline void __raw_spin_unlock_bh(raw_spinlock_t *lock)
{
	spin_release(&lock->dep_map, _RET_IP_);
	do_raw_spin_unlock(lock);
	__local_bh_enable_ip(_RET_IP_, SOFTIRQ_LOCK_OFFSET);
ffff8000113a4d94:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a4d98:	aa1503e0 	mov	x0, x21
ffff8000113a4d9c:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a4d9c: R_AARCH64_CALL26	__local_bh_enable_ip
ffff8000113a4da0:	b943ca62 	ldr	w2, [x19,#968]
	for (; i < dev->num_tx_queues; i++) {
ffff8000113a4da4:	110006f7 	add	w23, w23, #0x1
ffff8000113a4da8:	6b0202ff 	cmp	w23, w2
ffff8000113a4dac:	54fffcc3 	b.cc	ffff8000113a4d44 <netif_set_real_num_tx_queues+0xe4>
			netif_reset_xps_queues_gt(dev, txq);
ffff8000113a4db0:	53003e81 	uxth	w1, w20
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113a4db4:	aa1303e0 	mov	x0, x19
ffff8000113a4db8:	4b010042 	sub	w2, w2, w1
ffff8000113a4dbc:	97fffe92 	bl	ffff8000113a4804 <netif_reset_xps_queues>
	return 0;
ffff8000113a4dc0:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a4dc4:	17ffffbf 	b	ffff8000113a4cc0 <netif_set_real_num_tx_queues+0x60>
		return -EINVAL;
ffff8000113a4dc8:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a4dcc:	17ffffbd 	b	ffff8000113a4cc0 <netif_set_real_num_tx_queues+0x60>
	if (tc->offset + tc->count > txq) {
ffff8000113a4dd0:	79509a61 	ldrh	w1, [x19,#2124]
ffff8000113a4dd4:	79509660 	ldrh	w0, [x19,#2122]
ffff8000113a4dd8:	aa1303f8 	mov	x24, x19
ffff8000113a4ddc:	0b000020 	add	w0, w1, w0
ffff8000113a4de0:	6b00029f 	cmp	w20, w0
			pr_warn("Number of in use tx queues changed. Priority %i to tc mapping %i is no longer valid. Setting map to 0\n",
ffff8000113a4de4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4de4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x398
	if (tc->offset + tc->count > txq) {
ffff8000113a4de8:	52800037 	mov	w23, #0x1                   	// #1
			pr_warn("Number of in use tx queues changed. Priority %i to tc mapping %i is no longer valid. Setting map to 0\n",
ffff8000113a4dec:	9100001a 	add	x26, x0, #0x0
			ffff8000113a4dec: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x398
	if (tc->offset + tc->count > txq) {
ffff8000113a4df0:	540000a2 	b.cs	ffff8000113a4e04 <netif_set_real_num_tx_queues+0x1a4>
ffff8000113a4df4:	14000018 	b	ffff8000113a4e54 <netif_set_real_num_tx_queues+0x1f4>
	for (i = 1; i < TC_BITMASK + 1; i++) {
ffff8000113a4df8:	110006f7 	add	w23, w23, #0x1
ffff8000113a4dfc:	710042ff 	cmp	w23, #0x10
ffff8000113a4e00:	54fff820 	b.eq	ffff8000113a4d04 <netif_set_real_num_tx_queues+0xa4>
	return dev->prio_tc_map[prio & TC_BITMASK];
ffff8000113a4e04:	39622f02 	ldrb	w2, [x24,#2187]
ffff8000113a4e08:	91000718 	add	x24, x24, #0x1
		tc = &dev->tc_to_txq[q];
ffff8000113a4e0c:	8b22ca61 	add	x1, x19, w2, sxtw #2
		if (tc->offset + tc->count > txq) {
ffff8000113a4e10:	79509823 	ldrh	w3, [x1,#2124]
		tc = &dev->tc_to_txq[q];
ffff8000113a4e14:	91210021 	add	x1, x1, #0x840
		if (tc->offset + tc->count > txq) {
ffff8000113a4e18:	79401421 	ldrh	w1, [x1,#10]
ffff8000113a4e1c:	0b010061 	add	w1, w3, w1
ffff8000113a4e20:	6b01029f 	cmp	w20, w1
ffff8000113a4e24:	54fffea2 	b.cs	ffff8000113a4df8 <netif_set_real_num_tx_queues+0x198>
			pr_warn("Number of in use tx queues changed. Priority %i to tc mapping %i is no longer valid. Setting map to 0\n",
ffff8000113a4e28:	2a1703e1 	mov	w1, w23
ffff8000113a4e2c:	aa1a03e0 	mov	x0, x26
ffff8000113a4e30:	94000000 	bl	0 <printk>
			ffff8000113a4e30: R_AARCH64_CALL26	printk
	if (tc >= dev->num_tc)
ffff8000113a4e34:	79d09261 	ldrsh	w1, [x19,#2120]
	dev->prio_tc_map[prio & TC_BITMASK] = tc & TC_BITMASK;
ffff8000113a4e38:	8b37c260 	add	x0, x19, w23, sxtw
	if (tc >= dev->num_tc)
ffff8000113a4e3c:	6b1f003f 	cmp	w1, wzr
ffff8000113a4e40:	54fffdcd 	b.le	ffff8000113a4df8 <netif_set_real_num_tx_queues+0x198>
	dev->prio_tc_map[prio & TC_BITMASK] = tc & TC_BITMASK;
ffff8000113a4e44:	3922281f 	strb	wzr, [x0,#2186]
ffff8000113a4e48:	17ffffec 	b	ffff8000113a4df8 <netif_set_real_num_tx_queues+0x198>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a4e4c:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a4e4c: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a4e50:	17ffffcd 	b	ffff8000113a4d84 <netif_set_real_num_tx_queues+0x124>
		pr_warn("Number of in use tx queues changed invalidating tc mappings. Priority traffic classification disabled!\n");
ffff8000113a4e54:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4e54: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x328
ffff8000113a4e58:	91000000 	add	x0, x0, #0x0
			ffff8000113a4e58: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x328
ffff8000113a4e5c:	94000000 	bl	0 <printk>
			ffff8000113a4e5c: R_AARCH64_CALL26	printk
		dev->num_tc = 0;
ffff8000113a4e60:	79109279 	strh	w25, [x19,#2120]
ffff8000113a4e64:	17ffffa8 	b	ffff8000113a4d04 <netif_set_real_num_tx_queues+0xa4>
		ASSERT_RTNL();
ffff8000113a4e68:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4e68: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a4e6c:	91000063 	add	x3, x3, #0x0
			ffff8000113a4e6c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a4e70:	39404460 	ldrb	w0, [x3,#17]
ffff8000113a4e74:	35fff380 	cbnz	w0, ffff8000113a4ce4 <netif_set_real_num_tx_queues+0x84>
ffff8000113a4e78:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4e78: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a4e7c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4e7c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a4e80:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a4e84:	91000000 	add	x0, x0, #0x0
			ffff8000113a4e84: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a4e88:	91000021 	add	x1, x1, #0x0
			ffff8000113a4e88: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a4e8c:	52816662 	mov	w2, #0xb33                 	// #2867
ffff8000113a4e90:	39004464 	strb	w4, [x3,#17]
ffff8000113a4e94:	94000000 	bl	0 <__warn_printk>
			ffff8000113a4e94: R_AARCH64_CALL26	__warn_printk
ffff8000113a4e98:	d4210000 	brk	#0x800
ffff8000113a4e9c:	17ffff92 	b	ffff8000113a4ce4 <netif_set_real_num_tx_queues+0x84>

ffff8000113a4ea0 <dev_queue_xmit_nit>:
{
ffff8000113a4ea0:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113a4ea4:	910003fd 	mov	x29, sp
ffff8000113a4ea8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a4eac:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a4eb0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a4eb4:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a4eb8:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a4ebc:	aa0003f5 	mov	x21, x0
ffff8000113a4ec0:	aa1e03e0 	mov	x0, x30
ffff8000113a4ec4:	aa0103f8 	mov	x24, x1
ffff8000113a4ec8:	94000000 	bl	0 <_mcount>
			ffff8000113a4ec8: R_AARCH64_CALL26	_mcount
	struct list_head *ptype_list = &ptype_all;
ffff8000113a4ecc:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4ecc: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a4ed0:	9100037b 	add	x27, x27, #0x0
			ffff8000113a4ed0: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a4ed4:	9120037b 	add	x27, x27, #0x800
	struct packet_type *pt_prev = NULL;
ffff8000113a4ed8:	d280001c 	mov	x28, #0x0                   	// #0
			net_crit_ratelimited("protocol %04x is buggy, dev %s\n",
ffff8000113a4edc:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4edc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x408
	struct sk_buff *skb2 = NULL;
ffff8000113a4ee0:	aa1c03f4 	mov	x20, x28
	__READ_ONCE_SIZE;
ffff8000113a4ee4:	90000019 	adrp	x25, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a4ee4: R_AARCH64_ADR_PREL_PG_HI21	.bss
			net_crit_ratelimited("protocol %04x is buggy, dev %s\n",
ffff8000113a4ee8:	9100035a 	add	x26, x26, #0x0
			ffff8000113a4ee8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x408
	if (ptype_list == &ptype_all) {
ffff8000113a4eec:	aa1b03f7 	mov	x23, x27
ffff8000113a4ef0:	f9400373 	ldr	x19, [x27]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113a4ef4:	eb13037f 	cmp	x27, x19
ffff8000113a4ef8:	d100c273 	sub	x19, x19, #0x30
ffff8000113a4efc:	54000640 	b.eq	ffff8000113a4fc4 <dev_queue_xmit_nit+0x124>
		skb2->pkt_type = PACKET_OUTGOING;
ffff8000113a4f00:	52800096 	mov	w22, #0x4                   	// #4
ffff8000113a4f04:	14000005 	b	ffff8000113a4f18 <dev_queue_xmit_nit+0x78>
ffff8000113a4f08:	f9401a73 	ldr	x19, [x19,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113a4f0c:	eb13037f 	cmp	x27, x19
ffff8000113a4f10:	d100c273 	sub	x19, x19, #0x30
ffff8000113a4f14:	54000580 	b.eq	ffff8000113a4fc4 <dev_queue_xmit_nit+0x124>
		if (ptype->ignore_outgoing)
ffff8000113a4f18:	39400a63 	ldrb	w3, [x19,#2]
ffff8000113a4f1c:	35ffff63 	cbnz	w3, ffff8000113a4f08 <dev_queue_xmit_nit+0x68>
	if (!ptype->af_packet_priv || !skb->sk)
ffff8000113a4f20:	f9401663 	ldr	x3, [x19,#40]
ffff8000113a4f24:	b4000123 	cbz	x3, ffff8000113a4f48 <dev_queue_xmit_nit+0xa8>
ffff8000113a4f28:	f9400ea1 	ldr	x1, [x21,#24]
ffff8000113a4f2c:	b40000e1 	cbz	x1, ffff8000113a4f48 <dev_queue_xmit_nit+0xa8>
	if (ptype->id_match)
ffff8000113a4f30:	f9401264 	ldr	x4, [x19,#32]
ffff8000113a4f34:	b4000504 	cbz	x4, ffff8000113a4fd4 <dev_queue_xmit_nit+0x134>
		return ptype->id_match(ptype, skb->sk);
ffff8000113a4f38:	aa1303e0 	mov	x0, x19
ffff8000113a4f3c:	d63f0080 	blr	x4
ffff8000113a4f40:	53001c00 	uxtb	w0, w0
		if (skb_loop_sk(ptype, skb))
ffff8000113a4f44:	35fffe20 	cbnz	w0, ffff8000113a4f08 <dev_queue_xmit_nit+0x68>
		if (pt_prev) {
ffff8000113a4f48:	b40004dc 	cbz	x28, ffff8000113a4fe0 <dev_queue_xmit_nit+0x140>
			deliver_skb(skb2, pt_prev, skb->dev);
ffff8000113a4f4c:	f9400aa3 	ldr	x3, [x21,#16]
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a4f50:	b4000114 	cbz	x20, ffff8000113a4f70 <dev_queue_xmit_nit+0xd0>
	return skb->head + skb->end;
ffff8000113a4f54:	f9406281 	ldr	x1, [x20,#192]
ffff8000113a4f58:	b940be80 	ldr	w0, [x20,#188]
ffff8000113a4f5c:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a4f60:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113a4f64:	36180061 	tbz	w1, #3, ffff8000113a4f70 <dev_queue_xmit_nit+0xd0>
	if (likely(!skb_zcopy(skb)))
ffff8000113a4f68:	f9401400 	ldr	x0, [x0,#40]
ffff8000113a4f6c:	b5000f00 	cbnz	x0, ffff8000113a514c <dev_queue_xmit_nit+0x2ac>
	refcount_inc(&skb->users);
ffff8000113a4f70:	91035280 	add	x0, x20, #0xd4
ATOMIC_OPS(add, add, I)
ffff8000113a4f74:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a4f78:	885f7c01 	ldxr	w1, [x0]
ffff8000113a4f7c:	11000422 	add	w2, w1, #0x1
ffff8000113a4f80:	88047c02 	stxr	w4, w2, [x0]
ffff8000113a4f84:	35ffffa4 	cbnz	w4, ffff8000113a4f78 <dev_queue_xmit_nit+0xd8>
	if (unlikely(!old))
ffff8000113a4f88:	6b1f003f 	cmp	w1, wzr
ffff8000113a4f8c:	54000d60 	b.eq	ffff8000113a5138 <dev_queue_xmit_nit+0x298>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113a4f90:	54000b4b 	b.lt	ffff8000113a50f8 <dev_queue_xmit_nit+0x258>
ffff8000113a4f94:	3100043f 	cmn	w1, #0x1
ffff8000113a4f98:	54000b04 	b.mi	ffff8000113a50f8 <dev_queue_xmit_nit+0x258>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113a4f9c:	f9400b84 	ldr	x4, [x28,#16]
ffff8000113a4fa0:	f9400a81 	ldr	x1, [x20,#16]
ffff8000113a4fa4:	aa1c03e2 	mov	x2, x28
ffff8000113a4fa8:	aa1403e0 	mov	x0, x20
ffff8000113a4fac:	d63f0080 	blr	x4
ffff8000113a4fb0:	aa1303fc 	mov	x28, x19
ffff8000113a4fb4:	f9401a73 	ldr	x19, [x19,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113a4fb8:	eb13037f 	cmp	x27, x19
ffff8000113a4fbc:	d100c273 	sub	x19, x19, #0x30
ffff8000113a4fc0:	54fffac1 	b.ne	ffff8000113a4f18 <dev_queue_xmit_nit+0x78>
	if (ptype_list == &ptype_all) {
ffff8000113a4fc4:	eb17037f 	cmp	x27, x23
ffff8000113a4fc8:	54000521 	b.ne	ffff8000113a506c <dev_queue_xmit_nit+0x1cc>
		ptype_list = &dev->ptype_all;
ffff8000113a4fcc:	9102231b 	add	x27, x24, #0x88
		goto again;
ffff8000113a4fd0:	17ffffc8 	b	ffff8000113a4ef0 <dev_queue_xmit_nit+0x50>
	else if ((struct sock *)ptype->af_packet_priv == skb->sk)
ffff8000113a4fd4:	eb01007f 	cmp	x3, x1
ffff8000113a4fd8:	54fff980 	b.eq	ffff8000113a4f08 <dev_queue_xmit_nit+0x68>
		if (pt_prev) {
ffff8000113a4fdc:	b5fffb9c 	cbnz	x28, ffff8000113a4f4c <dev_queue_xmit_nit+0xac>
		skb2 = skb_clone(skb, GFP_ATOMIC);
ffff8000113a4fe0:	aa1503e0 	mov	x0, x21
ffff8000113a4fe4:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113a4fe8:	94000000 	bl	0 <skb_clone>
			ffff8000113a4fe8: R_AARCH64_CALL26	skb_clone
ffff8000113a4fec:	aa0003f4 	mov	x20, x0
		if (!skb2)
ffff8000113a4ff0:	b40005c0 	cbz	x0, ffff8000113a50a8 <dev_queue_xmit_nit+0x208>
ffff8000113a4ff4:	91000320 	add	x0, x25, #0x0
			ffff8000113a4ff4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a4ff8:	b9434800 	ldr	w0, [x0,#840]
	skb->tstamp = 0;
ffff8000113a4ffc:	f900129c 	str	x28, [x20,#32]
	if (static_branch_unlikely(&netstamp_needed_key))
ffff8000113a5000:	6b1f001f 	cmp	w0, wzr
ffff8000113a5004:	5400092c 	b.gt	ffff8000113a5128 <dev_queue_xmit_nit+0x288>
	skb->mac_header = skb->data - skb->head;
ffff8000113a5008:	f9406681 	ldr	x1, [x20,#200]
ffff8000113a500c:	f9406280 	ldr	x0, [x20,#192]
	struct sk_buff *skb2 = NULL;
ffff8000113a5010:	79416a83 	ldrh	w3, [x20,#180]
ffff8000113a5014:	cb000024 	sub	x4, x1, x0
	return skb->head + skb->network_header;
ffff8000113a5018:	8b232002 	add	x2, x0, w3, uxth
	skb->mac_header = skb->data - skb->head;
ffff8000113a501c:	79016e84 	strh	w4, [x20,#182]
		if (skb_network_header(skb2) < skb2->data ||
ffff8000113a5020:	eb02003f 	cmp	x1, x2
ffff8000113a5024:	540000a8 	b.hi	ffff8000113a5038 <dev_queue_xmit_nit+0x198>
	return skb->head + skb->tail;
ffff8000113a5028:	b940ba81 	ldr	w1, [x20,#184]
ffff8000113a502c:	8b010000 	add	x0, x0, x1
ffff8000113a5030:	eb00005f 	cmp	x2, x0
ffff8000113a5034:	54000109 	b.ls	ffff8000113a5054 <dev_queue_xmit_nit+0x1b4>
			net_crit_ratelimited("protocol %04x is buggy, dev %s\n",
ffff8000113a5038:	94000000 	bl	0 <net_ratelimit>
			ffff8000113a5038: R_AARCH64_CALL26	net_ratelimit
ffff8000113a503c:	35000680 	cbnz	w0, ffff8000113a510c <dev_queue_xmit_nit+0x26c>
	skb->network_header = skb->data - skb->head;
ffff8000113a5040:	f9406683 	ldr	x3, [x20,#200]
ffff8000113a5044:	f9406280 	ldr	x0, [x20,#192]
ffff8000113a5048:	cb000063 	sub	x3, x3, x0
ffff8000113a504c:	53003c63 	uxth	w3, w3
ffff8000113a5050:	79016a83 	strh	w3, [x20,#180]
		skb2->pkt_type = PACKET_OUTGOING;
ffff8000113a5054:	39420280 	ldrb	w0, [x20,#128]
		skb2->transport_header = skb2->network_header;
ffff8000113a5058:	79016683 	strh	w3, [x20,#178]
		skb2->pkt_type = PACKET_OUTGOING;
ffff8000113a505c:	33000ac0 	bfxil	w0, w22, #0, #3
ffff8000113a5060:	39020280 	strb	w0, [x20,#128]
ffff8000113a5064:	aa1303fc 	mov	x28, x19
ffff8000113a5068:	17ffffa8 	b	ffff8000113a4f08 <dev_queue_xmit_nit+0x68>
	if (pt_prev) {
ffff8000113a506c:	b40001fc 	cbz	x28, ffff8000113a50a8 <dev_queue_xmit_nit+0x208>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a5070:	b40002b4 	cbz	x20, ffff8000113a50c4 <dev_queue_xmit_nit+0x224>
	return skb->head + skb->end;
ffff8000113a5074:	f9406281 	ldr	x1, [x20,#192]
ffff8000113a5078:	b940be80 	ldr	w0, [x20,#188]
ffff8000113a507c:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113a5080:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113a5084:	36180201 	tbz	w1, #3, ffff8000113a50c4 <dev_queue_xmit_nit+0x224>
	if (likely(!skb_zcopy(skb)))
ffff8000113a5088:	f9401400 	ldr	x0, [x0,#40]
ffff8000113a508c:	b40001c0 	cbz	x0, ffff8000113a50c4 <dev_queue_xmit_nit+0x224>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113a5090:	aa1403e0 	mov	x0, x20
ffff8000113a5094:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113a5098:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113a5098: R_AARCH64_CALL26	skb_copy_ubufs
		if (!skb_orphan_frags_rx(skb2, GFP_ATOMIC))
ffff8000113a509c:	34000140 	cbz	w0, ffff8000113a50c4 <dev_queue_xmit_nit+0x224>
			kfree_skb(skb2);
ffff8000113a50a0:	aa1403e0 	mov	x0, x20
ffff8000113a50a4:	94000000 	bl	0 <kfree_skb>
			ffff8000113a50a4: R_AARCH64_CALL26	kfree_skb
}
ffff8000113a50a8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a50ac:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a50b0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a50b4:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a50b8:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a50bc:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a50c0:	d65f03c0 	ret
			pt_prev->func(skb2, skb->dev, pt_prev, skb->dev);
ffff8000113a50c4:	f9400aa1 	ldr	x1, [x21,#16]
ffff8000113a50c8:	f9400b84 	ldr	x4, [x28,#16]
ffff8000113a50cc:	aa1403e0 	mov	x0, x20
ffff8000113a50d0:	aa1c03e2 	mov	x2, x28
ffff8000113a50d4:	aa0103e3 	mov	x3, x1
ffff8000113a50d8:	d63f0080 	blr	x4
}
ffff8000113a50dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a50e0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a50e4:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a50e8:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a50ec:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a50f0:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113a50f4:	d65f03c0 	ret
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113a50f8:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a50fc:	f90037a3 	str	x3, [x29,#104]
ffff8000113a5100:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113a5100: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113a5104:	f94037a3 	ldr	x3, [x29,#104]
ffff8000113a5108:	17ffffa5 	b	ffff8000113a4f9c <dev_queue_xmit_nit+0xfc>
ffff8000113a510c:	79416281 	ldrh	w1, [x20,#176]
			net_crit_ratelimited("protocol %04x is buggy, dev %s\n",
ffff8000113a5110:	aa1a03e0 	mov	x0, x26
ffff8000113a5114:	5ac00421 	rev16	w1, w1
ffff8000113a5118:	53003c21 	uxth	w1, w1
ffff8000113a511c:	aa1803e2 	mov	x2, x24
ffff8000113a5120:	94000000 	bl	0 <printk>
			ffff8000113a5120: R_AARCH64_CALL26	printk
ffff8000113a5124:	17ffffc7 	b	ffff8000113a5040 <dev_queue_xmit_nit+0x1a0>
/**
 * ktime_get_real - get the real (wall-) time in ktime_t format
 */
static inline ktime_t ktime_get_real(void)
{
	return ktime_get_with_offset(TK_OFFS_REAL);
ffff8000113a5128:	2a1c03e0 	mov	w0, w28
ffff8000113a512c:	94000000 	bl	0 <ktime_get_with_offset>
			ffff8000113a512c: R_AARCH64_CALL26	ktime_get_with_offset
	skb->tstamp = ktime_get_real();
ffff8000113a5130:	f9001280 	str	x0, [x20,#32]
ffff8000113a5134:	17ffffb5 	b	ffff8000113a5008 <dev_queue_xmit_nit+0x168>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113a5138:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113a513c:	f90037a3 	str	x3, [x29,#104]
ffff8000113a5140:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113a5140: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113a5144:	f94037a3 	ldr	x3, [x29,#104]
ffff8000113a5148:	17ffff95 	b	ffff8000113a4f9c <dev_queue_xmit_nit+0xfc>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113a514c:	aa1403e0 	mov	x0, x20
ffff8000113a5150:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113a5154:	f90037a3 	str	x3, [x29,#104]
ffff8000113a5158:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113a5158: R_AARCH64_CALL26	skb_copy_ubufs
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113a515c:	f94037a3 	ldr	x3, [x29,#104]
ffff8000113a5160:	34fff080 	cbz	w0, ffff8000113a4f70 <dev_queue_xmit_nit+0xd0>
ffff8000113a5164:	aa1303fc 	mov	x28, x19
ffff8000113a5168:	17ffff68 	b	ffff8000113a4f08 <dev_queue_xmit_nit+0x68>

ffff8000113a516c <dev_pick_tx_cpu_id>:
{
ffff8000113a516c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a5170:	910003fd 	mov	x29, sp
ffff8000113a5174:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a5178:	aa0003f3 	mov	x19, x0
ffff8000113a517c:	aa1e03e0 	mov	x0, x30
ffff8000113a5180:	94000000 	bl	0 <_mcount>
			ffff8000113a5180: R_AARCH64_CALL26	_mcount
	return (u16)raw_smp_processor_id() % dev->real_num_tx_queues;
ffff8000113a5184:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a5184: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a5188:	b943ce62 	ldr	w2, [x19,#972]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a518c:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a5190:	91000021 	add	x1, x1, #0x0
			ffff8000113a5190: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a5194:	78616800 	ldrh	w0, [x0,x1]
}
ffff8000113a5198:	f9400bf3 	ldr	x19, [sp,#16]
	return (u16)raw_smp_processor_id() % dev->real_num_tx_queues;
ffff8000113a519c:	1ac20801 	udiv	w1, w0, w2
ffff8000113a51a0:	1b028020 	msub	w0, w1, w2, w0
}
ffff8000113a51a4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a51a8:	d65f03c0 	ret

ffff8000113a51ac <netif_napi_del>:
{
ffff8000113a51ac:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a51b0:	910003fd 	mov	x29, sp
ffff8000113a51b4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a51b8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a51bc:	aa0003f6 	mov	x22, x0
ffff8000113a51c0:	aa1e03e0 	mov	x0, x30
ffff8000113a51c4:	94000000 	bl	0 <_mcount>
			ffff8000113a51c4: R_AARCH64_CALL26	_mcount
	might_sleep();
ffff8000113a51c8:	94000000 	bl	0 <_cond_resched>
			ffff8000113a51c8: R_AARCH64_CALL26	_cond_resched
	if (napi_hash_del(napi))
ffff8000113a51cc:	aa1603e0 	mov	x0, x22
ffff8000113a51d0:	94000000 	bl	ffff8000113a2a50 <napi_hash_del>
			ffff8000113a51d0: R_AARCH64_CALL26	napi_hash_del
ffff8000113a51d4:	53001c00 	uxtb	w0, w0
ffff8000113a51d8:	34000040 	cbz	w0, ffff8000113a51e0 <netif_napi_del+0x34>
		synchronize_net();
ffff8000113a51dc:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113a51dc: R_AARCH64_CALL26	synchronize_net
	list_del_init(&napi->dev_list);
ffff8000113a51e0:	910582d3 	add	x19, x22, #0x160
	if (!__list_del_entry_valid(entry))
ffff8000113a51e4:	aa1303e0 	mov	x0, x19
ffff8000113a51e8:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a51e8: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a51ec:	53001c00 	uxtb	w0, w0
ffff8000113a51f0:	340000a0 	cbz	w0, ffff8000113a5204 <netif_napi_del+0x58>
	__list_del(entry->prev, entry->next);
ffff8000113a51f4:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a51f8:	f940b2c1 	ldr	x1, [x22,#352]
	next->prev = prev;
ffff8000113a51fc:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a5200:	f9000001 	str	x1, [x0]
ffff8000113a5204:	f900b2d3 	str	x19, [x22,#352]
	list->prev = list;
ffff8000113a5208:	f9000673 	str	x19, [x19,#8]
	kfree_skb(napi->skb);
ffff8000113a520c:	f94082c0 	ldr	x0, [x22,#256]
ffff8000113a5210:	910102d4 	add	x20, x22, #0x40
ffff8000113a5214:	94000000 	bl	0 <kfree_skb>
			ffff8000113a5214: R_AARCH64_CALL26	kfree_skb
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
ffff8000113a5218:	52800015 	mov	w21, #0x0                   	// #0
	napi->skb = NULL;
ffff8000113a521c:	f90082df 	str	xzr, [x22,#256]
		list_for_each_entry_safe(skb, n, &napi->gro_hash[i].list, list)
ffff8000113a5220:	f9400280 	ldr	x0, [x20]
ffff8000113a5224:	eb00029f 	cmp	x20, x0
ffff8000113a5228:	f9400013 	ldr	x19, [x0]
ffff8000113a522c:	54000081 	b.ne	ffff8000113a523c <netif_napi_del+0x90>
ffff8000113a5230:	14000007 	b	ffff8000113a524c <netif_napi_del+0xa0>
ffff8000113a5234:	aa1303e0 	mov	x0, x19
ffff8000113a5238:	aa0103f3 	mov	x19, x1
			kfree_skb(skb);
ffff8000113a523c:	94000000 	bl	0 <kfree_skb>
			ffff8000113a523c: R_AARCH64_CALL26	kfree_skb
		list_for_each_entry_safe(skb, n, &napi->gro_hash[i].list, list)
ffff8000113a5240:	eb13029f 	cmp	x20, x19
ffff8000113a5244:	f9400261 	ldr	x1, [x19]
ffff8000113a5248:	54ffff61 	b.ne	ffff8000113a5234 <netif_napi_del+0x88>
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
ffff8000113a524c:	110006b5 	add	w21, w21, #0x1
		napi->gro_hash[i].count = 0;
ffff8000113a5250:	b900129f 	str	wzr, [x20,#16]
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
ffff8000113a5254:	710022bf 	cmp	w21, #0x8
ffff8000113a5258:	91006294 	add	x20, x20, #0x18
ffff8000113a525c:	54fffe21 	b.ne	ffff8000113a5220 <netif_napi_del+0x74>
	napi->gro_bitmask = 0;
ffff8000113a5260:	f90012df 	str	xzr, [x22,#32]
}
ffff8000113a5264:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5268:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a526c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5270:	d65f03c0 	ret

ffff8000113a5274 <free_netdev>:
{
ffff8000113a5274:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5278:	910003fd 	mov	x29, sp
ffff8000113a527c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5280:	f90013f5 	str	x21, [sp,#32]
ffff8000113a5284:	aa0003f4 	mov	x20, x0
ffff8000113a5288:	aa1e03e0 	mov	x0, x30
ffff8000113a528c:	94000000 	bl	0 <_mcount>
			ffff8000113a528c: R_AARCH64_CALL26	_mcount
	might_sleep();
ffff8000113a5290:	94000000 	bl	0 <_cond_resched>
			ffff8000113a5290: R_AARCH64_CALL26	_cond_resched
	kvfree(dev->_tx);
ffff8000113a5294:	f941e280 	ldr	x0, [x20,#960]
ffff8000113a5298:	94000000 	bl	0 <kvfree>
			ffff8000113a5298: R_AARCH64_CALL26	kvfree
	if (!dev->_rx)
ffff8000113a529c:	f9419280 	ldr	x0, [x20,#800]
void free_netdev(struct net_device *dev)
ffff8000113a52a0:	b9432a95 	ldr	w21, [x20,#808]
	if (!dev->_rx)
ffff8000113a52a4:	b40001c0 	cbz	x0, ffff8000113a52dc <free_netdev+0x68>
	for (i = 0; i < count; i++)
ffff8000113a52a8:	34000195 	cbz	w21, ffff8000113a52d8 <free_netdev+0x64>
ffff8000113a52ac:	510006b5 	sub	w21, w21, #0x1
ffff8000113a52b0:	910006b5 	add	x21, x21, #0x1
ffff8000113a52b4:	d378deb5 	lsl	x21, x21, #8
ffff8000113a52b8:	d2800013 	mov	x19, #0x0                   	// #0
		xdp_rxq_info_unreg(&dev->_rx[i].xdp_rxq);
ffff8000113a52bc:	8b130000 	add	x0, x0, x19
ffff8000113a52c0:	91020000 	add	x0, x0, #0x80
ffff8000113a52c4:	94000000 	bl	0 <xdp_rxq_info_unreg>
			ffff8000113a52c4: R_AARCH64_CALL26	xdp_rxq_info_unreg
ffff8000113a52c8:	91040273 	add	x19, x19, #0x100
	for (i = 0; i < count; i++)
ffff8000113a52cc:	eb15027f 	cmp	x19, x21
ffff8000113a52d0:	f9419280 	ldr	x0, [x20,#800]
ffff8000113a52d4:	54ffff41 	b.ne	ffff8000113a52bc <free_netdev+0x48>
	kvfree(dev->_rx);
ffff8000113a52d8:	94000000 	bl	0 <kvfree>
			ffff8000113a52d8: R_AARCH64_CALL26	kvfree
	kfree(rcu_dereference_protected(dev->ingress_queue, 1));
ffff8000113a52dc:	f941ae80 	ldr	x0, [x20,#856]
	list_for_each_entry_safe(p, n, &dev->napi_list, dev_list)
ffff8000113a52e0:	aa1403f5 	mov	x21, x20
	kfree(rcu_dereference_protected(dev->ingress_queue, 1));
ffff8000113a52e4:	94000000 	bl	0 <kfree>
			ffff8000113a52e4: R_AARCH64_CALL26	kfree
	dev_addr_flush(dev);
ffff8000113a52e8:	aa1403e0 	mov	x0, x20
ffff8000113a52ec:	94000000 	bl	0 <dev_addr_flush>
			ffff8000113a52ec: R_AARCH64_CALL26	dev_addr_flush
	list_for_each_entry_safe(p, n, &dev->napi_list, dev_list)
ffff8000113a52f0:	f8458ea1 	ldr	x1, [x21,#88]!
ffff8000113a52f4:	d1058020 	sub	x0, x1, #0x160
ffff8000113a52f8:	f940b013 	ldr	x19, [x0,#352]
ffff8000113a52fc:	eb0102bf 	cmp	x21, x1
ffff8000113a5300:	d1058273 	sub	x19, x19, #0x160
ffff8000113a5304:	54000081 	b.ne	ffff8000113a5314 <free_netdev+0xa0>
ffff8000113a5308:	14000009 	b	ffff8000113a532c <free_netdev+0xb8>
ffff8000113a530c:	aa1303e0 	mov	x0, x19
ffff8000113a5310:	aa0103f3 	mov	x19, x1
		netif_napi_del(p);
ffff8000113a5314:	94000000 	bl	ffff8000113a51ac <netif_napi_del>
			ffff8000113a5314: R_AARCH64_CALL26	netif_napi_del
	list_for_each_entry_safe(p, n, &dev->napi_list, dev_list)
ffff8000113a5318:	91058261 	add	x1, x19, #0x160
ffff8000113a531c:	f940b260 	ldr	x0, [x19,#352]
ffff8000113a5320:	eb0102bf 	cmp	x21, x1
ffff8000113a5324:	d1058001 	sub	x1, x0, #0x160
ffff8000113a5328:	54ffff21 	b.ne	ffff8000113a530c <free_netdev+0x98>
	free_percpu(dev->pcpu_refcnt);
ffff8000113a532c:	f9426280 	ldr	x0, [x20,#1216]
ffff8000113a5330:	94000000 	bl	0 <free_percpu>
			ffff8000113a5330: R_AARCH64_CALL26	free_percpu
	free_percpu(dev->xdp_bulkq);
ffff8000113a5334:	f941f280 	ldr	x0, [x20,#992]
	dev->pcpu_refcnt = NULL;
ffff8000113a5338:	f902629f 	str	xzr, [x20,#1216]
	free_percpu(dev->xdp_bulkq);
ffff8000113a533c:	94000000 	bl	0 <free_percpu>
			ffff8000113a533c: R_AARCH64_CALL26	free_percpu
	if (dev->reg_state == NETREG_UNINITIALIZED) {
ffff8000113a5340:	39536280 	ldrb	w0, [x20,#1240]
	dev->xdp_bulkq = NULL;
ffff8000113a5344:	f901f29f 	str	xzr, [x20,#992]
	if (dev->reg_state == NETREG_UNINITIALIZED) {
ffff8000113a5348:	34000160 	cbz	w0, ffff8000113a5374 <free_netdev+0x100>
	BUG_ON(dev->reg_state != NETREG_UNREGISTERED);
ffff8000113a534c:	71000c1f 	cmp	w0, #0x3
ffff8000113a5350:	54000201 	b.ne	ffff8000113a5390 <free_netdev+0x11c>
	dev->reg_state = NETREG_RELEASED;
ffff8000113a5354:	52800080 	mov	w0, #0x4                   	// #4
ffff8000113a5358:	39136280 	strb	w0, [x20,#1240]
	put_device(&dev->dev);
ffff8000113a535c:	91144280 	add	x0, x20, #0x510
ffff8000113a5360:	94000000 	bl	0 <put_device>
			ffff8000113a5360: R_AARCH64_CALL26	put_device
}
ffff8000113a5364:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5368:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a536c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5370:	d65f03c0 	ret
	char *addr = (char *)dev - dev->padded;
ffff8000113a5374:	79446680 	ldrh	w0, [x20,#562]
	kvfree(addr);
ffff8000113a5378:	cb000280 	sub	x0, x20, x0
ffff8000113a537c:	94000000 	bl	0 <kvfree>
			ffff8000113a537c: R_AARCH64_CALL26	kvfree
}
ffff8000113a5380:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5384:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a5388:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a538c:	d65f03c0 	ret
	BUG_ON(dev->reg_state != NETREG_UNREGISTERED);
ffff8000113a5390:	d4210000 	brk	#0x800

ffff8000113a5394 <alloc_netdev_mqs>:
{
ffff8000113a5394:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a5398:	910003fd 	mov	x29, sp
ffff8000113a539c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a53a0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a53a4:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a53a8:	f90023f9 	str	x25, [sp,#64]
ffff8000113a53ac:	2a0003f3 	mov	w19, w0
ffff8000113a53b0:	aa1e03e0 	mov	x0, x30
ffff8000113a53b4:	aa0103f7 	mov	x23, x1
ffff8000113a53b8:	53001c58 	uxtb	w24, w2
ffff8000113a53bc:	aa0303f5 	mov	x21, x3
ffff8000113a53c0:	2a0403f4 	mov	w20, w4
ffff8000113a53c4:	2a0503f6 	mov	w22, w5
ffff8000113a53c8:	94000000 	bl	0 <_mcount>
			ffff8000113a53c8: R_AARCH64_CALL26	_mcount
		return __builtin_strlen(p);
ffff8000113a53cc:	aa1703e0 	mov	x0, x23
ffff8000113a53d0:	94000000 	bl	0 <strlen>
			ffff8000113a53d0: R_AARCH64_CALL26	strlen
	BUG_ON(strlen(name) >= sizeof(dev->name));
ffff8000113a53d4:	f1003c1f 	cmp	x0, #0xf
ffff8000113a53d8:	540018a8 	b.hi	ffff8000113a56ec <alloc_netdev_mqs+0x358>
	if (txqs < 1) {
ffff8000113a53dc:	340017f4 	cbz	w20, ffff8000113a56d8 <alloc_netdev_mqs+0x344>
	if (rxqs < 1) {
ffff8000113a53e0:	34001896 	cbz	w22, ffff8000113a56f0 <alloc_netdev_mqs+0x35c>
ffff8000113a53e4:	6b1f027f 	cmp	w19, wzr
ffff8000113a53e8:	d28123e0 	mov	x0, #0x91f                 	// #2335
ffff8000113a53ec:	11247e73 	add	w19, w19, #0x91f
ffff8000113a53f0:	9a801260 	csel	x0, x19, x0, ne
	return kvmalloc_node(size, flags, NUMA_NO_NODE);
ffff8000113a53f4:	5289b801 	mov	w1, #0x4dc0                	// #19904
ffff8000113a53f8:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a53fc:	94000000 	bl	0 <kvmalloc_node>
			ffff8000113a53fc: R_AARCH64_CALL26	kvmalloc_node
	if (!p)
ffff8000113a5400:	b4001160 	cbz	x0, ffff8000113a562c <alloc_netdev_mqs+0x298>
	dev = PTR_ALIGN(p, NETDEV_ALIGN);
ffff8000113a5404:	91007c13 	add	x19, x0, #0x1f
ffff8000113a5408:	927bea73 	and	x19, x19, #0xffffffffffffffe0
	dev->padded = (char *)dev - (char *)p;
ffff8000113a540c:	cb000261 	sub	x1, x19, x0
	dev->pcpu_refcnt = alloc_percpu(int);
ffff8000113a5410:	d2800080 	mov	x0, #0x4                   	// #4
	dev->padded = (char *)dev - (char *)p;
ffff8000113a5414:	79046661 	strh	w1, [x19,#562]
	dev->pcpu_refcnt = alloc_percpu(int);
ffff8000113a5418:	aa0003e1 	mov	x1, x0
ffff8000113a541c:	94000000 	bl	0 <__alloc_percpu>
			ffff8000113a541c: R_AARCH64_CALL26	__alloc_percpu
ffff8000113a5420:	f9026260 	str	x0, [x19,#1216]
	if (!dev->pcpu_refcnt)
ffff8000113a5424:	b4001460 	cbz	x0, ffff8000113a56b0 <alloc_netdev_mqs+0x31c>
	if (dev_addr_init(dev))
ffff8000113a5428:	aa1303e0 	mov	x0, x19
ffff8000113a542c:	94000000 	bl	0 <dev_addr_init>
			ffff8000113a542c: R_AARCH64_CALL26	dev_addr_init
ffff8000113a5430:	350013c0 	cbnz	w0, ffff8000113a56a8 <alloc_netdev_mqs+0x314>
	dev_mc_init(dev);
ffff8000113a5434:	aa1303e0 	mov	x0, x19
ffff8000113a5438:	94000000 	bl	0 <dev_mc_init>
			ffff8000113a5438: R_AARCH64_CALL26	dev_mc_init
	dev_uc_init(dev);
ffff8000113a543c:	aa1303e0 	mov	x0, x19
ffff8000113a5440:	94000000 	bl	0 <dev_uc_init>
			ffff8000113a5440: R_AARCH64_CALL26	dev_uc_init
	pnet->net = net;
ffff8000113a5444:	90000002 	adrp	x2, 0 <init_net>
			ffff8000113a5444: R_AARCH64_ADR_PREL_PG_HI21	init_net
ffff8000113a5448:	91000042 	add	x2, x2, #0x0
			ffff8000113a5448: R_AARCH64_ADD_ABS_LO12_NC	init_net
ffff8000113a544c:	f9027a62 	str	x2, [x19,#1264]
	dev->gso_max_size = GSO_MAX_SIZE;
ffff8000113a5450:	52a00022 	mov	w2, #0x10000               	// #65536
ffff8000113a5454:	b9083a62 	str	w2, [x19,#2104]
	dev->upper_level = 1;
ffff8000113a5458:	52800021 	mov	w1, #0x1                   	// #1
	INIT_LIST_HEAD(&dev->napi_list);
ffff8000113a545c:	91016260 	add	x0, x19, #0x58
	dev->gso_max_segs = GSO_MAX_SEGS;
ffff8000113a5460:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a5464:	f9002e60 	str	x0, [x19,#88]
	dev->upper_level = 1;
ffff8000113a5468:	3909c261 	strb	w1, [x19,#624]
	dev->lower_level = 1;
ffff8000113a546c:	3909c661 	strb	w1, [x19,#625]
	dev->gso_max_segs = GSO_MAX_SEGS;
ffff8000113a5470:	79107a62 	strh	w2, [x19,#2108]
ffff8000113a5474:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->unreg_list);
ffff8000113a5478:	9101a260 	add	x0, x19, #0x68
ffff8000113a547c:	f9003660 	str	x0, [x19,#104]
ffff8000113a5480:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->close_list);
ffff8000113a5484:	9101e260 	add	x0, x19, #0x78
ffff8000113a5488:	f9003e60 	str	x0, [x19,#120]
ffff8000113a548c:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->link_watch_list);
ffff8000113a5490:	91132260 	add	x0, x19, #0x4c8
ffff8000113a5494:	f9026660 	str	x0, [x19,#1224]
ffff8000113a5498:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->adj_list.upper);
ffff8000113a549c:	9102a260 	add	x0, x19, #0xa8
ffff8000113a54a0:	f9005660 	str	x0, [x19,#168]
ffff8000113a54a4:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->adj_list.lower);
ffff8000113a54a8:	9102e260 	add	x0, x19, #0xb8
ffff8000113a54ac:	f9005e60 	str	x0, [x19,#184]
ffff8000113a54b0:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->ptype_all);
ffff8000113a54b4:	91022260 	add	x0, x19, #0x88
ffff8000113a54b8:	f9004660 	str	x0, [x19,#136]
ffff8000113a54bc:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->ptype_specific);
ffff8000113a54c0:	91026260 	add	x0, x19, #0x98
ffff8000113a54c4:	f9004e60 	str	x0, [x19,#152]
ffff8000113a54c8:	f9000400 	str	x0, [x0,#8]
	INIT_LIST_HEAD(&dev->net_notifier_list);
ffff8000113a54cc:	91230260 	add	x0, x19, #0x8c0
ffff8000113a54d0:	f9046260 	str	x0, [x19,#2240]
ffff8000113a54d4:	f9000400 	str	x0, [x0,#8]
	hash_init(dev->qdisc_hash);
ffff8000113a54d8:	91100261 	add	x1, x19, #0x400
ffff8000113a54dc:	d2800006 	mov	x6, #0x0                   	// #0
static inline void __hash_init(struct hlist_head *ht, unsigned int sz)
{
	unsigned int i;

	for (i = 0; i < sz; i++)
		INIT_HLIST_HEAD(&ht[i]);
ffff8000113a54e0:	f826683f 	str	xzr, [x1,x6]
ffff8000113a54e4:	910020c6 	add	x6, x6, #0x8
	for (i = 0; i < sz; i++)
ffff8000113a54e8:	f10200df 	cmp	x6, #0x80
ffff8000113a54ec:	54ffffa1 	b.ne	ffff8000113a54e0 <alloc_netdev_mqs+0x14c>
	dev->priv_flags = IFF_XMIT_DST_RELEASE | IFF_XMIT_DST_RELEASE_PERM;
ffff8000113a54f0:	52800400 	mov	w0, #0x20                  	// #32
ffff8000113a54f4:	72a00040 	movk	w0, #0x2, lsl #16
ffff8000113a54f8:	b9022e60 	str	w0, [x19,#556]
	setup(dev);
ffff8000113a54fc:	aa1303e0 	mov	x0, x19
ffff8000113a5500:	d63f02a0 	blr	x21
	if (!dev->tx_queue_len) {
ffff8000113a5504:	b943da60 	ldr	w0, [x19,#984]
ffff8000113a5508:	340009e0 	cbz	w0, ffff8000113a5644 <alloc_netdev_mqs+0x2b0>
	if (count < 1 || count > 0xffff)
ffff8000113a550c:	529fffc0 	mov	w0, #0xfffe                	// #65534
ffff8000113a5510:	51000681 	sub	w1, w20, #0x1
	size_t sz = count * sizeof(*tx);
ffff8000113a5514:	52802819 	mov	w25, #0x140                 	// #320
	if (count < 1 || count > 0xffff)
ffff8000113a5518:	6b00003f 	cmp	w1, w0
	dev->num_tx_queues = txqs;
ffff8000113a551c:	b903ca74 	str	w20, [x19,#968]
	dev->real_num_tx_queues = txqs;
ffff8000113a5520:	b903ce74 	str	w20, [x19,#972]
	size_t sz = count * sizeof(*tx);
ffff8000113a5524:	9bb97e80 	umull	x0, w20, w25
	if (count < 1 || count > 0xffff)
ffff8000113a5528:	540007c8 	b.hi	ffff8000113a5620 <alloc_netdev_mqs+0x28c>
ffff8000113a552c:	5289b801 	mov	w1, #0x4dc0                	// #19904
ffff8000113a5530:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a5534:	94000000 	bl	0 <kvmalloc_node>
			ffff8000113a5534: R_AARCH64_CALL26	kvmalloc_node
	if (!tx)
ffff8000113a5538:	b4000740 	cbz	x0, ffff8000113a5620 <alloc_netdev_mqs+0x28c>
	for (i = 0; i < dev->num_tx_queues; i++)
ffff8000113a553c:	b943ca61 	ldr	w1, [x19,#968]
	dev->_tx = tx;
ffff8000113a5540:	f901e260 	str	x0, [x19,#960]
ffff8000113a5544:	aa0003e4 	mov	x4, x0
ffff8000113a5548:	52800014 	mov	w20, #0x0                   	// #0
	queue->xmit_lock_owner = -1;
ffff8000113a554c:	12800015 	mov	w21, #0xffffffff            	// #-1
ffff8000113a5550:	35000061 	cbnz	w1, ffff8000113a555c <alloc_netdev_mqs+0x1c8>
ffff8000113a5554:	1400000f 	b	ffff8000113a5590 <alloc_netdev_mqs+0x1fc>
ffff8000113a5558:	f941e264 	ldr	x4, [x19,#960]
		f(dev, &dev->_tx[i], arg);
ffff8000113a555c:	9bb97e80 	umull	x0, w20, w25
ffff8000113a5560:	8b000083 	add	x3, x4, x0
	spin_lock_init(&queue->_xmit_lock);
ffff8000113a5564:	b900807f 	str	wzr, [x3,#128]
	queue->xmit_lock_owner = -1;
ffff8000113a5568:	b9008475 	str	w21, [x3,#132]
	q->numa_node = node;
ffff8000113a556c:	b9005875 	str	w21, [x3,#88]
	queue->dev = dev;
ffff8000113a5570:	f8206893 	str	x19, [x4,x0]
	dql_init(&queue->dql, HZ);
ffff8000113a5574:	52801f41 	mov	w1, #0xfa                  	// #250
ffff8000113a5578:	91030060 	add	x0, x3, #0xc0
ffff8000113a557c:	94000000 	bl	0 <dql_init>
			ffff8000113a557c: R_AARCH64_CALL26	dql_init
	for (i = 0; i < dev->num_tx_queues; i++)
ffff8000113a5580:	b943ca60 	ldr	w0, [x19,#968]
ffff8000113a5584:	11000694 	add	w20, w20, #0x1
ffff8000113a5588:	6b00029f 	cmp	w20, w0
ffff8000113a558c:	54fffe63 	b.cc	ffff8000113a5558 <alloc_netdev_mqs+0x1c4>
	spin_lock_init(&dev->tx_global_lock);
ffff8000113a5590:	b903de7f 	str	wzr, [x19,#988]
	dev->num_rx_queues = rxqs;
ffff8000113a5594:	b9032a76 	str	w22, [x19,#808]
	dev->real_num_rx_queues = rxqs;
ffff8000113a5598:	b9032e76 	str	w22, [x19,#812]
ffff8000113a559c:	d3787ec0 	ubfiz	x0, x22, #8, #32
ffff8000113a55a0:	5289b801 	mov	w1, #0x4dc0                	// #19904
ffff8000113a55a4:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a55a8:	94000000 	bl	0 <kvmalloc_node>
			ffff8000113a55a8: R_AARCH64_CALL26	kvmalloc_node
ffff8000113a55ac:	aa0003f9 	mov	x25, x0
	if (!rx)
ffff8000113a55b0:	b4000380 	cbz	x0, ffff8000113a5620 <alloc_netdev_mqs+0x28c>
	dev->_rx = rx;
ffff8000113a55b4:	f9019260 	str	x0, [x19,#800]
ffff8000113a55b8:	91020015 	add	x21, x0, #0x80
	for (i = 0; i < count; i++) {
ffff8000113a55bc:	52800014 	mov	w20, #0x0                   	// #0
ffff8000113a55c0:	14000005 	b	ffff8000113a55d4 <alloc_netdev_mqs+0x240>
ffff8000113a55c4:	11000694 	add	w20, w20, #0x1
ffff8000113a55c8:	6b16029f 	cmp	w20, w22
ffff8000113a55cc:	910402b5 	add	x21, x21, #0x100
ffff8000113a55d0:	54000460 	b.eq	ffff8000113a565c <alloc_netdev_mqs+0x2c8>
		err = xdp_rxq_info_reg(&rx[i].xdp_rxq, dev, i);
ffff8000113a55d4:	aa1303e1 	mov	x1, x19
		rx[i].dev = dev;
ffff8000113a55d8:	f81d02b3 	stur	x19, [x21,#-48]
		err = xdp_rxq_info_reg(&rx[i].xdp_rxq, dev, i);
ffff8000113a55dc:	aa1503e0 	mov	x0, x21
ffff8000113a55e0:	2a1403e2 	mov	w2, w20
ffff8000113a55e4:	94000000 	bl	0 <xdp_rxq_info_reg>
			ffff8000113a55e4: R_AARCH64_CALL26	xdp_rxq_info_reg
		if (err < 0)
ffff8000113a55e8:	36fffee0 	tbz	w0, #31, ffff8000113a55c4 <alloc_netdev_mqs+0x230>
	while (i--)
ffff8000113a55ec:	51000695 	sub	w21, w20, #0x1
ffff8000113a55f0:	35000074 	cbnz	w20, ffff8000113a55fc <alloc_netdev_mqs+0x268>
ffff8000113a55f4:	14000008 	b	ffff8000113a5614 <alloc_netdev_mqs+0x280>
ffff8000113a55f8:	2a0003f5 	mov	w21, w0
		xdp_rxq_info_unreg(&rx[i].xdp_rxq);
ffff8000113a55fc:	d3787ea1 	ubfiz	x1, x21, #8, #32
ffff8000113a5600:	8b010320 	add	x0, x25, x1
ffff8000113a5604:	91020000 	add	x0, x0, #0x80
ffff8000113a5608:	94000000 	bl	0 <xdp_rxq_info_unreg>
			ffff8000113a5608: R_AARCH64_CALL26	xdp_rxq_info_unreg
	while (i--)
ffff8000113a560c:	510006a0 	sub	w0, w21, #0x1
ffff8000113a5610:	35ffff55 	cbnz	w21, ffff8000113a55f8 <alloc_netdev_mqs+0x264>
	kvfree(dev->_rx);
ffff8000113a5614:	f9419260 	ldr	x0, [x19,#800]
ffff8000113a5618:	94000000 	bl	0 <kvfree>
			ffff8000113a5618: R_AARCH64_CALL26	kvfree
	dev->_rx = NULL;
ffff8000113a561c:	f901927f 	str	xzr, [x19,#800]
	free_netdev(dev);
ffff8000113a5620:	aa1303e0 	mov	x0, x19
ffff8000113a5624:	94000000 	bl	ffff8000113a5274 <free_netdev>
			ffff8000113a5624: R_AARCH64_CALL26	free_netdev
	return NULL;
ffff8000113a5628:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff8000113a562c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5630:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a5634:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a5638:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a563c:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a5640:	d65f03c0 	ret
		dev->priv_flags |= IFF_NO_QUEUE;
ffff8000113a5644:	b9422e60 	ldr	w0, [x19,#556]
ffff8000113a5648:	320d0000 	orr	w0, w0, #0x80000
ffff8000113a564c:	b9022e60 	str	w0, [x19,#556]
		dev->tx_queue_len = DEFAULT_TX_QUEUE_LEN;
ffff8000113a5650:	52807d00 	mov	w0, #0x3e8                 	// #1000
ffff8000113a5654:	b903da60 	str	w0, [x19,#984]
ffff8000113a5658:	17ffffad 	b	ffff8000113a550c <alloc_netdev_mqs+0x178>
__FORTIFY_INLINE char *strcpy(char *p, const char *q)
{
	size_t p_size = __builtin_object_size(p, 0);
	size_t q_size = __builtin_object_size(q, 0);
	if (p_size == (size_t)-1 && q_size == (size_t)-1)
		return __builtin_strcpy(p, q);
ffff8000113a565c:	aa1303e0 	mov	x0, x19
ffff8000113a5660:	aa1703e1 	mov	x1, x23
ffff8000113a5664:	94000000 	bl	0 <strcpy>
			ffff8000113a5664: R_AARCH64_CALL26	strcpy
	if (!dev->ethtool_ops)
ffff8000113a5668:	f940fe60 	ldr	x0, [x19,#504]
	dev->name_assign_type = name_assign_type;
ffff8000113a566c:	3909f278 	strb	w24, [x19,#636]
	dev->group = INIT_NETDEV_GROUP;
ffff8000113a5670:	b901067f 	str	wzr, [x19,#260]
	if (!dev->ethtool_ops)
ffff8000113a5674:	b4000120 	cbz	x0, ffff8000113a5698 <alloc_netdev_mqs+0x304>
ffff8000113a5678:	f901b27f 	str	xzr, [x19,#864]
	return dev;
ffff8000113a567c:	aa1303e0 	mov	x0, x19
}
ffff8000113a5680:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a5684:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5688:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a568c:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a5690:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a5694:	d65f03c0 	ret
		dev->ethtool_ops = &default_ethtool_ops;
ffff8000113a5698:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5698: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a569c:	91000000 	add	x0, x0, #0x0
			ffff8000113a569c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a56a0:	f900fe60 	str	x0, [x19,#504]
ffff8000113a56a4:	17fffff5 	b	ffff8000113a5678 <alloc_netdev_mqs+0x2e4>
	free_percpu(dev->pcpu_refcnt);
ffff8000113a56a8:	f9426260 	ldr	x0, [x19,#1216]
ffff8000113a56ac:	94000000 	bl	0 <free_percpu>
			ffff8000113a56ac: R_AARCH64_CALL26	free_percpu
	char *addr = (char *)dev - dev->padded;
ffff8000113a56b0:	79446660 	ldrh	w0, [x19,#562]
	kvfree(addr);
ffff8000113a56b4:	cb000260 	sub	x0, x19, x0
ffff8000113a56b8:	94000000 	bl	0 <kvfree>
			ffff8000113a56b8: R_AARCH64_CALL26	kvfree
	return NULL;
ffff8000113a56bc:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff8000113a56c0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a56c4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a56c8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a56cc:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a56d0:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a56d4:	d65f03c0 	ret
		pr_err("alloc_netdev: Unable to allocate device with zero queues\n");
ffff8000113a56d8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a56d8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x430
ffff8000113a56dc:	91000000 	add	x0, x0, #0x0
			ffff8000113a56dc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x430
ffff8000113a56e0:	94000000 	bl	0 <printk>
			ffff8000113a56e0: R_AARCH64_CALL26	printk
		return NULL;
ffff8000113a56e4:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a56e8:	17ffffd1 	b	ffff8000113a562c <alloc_netdev_mqs+0x298>
	BUG_ON(strlen(name) >= sizeof(dev->name));
ffff8000113a56ec:	d4210000 	brk	#0x800
		pr_err("alloc_netdev: Unable to allocate device with zero RX queues\n");
ffff8000113a56f0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a56f0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x470
ffff8000113a56f4:	91000000 	add	x0, x0, #0x0
			ffff8000113a56f4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x470
ffff8000113a56f8:	94000000 	bl	0 <printk>
			ffff8000113a56f8: R_AARCH64_CALL26	printk
		return NULL;
ffff8000113a56fc:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a5700:	17ffffcb 	b	ffff8000113a562c <alloc_netdev_mqs+0x298>

ffff8000113a5704 <__napi_schedule_irqoff>:
{
ffff8000113a5704:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5708:	910003fd 	mov	x29, sp
ffff8000113a570c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5710:	f90013f5 	str	x21, [sp,#32]
	____napi_schedule(this_cpu_ptr(&softnet_data), n);
ffff8000113a5714:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5714: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
{
ffff8000113a5718:	aa0003f3 	mov	x19, x0
ffff8000113a571c:	aa1e03e0 	mov	x0, x30
ffff8000113a5720:	94000000 	bl	0 <_mcount>
			ffff8000113a5720: R_AARCH64_CALL26	_mcount
	____napi_schedule(this_cpu_ptr(&softnet_data), n);
ffff8000113a5724:	91000294 	add	x20, x20, #0x0
			ffff8000113a5724: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a5728:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a572c:	8b140014 	add	x20, x0, x20
	__list_add(new, head->prev, head);
ffff8000113a5730:	f9400695 	ldr	x21, [x20,#8]
	if (!__list_add_valid(new, prev, next))
ffff8000113a5734:	aa1303e0 	mov	x0, x19
ffff8000113a5738:	aa1503e1 	mov	x1, x21
ffff8000113a573c:	aa1403e2 	mov	x2, x20
ffff8000113a5740:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a5740: R_AARCH64_CALL26	__list_add_valid
ffff8000113a5744:	53001c00 	uxtb	w0, w0
ffff8000113a5748:	340000a0 	cbz	w0, ffff8000113a575c <__napi_schedule_irqoff+0x58>
	next->prev = new;
ffff8000113a574c:	f9000693 	str	x19, [x20,#8]
	new->next = next;
ffff8000113a5750:	f9000274 	str	x20, [x19]
	new->prev = prev;
ffff8000113a5754:	f9000675 	str	x21, [x19,#8]
ffff8000113a5758:	f90002b3 	str	x19, [x21]
	__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a575c:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113a5760:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a5760: R_AARCH64_CALL26	__raise_softirq_irqoff
}
ffff8000113a5764:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5768:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a576c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5770:	d65f03c0 	ret

ffff8000113a5774 <napi_watchdog>:
{
ffff8000113a5774:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5778:	910003fd 	mov	x29, sp
ffff8000113a577c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5780:	aa0003f3 	mov	x19, x0
ffff8000113a5784:	aa1e03e0 	mov	x0, x30
ffff8000113a5788:	94000000 	bl	0 <_mcount>
			ffff8000113a5788: R_AARCH64_CALL26	_mcount
ffff8000113a578c:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a578c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a5790:	f9400280 	ldr	x0, [x20]
			ffff8000113a5790: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (napi->gro_bitmask && !napi_disable_pending(napi) &&
ffff8000113a5794:	f8500261 	ldur	x1, [x19,#-256]
{
ffff8000113a5798:	f90017a0 	str	x0, [x29,#40]
	if (napi->gro_bitmask && !napi_disable_pending(napi) &&
ffff8000113a579c:	d1048260 	sub	x0, x19, #0x120
ffff8000113a57a0:	b4000081 	cbz	x1, ffff8000113a57b0 <napi_watchdog+0x3c>
ffff8000113a57a4:	d1044273 	sub	x19, x19, #0x110
ffff8000113a57a8:	f9400261 	ldr	x1, [x19]
ffff8000113a57ac:	36100121 	tbz	w1, #2, ffff8000113a57d0 <napi_watchdog+0x5c>
}
ffff8000113a57b0:	f94017a2 	ldr	x2, [x29,#40]
ffff8000113a57b4:	f9400281 	ldr	x1, [x20]
			ffff8000113a57b4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a57b8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a57bc:	eb01005f 	cmp	x2, x1
ffff8000113a57c0:	54000201 	b.ne	ffff8000113a5800 <napi_watchdog+0x8c>
ffff8000113a57c4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a57c8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a57cc:	d65f03c0 	ret
	__READ_ONCE_SIZE;
ffff8000113a57d0:	f9400261 	ldr	x1, [x19]
	if (READ_ONCE(*p) & mask)
ffff8000113a57d4:	3707fee1 	tbnz	w1, #0, ffff8000113a57b0 <napi_watchdog+0x3c>
ATOMIC64_OPS(or, orr, L)
ffff8000113a57d8:	91004005 	add	x5, x0, #0x10
ffff8000113a57dc:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a57e0:	c85f7ca1 	ldxr	x1, [x5]
ffff8000113a57e4:	b2400022 	orr	x2, x1, #0x1
ffff8000113a57e8:	c803fca2 	stlxr	w3, x2, [x5]
ffff8000113a57ec:	35ffffa3 	cbnz	w3, ffff8000113a57e0 <napi_watchdog+0x6c>
ffff8000113a57f0:	d5033bbf 	dmb	ish
	if (napi->gro_bitmask && !napi_disable_pending(napi) &&
ffff8000113a57f4:	3707fde1 	tbnz	w1, #0, ffff8000113a57b0 <napi_watchdog+0x3c>
		__napi_schedule_irqoff(napi);
ffff8000113a57f8:	94000000 	bl	ffff8000113a5704 <__napi_schedule_irqoff>
			ffff8000113a57f8: R_AARCH64_CALL26	__napi_schedule_irqoff
ffff8000113a57fc:	17ffffed 	b	ffff8000113a57b0 <napi_watchdog+0x3c>
}
ffff8000113a5800:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a5800: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a5804 <dev_get_by_name>:
{
ffff8000113a5804:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5808:	910003fd 	mov	x29, sp
ffff8000113a580c:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a5810:	aa0003f3 	mov	x19, x0
ffff8000113a5814:	aa1e03e0 	mov	x0, x30
ffff8000113a5818:	f90017a1 	str	x1, [x29,#40]
ffff8000113a581c:	94000000 	bl	0 <_mcount>
			ffff8000113a581c: R_AARCH64_CALL26	_mcount
	node_name = netdev_name_node_lookup_rcu(net, name);
ffff8000113a5820:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a5824:	aa1303e0 	mov	x0, x19
ffff8000113a5828:	97fff8c2 	bl	ffff8000113a3b30 <netdev_name_node_lookup_rcu>
	return node_name ? node_name->dev : NULL;
ffff8000113a582c:	b4000160 	cbz	x0, ffff8000113a5858 <dev_get_by_name+0x54>
ffff8000113a5830:	f9401000 	ldr	x0, [x0,#32]
	if (dev)
ffff8000113a5834:	b4000120 	cbz	x0, ffff8000113a5858 <dev_get_by_name+0x54>

PERCPU_RW_OPS(8)
PERCPU_RW_OPS(16)
PERCPU_RW_OPS(32)
PERCPU_RW_OPS(64)
PERCPU_OP(add, add, stadd)
ffff8000113a5838:	52800023 	mov	w3, #0x1                   	// #1
	this_cpu_inc(*dev->pcpu_refcnt);
ffff8000113a583c:	f9426001 	ldr	x1, [x0,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a5840:	d538d082 	mrs	x2, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a5844:	8b010046 	add	x6, x2, x1
ffff8000113a5848:	885f7cc5 	ldxr	w5, [x6]
ffff8000113a584c:	0b0300a5 	add	w5, w5, w3
ffff8000113a5850:	88047cc5 	stxr	w4, w5, [x6]
ffff8000113a5854:	35ffffa4 	cbnz	w4, ffff8000113a5848 <dev_get_by_name+0x44>
}
ffff8000113a5858:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a585c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5860:	d65f03c0 	ret

ffff8000113a5864 <__napi_schedule>:
{
ffff8000113a5864:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5868:	910003fd 	mov	x29, sp
ffff8000113a586c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5870:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a5874:	aa0003f3 	mov	x19, x0
ffff8000113a5878:	aa1e03e0 	mov	x0, x30
ffff8000113a587c:	94000000 	bl	0 <_mcount>
			ffff8000113a587c: R_AARCH64_CALL26	_mcount
 */
static inline unsigned long arch_local_save_flags(void)
{
	unsigned long flags;

	asm volatile(ALTERNATIVE(
ffff8000113a5880:	d53b4236 	mrs	x22, daif

static inline int arch_irqs_disabled_flags(unsigned long flags)
{
	int res;

	asm volatile(ALTERNATIVE(
ffff8000113a5884:	121902c0 	and	w0, w22, #0x80

	/*
	 * There are too many states with IRQs disabled, just keep the current
	 * state if interrupts are already disabled/masked.
	 */
	if (!arch_irqs_disabled_flags(flags))
ffff8000113a5888:	35000060 	cbnz	w0, ffff8000113a5894 <__napi_schedule+0x30>
	asm volatile(ALTERNATIVE(
ffff8000113a588c:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a5890:	d50342df 	msr	daifset, #0x2
	____napi_schedule(this_cpu_ptr(&softnet_data), n);
ffff8000113a5894:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5894: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a5898:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a589c:	91000294 	add	x20, x20, #0x0
			ffff8000113a589c: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a58a0:	8b140014 	add	x20, x0, x20
	__list_add(new, head->prev, head);
ffff8000113a58a4:	f9400695 	ldr	x21, [x20,#8]
	if (!__list_add_valid(new, prev, next))
ffff8000113a58a8:	aa1303e0 	mov	x0, x19
ffff8000113a58ac:	aa1503e1 	mov	x1, x21
ffff8000113a58b0:	aa1403e2 	mov	x2, x20
ffff8000113a58b4:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a58b4: R_AARCH64_CALL26	__list_add_valid
ffff8000113a58b8:	53001c00 	uxtb	w0, w0
ffff8000113a58bc:	340000a0 	cbz	w0, ffff8000113a58d0 <__napi_schedule+0x6c>
	next->prev = new;
ffff8000113a58c0:	f9000693 	str	x19, [x20,#8]
	new->next = next;
ffff8000113a58c4:	f9000274 	str	x20, [x19]
	new->prev = prev;
ffff8000113a58c8:	f9000675 	str	x21, [x19,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a58cc:	f90002b3 	str	x19, [x21]
	__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a58d0:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113a58d4:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a58d4: R_AARCH64_CALL26	__raise_softirq_irqoff
/*
 * restore saved IRQ state
 */
static inline void arch_local_irq_restore(unsigned long flags)
{
	asm volatile(ALTERNATIVE(
ffff8000113a58d8:	d51b4236 	msr	daif, x22
}
ffff8000113a58dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a58e0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a58e4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a58e8:	d65f03c0 	ret

ffff8000113a58ec <__dev_kfree_skb_irq>:
{
ffff8000113a58ec:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a58f0:	910003fd 	mov	x29, sp
ffff8000113a58f4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a58f8:	aa0003f3 	mov	x19, x0
ffff8000113a58fc:	aa1e03e0 	mov	x0, x30
ffff8000113a5900:	f90017a1 	str	x1, [x29,#40]
ffff8000113a5904:	94000000 	bl	0 <_mcount>
			ffff8000113a5904: R_AARCH64_CALL26	_mcount
	if (unlikely(!skb))
ffff8000113a5908:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a590c:	b40002d3 	cbz	x19, ffff8000113a5964 <__dev_kfree_skb_irq+0x78>
	__READ_ONCE_SIZE;
ffff8000113a5910:	b940d660 	ldr	w0, [x19,#212]
	if (likely(refcount_read(&skb->users) == 1)) {
ffff8000113a5914:	7100041f 	cmp	w0, #0x1
ffff8000113a5918:	540002c1 	b.ne	ffff8000113a5970 <__dev_kfree_skb_irq+0x84>
		smp_rmb();
ffff8000113a591c:	d50339bf 	dmb	ishld
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a5920:	b900d67f 	str	wzr, [x19,#212]
	get_kfree_skb_cb(skb)->reason = reason;
ffff8000113a5924:	b9002a61 	str	w1, [x19,#40]
	asm volatile(ALTERNATIVE(
ffff8000113a5928:	d53b4234 	mrs	x20, daif
	asm volatile(ALTERNATIVE(
ffff8000113a592c:	12190280 	and	w0, w20, #0x80
	if (!arch_irqs_disabled_flags(flags))
ffff8000113a5930:	35000060 	cbnz	w0, ffff8000113a593c <__dev_kfree_skb_irq+0x50>
	asm volatile(ALTERNATIVE(
ffff8000113a5934:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a5938:	d50342df 	msr	daifset, #0x2
	skb->next = __this_cpu_read(softnet_data.completion_queue);
ffff8000113a593c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a593c: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a5940:	91000021 	add	x1, x1, #0x0
			ffff8000113a5940: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a5944:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a5948:	91016021 	add	x1, x1, #0x58
ffff8000113a594c:	f8616843 	ldr	x3, [x2,x1]
	raise_softirq_irqoff(NET_TX_SOFTIRQ);
ffff8000113a5950:	52800040 	mov	w0, #0x2                   	// #2
	skb->next = __this_cpu_read(softnet_data.completion_queue);
ffff8000113a5954:	f9000263 	str	x3, [x19]
	__this_cpu_write(softnet_data.completion_queue, skb);
ffff8000113a5958:	f8216853 	str	x19, [x2,x1]
	raise_softirq_irqoff(NET_TX_SOFTIRQ);
ffff8000113a595c:	94000000 	bl	0 <raise_softirq_irqoff>
			ffff8000113a595c: R_AARCH64_CALL26	raise_softirq_irqoff
	asm volatile(ALTERNATIVE(
ffff8000113a5960:	d51b4234 	msr	daif, x20
}
ffff8000113a5964:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5968:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a596c:	d65f03c0 	ret
	} else if (likely(!refcount_dec_and_test(&skb->users))) {
ffff8000113a5970:	91035260 	add	x0, x19, #0xd4
ATOMIC_OPS(sub, sub, J)
ffff8000113a5974:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a5978:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a597c:	885f7c03 	ldxr	w3, [x0]
ffff8000113a5980:	4b020064 	sub	w4, w3, w2
ffff8000113a5984:	8805fc04 	stlxr	w5, w4, [x0]
ffff8000113a5988:	35ffffa5 	cbnz	w5, ffff8000113a597c <__dev_kfree_skb_irq+0x90>
 */
static inline __must_check bool refcount_sub_and_test(int i, refcount_t *r)
{
	int old = atomic_fetch_sub_release(i, &r->refs);

	if (old == i) {
ffff8000113a598c:	6b02007f 	cmp	w3, w2
ffff8000113a5990:	540000c0 	b.eq	ffff8000113a59a8 <__dev_kfree_skb_irq+0xbc>
		smp_acquire__after_ctrl_dep();
		return true;
	}

	if (unlikely(old < 0 || old - i < 0))
ffff8000113a5994:	6b1f007f 	cmp	w3, wzr
ffff8000113a5998:	54fffe6c 	b.gt	ffff8000113a5964 <__dev_kfree_skb_irq+0x78>
		refcount_warn_saturate(r, REFCOUNT_SUB_UAF);
ffff8000113a599c:	52800061 	mov	w1, #0x3                   	// #3
ffff8000113a59a0:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113a59a0: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113a59a4:	17fffff0 	b	ffff8000113a5964 <__dev_kfree_skb_irq+0x78>
		smp_acquire__after_ctrl_dep();
ffff8000113a59a8:	d50339bf 	dmb	ishld
ffff8000113a59ac:	17ffffde 	b	ffff8000113a5924 <__dev_kfree_skb_irq+0x38>

ffff8000113a59b0 <__dev_kfree_skb_any>:
{
ffff8000113a59b0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a59b4:	910003fd 	mov	x29, sp
ffff8000113a59b8:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a59bc:	aa0003f3 	mov	x19, x0
ffff8000113a59c0:	aa1e03e0 	mov	x0, x30
ffff8000113a59c4:	f90017a1 	str	x1, [x29,#40]
ffff8000113a59c8:	94000000 	bl	0 <_mcount>
			ffff8000113a59c8: R_AARCH64_CALL26	_mcount
ffff8000113a59cc:	d5384102 	mrs	x2, sp_el0
	__READ_ONCE_SIZE;
ffff8000113a59d0:	b9401842 	ldr	w2, [x2,#24]
	if (in_irq() || irqs_disabled())
ffff8000113a59d4:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a59d8:	72100c5f 	tst	w2, #0xf0000
ffff8000113a59dc:	54000081 	b.ne	ffff8000113a59ec <__dev_kfree_skb_any+0x3c>
	asm volatile(ALTERNATIVE(
ffff8000113a59e0:	d53b4222 	mrs	x2, daif
	asm volatile(ALTERNATIVE(
ffff8000113a59e4:	12190040 	and	w0, w2, #0x80
ffff8000113a59e8:	340000c0 	cbz	w0, ffff8000113a5a00 <__dev_kfree_skb_any+0x50>
		__dev_kfree_skb_irq(skb, reason);
ffff8000113a59ec:	aa1303e0 	mov	x0, x19
ffff8000113a59f0:	94000000 	bl	ffff8000113a58ec <__dev_kfree_skb_irq>
			ffff8000113a59f0: R_AARCH64_CALL26	__dev_kfree_skb_irq
}
ffff8000113a59f4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a59f8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a59fc:	d65f03c0 	ret
		dev_kfree_skb(skb);
ffff8000113a5a00:	aa1303e0 	mov	x0, x19
ffff8000113a5a04:	94000000 	bl	0 <consume_skb>
			ffff8000113a5a04: R_AARCH64_CALL26	consume_skb
}
ffff8000113a5a08:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a5a0c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5a10:	d65f03c0 	ret

ffff8000113a5a14 <__netif_schedule>:
{
ffff8000113a5a14:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a5a18:	910003fd 	mov	x29, sp
ffff8000113a5a1c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5a20:	f90013f5 	str	x21, [sp,#32]
ffff8000113a5a24:	aa0003f3 	mov	x19, x0
ffff8000113a5a28:	aa1e03e0 	mov	x0, x30
ffff8000113a5a2c:	94000000 	bl	0 <_mcount>
			ffff8000113a5a2c: R_AARCH64_CALL26	_mcount
ffff8000113a5a30:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a5a30: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a5a34:	f9400280 	ldr	x0, [x20]
			ffff8000113a5a34: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5a38:	f9001fa0 	str	x0, [x29,#56]
ffff8000113a5a3c:	f9406e60 	ldr	x0, [x19,#216]
ffff8000113a5a40:	37000340 	tbnz	w0, #0, ffff8000113a5aa8 <__netif_schedule+0x94>
ATOMIC64_OPS(or, orr, L)
ffff8000113a5a44:	91036263 	add	x3, x19, #0xd8
ffff8000113a5a48:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a5a4c:	c85f7c60 	ldxr	x0, [x3]
ffff8000113a5a50:	b2400001 	orr	x1, x0, #0x1
ffff8000113a5a54:	c802fc61 	stlxr	w2, x1, [x3]
ffff8000113a5a58:	35ffffa2 	cbnz	w2, ffff8000113a5a4c <__netif_schedule+0x38>
ffff8000113a5a5c:	d5033bbf 	dmb	ish
	if (!test_and_set_bit(__QDISC_STATE_SCHED, &q->state))
ffff8000113a5a60:	37000240 	tbnz	w0, #0, ffff8000113a5aa8 <__netif_schedule+0x94>
	asm volatile(ALTERNATIVE(
ffff8000113a5a64:	d53b4235 	mrs	x21, daif
	asm volatile(ALTERNATIVE(
ffff8000113a5a68:	121902a0 	and	w0, w21, #0x80
	if (!arch_irqs_disabled_flags(flags))
ffff8000113a5a6c:	35000060 	cbnz	w0, ffff8000113a5a78 <__netif_schedule+0x64>
	asm volatile(ALTERNATIVE(
ffff8000113a5a70:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a5a74:	d50342df 	msr	daifset, #0x2
	sd = this_cpu_ptr(&softnet_data);
ffff8000113a5a78:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5a78: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a5a7c:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a5a80:	91000000 	add	x0, x0, #0x0
			ffff8000113a5a80: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
	q->next_sched = NULL;
ffff8000113a5a84:	f900727f 	str	xzr, [x19,#224]
	sd = this_cpu_ptr(&softnet_data);
ffff8000113a5a88:	8b000020 	add	x0, x1, x0
	*sd->output_queue_tailp = q;
ffff8000113a5a8c:	f9402802 	ldr	x2, [x0,#80]
	sd->output_queue_tailp = &q->next_sched;
ffff8000113a5a90:	91038261 	add	x1, x19, #0xe0
	*sd->output_queue_tailp = q;
ffff8000113a5a94:	f9000053 	str	x19, [x2]
	sd->output_queue_tailp = &q->next_sched;
ffff8000113a5a98:	f9002801 	str	x1, [x0,#80]
	raise_softirq_irqoff(NET_TX_SOFTIRQ);
ffff8000113a5a9c:	52800040 	mov	w0, #0x2                   	// #2
ffff8000113a5aa0:	94000000 	bl	0 <raise_softirq_irqoff>
			ffff8000113a5aa0: R_AARCH64_CALL26	raise_softirq_irqoff
	asm volatile(ALTERNATIVE(
ffff8000113a5aa4:	d51b4235 	msr	daif, x21
}
ffff8000113a5aa8:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a5aac:	f9400280 	ldr	x0, [x20]
			ffff8000113a5aac: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5ab0:	eb00003f 	cmp	x1, x0
ffff8000113a5ab4:	540000a1 	b.ne	ffff8000113a5ac8 <__netif_schedule+0xb4>
ffff8000113a5ab8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5abc:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a5ac0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a5ac4:	d65f03c0 	ret
ffff8000113a5ac8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a5ac8: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a5acc <netif_schedule_queue>:
{
ffff8000113a5acc:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a5ad0:	910003fd 	mov	x29, sp
ffff8000113a5ad4:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a5ad8:	aa0003f3 	mov	x19, x0
ffff8000113a5adc:	aa1e03e0 	mov	x0, x30
ffff8000113a5ae0:	94000000 	bl	0 <_mcount>
			ffff8000113a5ae0: R_AARCH64_CALL26	_mcount
	return dev_queue->state & QUEUE_STATE_ANY_XOFF;
ffff8000113a5ae4:	f9404a60 	ldr	x0, [x19,#144]
ffff8000113a5ae8:	92400400 	and	x0, x0, #0x3
	if (!netif_xmit_stopped(txq)) {
ffff8000113a5aec:	b5000060 	cbnz	x0, ffff8000113a5af8 <netif_schedule_queue+0x2c>
ffff8000113a5af0:	f9400660 	ldr	x0, [x19,#8]
		__netif_schedule(q);
ffff8000113a5af4:	94000000 	bl	ffff8000113a5a14 <__netif_schedule>
			ffff8000113a5af4: R_AARCH64_CALL26	__netif_schedule
}
ffff8000113a5af8:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a5afc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a5b00:	d65f03c0 	ret

ffff8000113a5b04 <netif_tx_wake_queue>:
{
ffff8000113a5b04:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5b08:	910003fd 	mov	x29, sp
ffff8000113a5b0c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5b10:	aa0003f3 	mov	x19, x0
ffff8000113a5b14:	aa1e03e0 	mov	x0, x30
ffff8000113a5b18:	94000000 	bl	0 <_mcount>
			ffff8000113a5b18: R_AARCH64_CALL26	_mcount
ffff8000113a5b1c:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a5b1c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a5b20:	f9400280 	ldr	x0, [x20]
			ffff8000113a5b20: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5b24:	f90017a0 	str	x0, [x29,#40]
ffff8000113a5b28:	f9404a60 	ldr	x0, [x19,#144]
	if (!(READ_ONCE(*p) & mask))
ffff8000113a5b2c:	36000180 	tbz	w0, #0, ffff8000113a5b5c <netif_tx_wake_queue+0x58>
ATOMIC64_OPS(andnot, bic, )
ffff8000113a5b30:	d2800020 	mov	x0, #0x1                   	// #1
ffff8000113a5b34:	91024264 	add	x4, x19, #0x90
ffff8000113a5b38:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a5b3c:	c85f7c81 	ldxr	x1, [x4]
ffff8000113a5b40:	8a200022 	bic	x2, x1, x0
ffff8000113a5b44:	c803fc82 	stlxr	w3, x2, [x4]
ffff8000113a5b48:	35ffffa3 	cbnz	w3, ffff8000113a5b3c <netif_tx_wake_queue+0x38>
ffff8000113a5b4c:	d5033bbf 	dmb	ish
	if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state)) {
ffff8000113a5b50:	36000061 	tbz	w1, #0, ffff8000113a5b5c <netif_tx_wake_queue+0x58>
ffff8000113a5b54:	f9400660 	ldr	x0, [x19,#8]
		__netif_schedule(q);
ffff8000113a5b58:	94000000 	bl	ffff8000113a5a14 <__netif_schedule>
			ffff8000113a5b58: R_AARCH64_CALL26	__netif_schedule
}
ffff8000113a5b5c:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a5b60:	f9400280 	ldr	x0, [x20]
			ffff8000113a5b60: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5b64:	eb00003f 	cmp	x1, x0
ffff8000113a5b68:	54000081 	b.ne	ffff8000113a5b78 <netif_tx_wake_queue+0x74>
ffff8000113a5b6c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5b70:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5b74:	d65f03c0 	ret
ffff8000113a5b78:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a5b78: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a5b7c <netif_device_attach>:
{
ffff8000113a5b7c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a5b80:	910003fd 	mov	x29, sp
ffff8000113a5b84:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5b88:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a5b8c:	aa0003f3 	mov	x19, x0
ffff8000113a5b90:	aa1e03e0 	mov	x0, x30
ffff8000113a5b94:	94000000 	bl	0 <_mcount>
			ffff8000113a5b94: R_AARCH64_CALL26	_mcount
ffff8000113a5b98:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a5b98: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a5b9c:	f94002a0 	ldr	x0, [x21]
			ffff8000113a5b9c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5ba0:	f9001fa0 	str	x0, [x29,#56]
ffff8000113a5ba4:	f9402260 	ldr	x0, [x19,#64]
	if (READ_ONCE(*p) & mask)
ffff8000113a5ba8:	37080180 	tbnz	w0, #1, ffff8000113a5bd8 <netif_device_attach+0x5c>
ATOMIC64_OPS(or, orr, L)
ffff8000113a5bac:	91010262 	add	x2, x19, #0x40
ffff8000113a5bb0:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a5bb4:	c85f7c54 	ldxr	x20, [x2]
ffff8000113a5bb8:	b27f0280 	orr	x0, x20, #0x2
ffff8000113a5bbc:	c801fc40 	stlxr	w1, x0, [x2]
ffff8000113a5bc0:	35ffffa1 	cbnz	w1, ffff8000113a5bb4 <netif_device_attach+0x38>
ffff8000113a5bc4:	d5033bbf 	dmb	ish
	return !!(old & mask);
ffff8000113a5bc8:	927f0294 	and	x20, x20, #0x2
	if (!test_and_set_bit(__LINK_STATE_PRESENT, &dev->state) &&
ffff8000113a5bcc:	b5000074 	cbnz	x20, ffff8000113a5bd8 <netif_device_attach+0x5c>
ffff8000113a5bd0:	f9402260 	ldr	x0, [x19,#64]
ffff8000113a5bd4:	37000120 	tbnz	w0, #0, ffff8000113a5bf8 <netif_device_attach+0x7c>
}
ffff8000113a5bd8:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a5bdc:	f94002a0 	ldr	x0, [x21]
			ffff8000113a5bdc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a5be0:	eb00003f 	cmp	x1, x0
ffff8000113a5be4:	54000261 	b.ne	ffff8000113a5c30 <netif_device_attach+0xb4>
ffff8000113a5be8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5bec:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a5bf0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a5bf4:	d65f03c0 	ret
	for (i = 0; i < dev->num_tx_queues; i++) {
ffff8000113a5bf8:	b943ca60 	ldr	w0, [x19,#968]
	return &dev->_tx[index];
ffff8000113a5bfc:	52802816 	mov	w22, #0x140                 	// #320
	for (i = 0; i < dev->num_tx_queues; i++) {
ffff8000113a5c00:	34000120 	cbz	w0, ffff8000113a5c24 <netif_device_attach+0xa8>
	return &dev->_tx[index];
ffff8000113a5c04:	f941e261 	ldr	x1, [x19,#960]
ffff8000113a5c08:	9bb67e80 	umull	x0, w20, w22
		netif_tx_wake_queue(txq);
ffff8000113a5c0c:	8b000020 	add	x0, x1, x0
ffff8000113a5c10:	94000000 	bl	ffff8000113a5b04 <netif_tx_wake_queue>
			ffff8000113a5c10: R_AARCH64_CALL26	netif_tx_wake_queue
	for (i = 0; i < dev->num_tx_queues; i++) {
ffff8000113a5c14:	b943ca60 	ldr	w0, [x19,#968]
ffff8000113a5c18:	11000694 	add	w20, w20, #0x1
ffff8000113a5c1c:	6b00029f 	cmp	w20, w0
ffff8000113a5c20:	54ffff23 	b.cc	ffff8000113a5c04 <netif_device_attach+0x88>
		__netdev_watchdog_up(dev);
ffff8000113a5c24:	aa1303e0 	mov	x0, x19
ffff8000113a5c28:	94000000 	bl	0 <__netdev_watchdog_up>
			ffff8000113a5c28: R_AARCH64_CALL26	__netdev_watchdog_up
ffff8000113a5c2c:	17ffffeb 	b	ffff8000113a5bd8 <netif_device_attach+0x5c>
}
ffff8000113a5c30:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a5c30: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a5c34 <dev_getfirstbyhwtype>:
{
ffff8000113a5c34:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a5c38:	910003fd 	mov	x29, sp
ffff8000113a5c3c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5c40:	aa0003f4 	mov	x20, x0
ffff8000113a5c44:	aa1e03e0 	mov	x0, x30
ffff8000113a5c48:	53003c33 	uxth	w19, w1
ffff8000113a5c4c:	94000000 	bl	0 <_mcount>
			ffff8000113a5c4c: R_AARCH64_CALL26	_mcount
ffff8000113a5c50:	aa1403e3 	mov	x3, x20
ffff8000113a5c54:	f8490c60 	ldr	x0, [x3,#144]!
	for_each_netdev_rcu(net, dev)
ffff8000113a5c58:	eb00007f 	cmp	x3, x0
ffff8000113a5c5c:	d1012000 	sub	x0, x0, #0x48
ffff8000113a5c60:	54000180 	b.eq	ffff8000113a5c90 <dev_getfirstbyhwtype+0x5c>
		if (dev->type == type) {
ffff8000113a5c64:	79448801 	ldrh	w1, [x0,#580]
ffff8000113a5c68:	6b13003f 	cmp	w1, w19
ffff8000113a5c6c:	540000a1 	b.ne	ffff8000113a5c80 <dev_getfirstbyhwtype+0x4c>
ffff8000113a5c70:	1400000c 	b	ffff8000113a5ca0 <dev_getfirstbyhwtype+0x6c>
ffff8000113a5c74:	79448802 	ldrh	w2, [x0,#580]
ffff8000113a5c78:	6b13005f 	cmp	w2, w19
ffff8000113a5c7c:	54000120 	b.eq	ffff8000113a5ca0 <dev_getfirstbyhwtype+0x6c>
ffff8000113a5c80:	f9402400 	ldr	x0, [x0,#72]
	for_each_netdev_rcu(net, dev)
ffff8000113a5c84:	eb00007f 	cmp	x3, x0
ffff8000113a5c88:	d1012000 	sub	x0, x0, #0x48
ffff8000113a5c8c:	54ffff41 	b.ne	ffff8000113a5c74 <dev_getfirstbyhwtype+0x40>
	struct net_device *dev, *ret = NULL;
ffff8000113a5c90:	d2800000 	mov	x0, #0x0                   	// #0
}
ffff8000113a5c94:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5c98:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a5c9c:	d65f03c0 	ret
PERCPU_OP(add, add, stadd)
ffff8000113a5ca0:	52800023 	mov	w3, #0x1                   	// #1
	this_cpu_inc(*dev->pcpu_refcnt);
ffff8000113a5ca4:	f9426001 	ldr	x1, [x0,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a5ca8:	d538d082 	mrs	x2, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a5cac:	8b010046 	add	x6, x2, x1
ffff8000113a5cb0:	885f7cc5 	ldxr	w5, [x6]
ffff8000113a5cb4:	0b0300a5 	add	w5, w5, w3
ffff8000113a5cb8:	88047cc5 	stxr	w4, w5, [x6]
ffff8000113a5cbc:	35ffffa4 	cbnz	w4, ffff8000113a5cb0 <dev_getfirstbyhwtype+0x7c>
ffff8000113a5cc0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5cc4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a5cc8:	d65f03c0 	ret

ffff8000113a5ccc <dev_get_by_index>:
{
ffff8000113a5ccc:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a5cd0:	910003fd 	mov	x29, sp
ffff8000113a5cd4:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a5cd8:	aa0003f3 	mov	x19, x0
ffff8000113a5cdc:	aa1e03e0 	mov	x0, x30
ffff8000113a5ce0:	f90017a1 	str	x1, [x29,#40]
ffff8000113a5ce4:	94000000 	bl	0 <_mcount>
			ffff8000113a5ce4: R_AARCH64_CALL26	_mcount
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff8000113a5ce8:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a5cec:	f9409a62 	ldr	x2, [x19,#304]
ffff8000113a5cf0:	d37d1c20 	ubfiz	x0, x1, #3, #8
ffff8000113a5cf4:	f8606840 	ldr	x0, [x2,x0]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff8000113a5cf8:	b4000040 	cbz	x0, ffff8000113a5d00 <dev_get_by_index+0x34>
ffff8000113a5cfc:	d10e4000 	sub	x0, x0, #0x390
ffff8000113a5d00:	b40000c0 	cbz	x0, ffff8000113a5d18 <dev_get_by_index+0x4c>
		if (dev->ifindex == ifindex)
ffff8000113a5d04:	b9410002 	ldr	w2, [x0,#256]
ffff8000113a5d08:	6b02003f 	cmp	w1, w2
ffff8000113a5d0c:	540000c0 	b.eq	ffff8000113a5d24 <dev_get_by_index+0x58>
ffff8000113a5d10:	f941c800 	ldr	x0, [x0,#912]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff8000113a5d14:	b5ffff40 	cbnz	x0, ffff8000113a5cfc <dev_get_by_index+0x30>
}
ffff8000113a5d18:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a5d1c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5d20:	d65f03c0 	ret
ffff8000113a5d24:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a5d28:	f9426001 	ldr	x1, [x0,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a5d2c:	d538d082 	mrs	x2, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a5d30:	8b010046 	add	x6, x2, x1
ffff8000113a5d34:	885f7cc5 	ldxr	w5, [x6]
ffff8000113a5d38:	0b0300a5 	add	w5, w5, w3
ffff8000113a5d3c:	88047cc5 	stxr	w4, w5, [x6]
ffff8000113a5d40:	35ffffa4 	cbnz	w4, ffff8000113a5d34 <dev_get_by_index+0x68>
ffff8000113a5d44:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a5d48:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a5d4c:	d65f03c0 	ret

ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>:
static void __netdev_adjacent_dev_remove(struct net_device *dev,
ffff8000113a5d50:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a5d54:	910003fd 	mov	x29, sp
ffff8000113a5d58:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5d5c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a5d60:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a5d64:	aa0003f7 	mov	x23, x0
ffff8000113a5d68:	aa1e03e0 	mov	x0, x30
ffff8000113a5d6c:	aa0103f5 	mov	x21, x1
	pr_debug("Remove adjacency: dev %s adj_dev %s ref_nr %d\n",
ffff8000113a5d70:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5d70: R_AARCH64_ADR_PREL_PG_HI21	__verbose
static void __netdev_adjacent_dev_remove(struct net_device *dev,
ffff8000113a5d74:	aa0203f4 	mov	x20, x2
ffff8000113a5d78:	94000000 	bl	0 <_mcount>
			ffff8000113a5d78: R_AARCH64_CALL26	_mcount
	pr_debug("Remove adjacency: dev %s adj_dev %s ref_nr %d\n",
ffff8000113a5d7c:	910002c0 	add	x0, x22, #0x0
			ffff8000113a5d7c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113a5d80:	79404401 	ldrh	w1, [x0,#34]
ffff8000113a5d84:	37100da1 	tbnz	w1, #2, ffff8000113a5f38 <__netdev_adjacent_dev_remove.constprop.155+0x1e8>
	list_for_each_entry(adj, adj_list, list) {
ffff8000113a5d88:	f9400284 	ldr	x4, [x20]
ffff8000113a5d8c:	eb04029f 	cmp	x20, x4
ffff8000113a5d90:	d1006093 	sub	x19, x4, #0x18
ffff8000113a5d94:	54000180 	b.eq	ffff8000113a5dc4 <__netdev_adjacent_dev_remove.constprop.155+0x74>
		if (adj->dev == adj_dev)
ffff8000113a5d98:	f85e8080 	ldur	x0, [x4,#-24]
ffff8000113a5d9c:	eb0002bf 	cmp	x21, x0
ffff8000113a5da0:	540000a1 	b.ne	ffff8000113a5db4 <__netdev_adjacent_dev_remove.constprop.155+0x64>
ffff8000113a5da4:	1400000f 	b	ffff8000113a5de0 <__netdev_adjacent_dev_remove.constprop.155+0x90>
ffff8000113a5da8:	f85e80a5 	ldur	x5, [x5,#-24]
ffff8000113a5dac:	eb0502bf 	cmp	x21, x5
ffff8000113a5db0:	54000180 	b.eq	ffff8000113a5de0 <__netdev_adjacent_dev_remove.constprop.155+0x90>
	list_for_each_entry(adj, adj_list, list) {
ffff8000113a5db4:	f9400e65 	ldr	x5, [x19,#24]
ffff8000113a5db8:	eb05029f 	cmp	x20, x5
ffff8000113a5dbc:	d10060b3 	sub	x19, x5, #0x18
ffff8000113a5dc0:	54ffff41 	b.ne	ffff8000113a5da8 <__netdev_adjacent_dev_remove.constprop.155+0x58>
		pr_err("Adjacency does not exist for device %s from %s\n",
ffff8000113a5dc4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5dc4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x4e0
ffff8000113a5dc8:	aa1703e1 	mov	x1, x23
ffff8000113a5dcc:	aa1503e2 	mov	x2, x21
ffff8000113a5dd0:	91000000 	add	x0, x0, #0x0
			ffff8000113a5dd0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x4e0
ffff8000113a5dd4:	94000000 	bl	0 <printk>
			ffff8000113a5dd4: R_AARCH64_CALL26	printk
		WARN_ON(1);
ffff8000113a5dd8:	d4210000 	brk	#0x800
ffff8000113a5ddc:	1400000c 	b	ffff8000113a5e0c <__netdev_adjacent_dev_remove.constprop.155+0xbc>
	if (!adj) {
ffff8000113a5de0:	b4ffff33 	cbz	x19, ffff8000113a5dc4 <__netdev_adjacent_dev_remove.constprop.155+0x74>
	if (adj->ref_nr > ref_nr) {
ffff8000113a5de4:	79401664 	ldrh	w4, [x19,#10]
ffff8000113a5de8:	7100049f 	cmp	w4, #0x1
ffff8000113a5dec:	540001a9 	b.ls	ffff8000113a5e20 <__netdev_adjacent_dev_remove.constprop.155+0xd0>
		pr_debug("adjacency: %s to %s ref_nr - %d = %d\n",
ffff8000113a5df0:	910002d6 	add	x22, x22, #0x0
			ffff8000113a5df0: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113a5df4:	9100a2c0 	add	x0, x22, #0x28
ffff8000113a5df8:	79404401 	ldrh	w1, [x0,#34]
ffff8000113a5dfc:	2a0403e5 	mov	w5, w4
ffff8000113a5e00:	371008a1 	tbnz	w1, #2, ffff8000113a5f14 <__netdev_adjacent_dev_remove.constprop.155+0x1c4>
		adj->ref_nr -= ref_nr;
ffff8000113a5e04:	510004a4 	sub	w4, w5, #0x1
ffff8000113a5e08:	79001664 	strh	w4, [x19,#10]
}
ffff8000113a5e0c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5e10:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a5e14:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a5e18:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a5e1c:	d65f03c0 	ret
	if (adj->master)
ffff8000113a5e20:	39402260 	ldrb	w0, [x19,#8]
ffff8000113a5e24:	350004e0 	cbnz	w0, ffff8000113a5ec0 <__netdev_adjacent_dev_remove.constprop.155+0x170>
	return (dev_list == &dev->adj_list.upper ||
ffff8000113a5e28:	9102a2e0 	add	x0, x23, #0xa8
		dev_list == &dev->adj_list.lower) &&
ffff8000113a5e2c:	eb00029f 	cmp	x20, x0
ffff8000113a5e30:	54000520 	b.eq	ffff8000113a5ed4 <__netdev_adjacent_dev_remove.constprop.155+0x184>
ffff8000113a5e34:	9102e2e0 	add	x0, x23, #0xb8
	return (dev_list == &dev->adj_list.upper ||
ffff8000113a5e38:	eb00029f 	cmp	x20, x0
ffff8000113a5e3c:	540004c0 	b.eq	ffff8000113a5ed4 <__netdev_adjacent_dev_remove.constprop.155+0x184>
	list_del_rcu(&adj->list);
ffff8000113a5e40:	91006274 	add	x20, x19, #0x18
	if (!__list_del_entry_valid(entry))
ffff8000113a5e44:	aa1403e0 	mov	x0, x20
ffff8000113a5e48:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a5e48: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a5e4c:	53001c00 	uxtb	w0, w0
ffff8000113a5e50:	340000a0 	cbz	w0, ffff8000113a5e64 <__netdev_adjacent_dev_remove.constprop.155+0x114>
	__list_del(entry->prev, entry->next);
ffff8000113a5e54:	f9400680 	ldr	x0, [x20,#8]
ffff8000113a5e58:	f9400e61 	ldr	x1, [x19,#24]
	next->prev = prev;
ffff8000113a5e5c:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a5e60:	f9000001 	str	x1, [x0]
	entry->prev = LIST_POISON2;
ffff8000113a5e64:	d2802440 	mov	x0, #0x122                 	// #290
ffff8000113a5e68:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
	pr_debug("adjacency: dev_put for %s, because link removed from %s to %s\n",
ffff8000113a5e6c:	910002d6 	add	x22, x22, #0x0
			ffff8000113a5e6c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113a5e70:	f9000680 	str	x0, [x20,#8]
ffff8000113a5e74:	910142c0 	add	x0, x22, #0x50
ffff8000113a5e78:	79404401 	ldrh	w1, [x0,#34]
ffff8000113a5e7c:	371003e1 	tbnz	w1, #2, ffff8000113a5ef8 <__netdev_adjacent_dev_remove.constprop.155+0x1a8>
ffff8000113a5e80:	12800002 	mov	w2, #0xffffffff            	// #-1
	this_cpu_dec(*dev->pcpu_refcnt);
ffff8000113a5e84:	f94262a0 	ldr	x0, [x21,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a5e88:	d538d081 	mrs	x1, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a5e8c:	8b000025 	add	x5, x1, x0
ffff8000113a5e90:	885f7ca4 	ldxr	w4, [x5]
ffff8000113a5e94:	0b020084 	add	w4, w4, w2
ffff8000113a5e98:	88037ca4 	stxr	w3, w4, [x5]
ffff8000113a5e9c:	35ffffa3 	cbnz	w3, ffff8000113a5e90 <__netdev_adjacent_dev_remove.constprop.155+0x140>
	kfree_rcu(adj, rcu);
ffff8000113a5ea0:	d2800501 	mov	x1, #0x28                  	// #40
ffff8000113a5ea4:	8b010260 	add	x0, x19, x1
ffff8000113a5ea8:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a5ea8: R_AARCH64_CALL26	kfree_call_rcu
}
ffff8000113a5eac:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a5eb0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a5eb4:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a5eb8:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a5ebc:	d65f03c0 	ret
		sysfs_remove_link(&(dev->dev.kobj), "master");
ffff8000113a5ec0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5ec0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x540
ffff8000113a5ec4:	911442e0 	add	x0, x23, #0x510
ffff8000113a5ec8:	91000021 	add	x1, x1, #0x0
			ffff8000113a5ec8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x540
ffff8000113a5ecc:	94000000 	bl	0 <sysfs_remove_link>
			ffff8000113a5ecc: R_AARCH64_CALL26	sysfs_remove_link
ffff8000113a5ed0:	17ffffd6 	b	ffff8000113a5e28 <__netdev_adjacent_dev_remove.constprop.155+0xd8>
		dev_list == &dev->adj_list.lower) &&
ffff8000113a5ed4:	f9427ae1 	ldr	x1, [x23,#1264]
ffff8000113a5ed8:	f9427aa0 	ldr	x0, [x21,#1264]
ffff8000113a5edc:	eb00003f 	cmp	x1, x0
ffff8000113a5ee0:	54fffb01 	b.ne	ffff8000113a5e40 <__netdev_adjacent_dev_remove.constprop.155+0xf0>
		netdev_adjacent_sysfs_del(dev, adj_dev->name, dev_list);
ffff8000113a5ee4:	aa1703e0 	mov	x0, x23
ffff8000113a5ee8:	aa1503e1 	mov	x1, x21
ffff8000113a5eec:	aa1403e2 	mov	x2, x20
ffff8000113a5ef0:	97ffec2b 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
ffff8000113a5ef4:	17ffffd3 	b	ffff8000113a5e40 <__netdev_adjacent_dev_remove.constprop.155+0xf0>
	pr_debug("adjacency: dev_put for %s, because link removed from %s to %s\n",
ffff8000113a5ef8:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5ef8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x548
ffff8000113a5efc:	91000021 	add	x1, x1, #0x0
			ffff8000113a5efc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x548
ffff8000113a5f00:	aa1503e2 	mov	x2, x21
ffff8000113a5f04:	aa1703e3 	mov	x3, x23
ffff8000113a5f08:	aa1503e4 	mov	x4, x21
ffff8000113a5f0c:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113a5f0c: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113a5f10:	17ffffdc 	b	ffff8000113a5e80 <__netdev_adjacent_dev_remove.constprop.155+0x130>
		pr_debug("adjacency: %s to %s ref_nr - %d = %d\n",
ffff8000113a5f14:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5f14: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x518
ffff8000113a5f18:	51000485 	sub	w5, w4, #0x1
ffff8000113a5f1c:	91000021 	add	x1, x1, #0x0
			ffff8000113a5f1c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x518
ffff8000113a5f20:	aa1703e2 	mov	x2, x23
ffff8000113a5f24:	aa1503e3 	mov	x3, x21
ffff8000113a5f28:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a5f2c:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113a5f2c: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113a5f30:	79401665 	ldrh	w5, [x19,#10]
ffff8000113a5f34:	17ffffb4 	b	ffff8000113a5e04 <__netdev_adjacent_dev_remove.constprop.155+0xb4>
	pr_debug("Remove adjacency: dev %s adj_dev %s ref_nr %d\n",
ffff8000113a5f38:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a5f38: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x4b0
ffff8000113a5f3c:	91000021 	add	x1, x1, #0x0
			ffff8000113a5f3c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x4b0
ffff8000113a5f40:	aa1703e2 	mov	x2, x23
ffff8000113a5f44:	aa1503e3 	mov	x3, x21
ffff8000113a5f48:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a5f4c:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113a5f4c: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113a5f50:	17ffff8e 	b	ffff8000113a5d88 <__netdev_adjacent_dev_remove.constprop.155+0x38>

ffff8000113a5f54 <netdev_upper_dev_unlink>:
{
ffff8000113a5f54:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a5f58:	910003fd 	mov	x29, sp
ffff8000113a5f5c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a5f60:	f90013f5 	str	x21, [sp,#32]
ffff8000113a5f64:	aa0003f4 	mov	x20, x0
ffff8000113a5f68:	aa1e03e0 	mov	x0, x30
ffff8000113a5f6c:	aa0103f3 	mov	x19, x1
ffff8000113a5f70:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a5f70: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a5f74:	94000000 	bl	0 <_mcount>
			ffff8000113a5f74: R_AARCH64_CALL26	_mcount
ffff8000113a5f78:	f94002a0 	ldr	x0, [x21]
			ffff8000113a5f78: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct netdev_notifier_changeupper_info changeupper_info = {
ffff8000113a5f7c:	a9037fbf 	stp	xzr, xzr, [x29,#48]
ffff8000113a5f80:	a9047fbf 	stp	xzr, xzr, [x29,#64]
{
ffff8000113a5f84:	f9002fa0 	str	x0, [x29,#88]
	struct netdev_notifier_changeupper_info changeupper_info = {
ffff8000113a5f88:	f9002bbf 	str	xzr, [x29,#80]
ffff8000113a5f8c:	f9001bb4 	str	x20, [x29,#48]
ffff8000113a5f90:	f90023b3 	str	x19, [x29,#64]
	ASSERT_RTNL();
ffff8000113a5f94:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a5f94: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a5f98:	340005a0 	cbz	w0, ffff8000113a604c <netdev_upper_dev_unlink+0xf8>
	changeupper_info.master = netdev_master_upper_dev_get(dev) == upper_dev;
ffff8000113a5f9c:	aa1403e0 	mov	x0, x20
ffff8000113a5fa0:	94000000 	bl	ffff80001139ff0c <netdev_master_upper_dev_get>
			ffff8000113a5fa0: R_AARCH64_CALL26	netdev_master_upper_dev_get
ffff8000113a5fa4:	eb00027f 	cmp	x19, x0
ffff8000113a5fa8:	1a9f17e2 	cset	w2, eq
	call_netdevice_notifiers_info(NETDEV_PRECHANGEUPPER,
ffff8000113a5fac:	9100c3a1 	add	x1, x29, #0x30
ffff8000113a5fb0:	d2800340 	mov	x0, #0x1a                  	// #26
	changeupper_info.master = netdev_master_upper_dev_get(dev) == upper_dev;
ffff8000113a5fb4:	390123a2 	strb	w2, [x29,#72]
	call_netdevice_notifiers_info(NETDEV_PRECHANGEUPPER,
ffff8000113a5fb8:	97ffe850 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
ffff8000113a5fbc:	aa1403e0 	mov	x0, x20
ffff8000113a5fc0:	aa1303e1 	mov	x1, x19
ffff8000113a5fc4:	9102a282 	add	x2, x20, #0xa8
ffff8000113a5fc8:	97ffff62 	bl	ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>
	__netdev_adjacent_dev_remove(upper_dev, dev, ref_nr, down_list);
ffff8000113a5fcc:	9102e262 	add	x2, x19, #0xb8
ffff8000113a5fd0:	aa1303e0 	mov	x0, x19
ffff8000113a5fd4:	aa1403e1 	mov	x1, x20
ffff8000113a5fd8:	97ffff5e 	bl	ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>
	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
ffff8000113a5fdc:	9100c3a1 	add	x1, x29, #0x30
ffff8000113a5fe0:	d28002a0 	mov	x0, #0x15                  	// #21
ffff8000113a5fe4:	97ffe845 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	dev->upper_level = __netdev_upper_depth(dev) + 1;
ffff8000113a5fe8:	aa1403e0 	mov	x0, x20
ffff8000113a5fec:	97ffe3b7 	bl	ffff80001139eec8 <__netdev_upper_depth>
ffff8000113a5ff0:	53001c00 	uxtb	w0, w0
ffff8000113a5ff4:	11000400 	add	w0, w0, #0x1
ffff8000113a5ff8:	3909c280 	strb	w0, [x20,#624]
	__netdev_walk_all_lower_dev(dev, __netdev_update_upper_level, NULL);
ffff8000113a5ffc:	aa1403e0 	mov	x0, x20
ffff8000113a6000:	97fff095 	bl	ffff8000113a2254 <__netdev_walk_all_lower_dev.constprop.156>
	dev->lower_level = __netdev_lower_depth(dev) + 1;
ffff8000113a6004:	aa1303e0 	mov	x0, x19
ffff8000113a6008:	97ffe3d1 	bl	ffff80001139ef4c <__netdev_lower_depth>
ffff8000113a600c:	53001c00 	uxtb	w0, w0
ffff8000113a6010:	11000400 	add	w0, w0, #0x1
	__netdev_walk_all_upper_dev(upper_dev, __netdev_update_lower_level,
ffff8000113a6014:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6014: R_AARCH64_ADR_PREL_PG_HI21	.text+0xc90
	dev->lower_level = __netdev_lower_depth(dev) + 1;
ffff8000113a6018:	3909c660 	strb	w0, [x19,#625]
	__netdev_walk_all_upper_dev(upper_dev, __netdev_update_lower_level,
ffff8000113a601c:	91000021 	add	x1, x1, #0x0
			ffff8000113a601c: R_AARCH64_ADD_ABS_LO12_NC	.text+0xc90
ffff8000113a6020:	aa1303e0 	mov	x0, x19
ffff8000113a6024:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a6028:	97ffe295 	bl	ffff80001139ea7c <__netdev_walk_all_upper_dev>
}
ffff8000113a602c:	f9402fa1 	ldr	x1, [x29,#88]
ffff8000113a6030:	f94002a0 	ldr	x0, [x21]
			ffff8000113a6030: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a6034:	eb00003f 	cmp	x1, x0
ffff8000113a6038:	54000261 	b.ne	ffff8000113a6084 <netdev_upper_dev_unlink+0x130>
ffff8000113a603c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6040:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a6044:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a6048:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113a604c:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a604c: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a6050:	91000063 	add	x3, x3, #0x0
			ffff8000113a6050: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a6054:	39404860 	ldrb	w0, [x3,#18]
ffff8000113a6058:	35fffa20 	cbnz	w0, ffff8000113a5f9c <netdev_upper_dev_unlink+0x48>
ffff8000113a605c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a605c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a6060:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6060: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a6064:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a6068:	91000000 	add	x0, x0, #0x0
			ffff8000113a6068: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a606c:	91000021 	add	x1, x1, #0x0
			ffff8000113a606c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a6070:	5283be42 	mov	w2, #0x1df2                	// #7666
ffff8000113a6074:	39004864 	strb	w4, [x3,#18]
ffff8000113a6078:	94000000 	bl	0 <__warn_printk>
			ffff8000113a6078: R_AARCH64_CALL26	__warn_printk
ffff8000113a607c:	d4210000 	brk	#0x800
ffff8000113a6080:	17ffffc7 	b	ffff8000113a5f9c <netdev_upper_dev_unlink+0x48>
}
ffff8000113a6084:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a6084: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a6088 <netdev_adjacent_change_commit>:
{
ffff8000113a6088:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a608c:	910003fd 	mov	x29, sp
ffff8000113a6090:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6094:	f90013f5 	str	x21, [sp,#32]
ffff8000113a6098:	aa0003f3 	mov	x19, x0
ffff8000113a609c:	aa0103f4 	mov	x20, x1
ffff8000113a60a0:	aa1e03e0 	mov	x0, x30
ffff8000113a60a4:	aa0203f5 	mov	x21, x2
ffff8000113a60a8:	94000000 	bl	0 <_mcount>
			ffff8000113a60a8: R_AARCH64_CALL26	_mcount
	if (!new_dev || !old_dev)
ffff8000113a60ac:	b4000194 	cbz	x20, ffff8000113a60dc <netdev_adjacent_change_commit+0x54>
ffff8000113a60b0:	eb1f027f 	cmp	x19, xzr
ffff8000113a60b4:	1a9f17e2 	cset	w2, eq
ffff8000113a60b8:	35000122 	cbnz	w2, ffff8000113a60dc <netdev_adjacent_change_commit+0x54>
	if (new_dev == old_dev)
ffff8000113a60bc:	eb13029f 	cmp	x20, x19
ffff8000113a60c0:	540000e0 	b.eq	ffff8000113a60dc <netdev_adjacent_change_commit+0x54>
	__netdev_adjacent_dev_set(upper_dev, lower_dev, false);
ffff8000113a60c4:	aa1503e0 	mov	x0, x21
ffff8000113a60c8:	aa1303e1 	mov	x1, x19
ffff8000113a60cc:	97ffe419 	bl	ffff80001139f130 <__netdev_adjacent_dev_set>
	netdev_upper_dev_unlink(old_dev, dev);
ffff8000113a60d0:	aa1303e0 	mov	x0, x19
ffff8000113a60d4:	aa1503e1 	mov	x1, x21
ffff8000113a60d8:	94000000 	bl	ffff8000113a5f54 <netdev_upper_dev_unlink>
			ffff8000113a60d8: R_AARCH64_CALL26	netdev_upper_dev_unlink
}
ffff8000113a60dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a60e0:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a60e4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a60e8:	d65f03c0 	ret

ffff8000113a60ec <netdev_adjacent_change_abort>:
{
ffff8000113a60ec:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a60f0:	910003fd 	mov	x29, sp
ffff8000113a60f4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a60f8:	f90013f5 	str	x21, [sp,#32]
ffff8000113a60fc:	aa0003f4 	mov	x20, x0
ffff8000113a6100:	aa0103f3 	mov	x19, x1
ffff8000113a6104:	aa1e03e0 	mov	x0, x30
ffff8000113a6108:	aa0203f5 	mov	x21, x2
ffff8000113a610c:	94000000 	bl	0 <_mcount>
			ffff8000113a610c: R_AARCH64_CALL26	_mcount
	if (!new_dev)
ffff8000113a6110:	b40000d3 	cbz	x19, ffff8000113a6128 <netdev_adjacent_change_abort+0x3c>
	if (old_dev && new_dev != old_dev)
ffff8000113a6114:	eb14027f 	cmp	x19, x20
ffff8000113a6118:	54000101 	b.ne	ffff8000113a6138 <netdev_adjacent_change_abort+0x4c>
	netdev_upper_dev_unlink(new_dev, dev);
ffff8000113a611c:	aa1303e0 	mov	x0, x19
ffff8000113a6120:	aa1503e1 	mov	x1, x21
ffff8000113a6124:	94000000 	bl	ffff8000113a5f54 <netdev_upper_dev_unlink>
			ffff8000113a6124: R_AARCH64_CALL26	netdev_upper_dev_unlink
}
ffff8000113a6128:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a612c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a6130:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a6134:	d65f03c0 	ret
	if (old_dev && new_dev != old_dev)
ffff8000113a6138:	b4ffff34 	cbz	x20, ffff8000113a611c <netdev_adjacent_change_abort+0x30>
	__netdev_adjacent_dev_set(upper_dev, lower_dev, false);
ffff8000113a613c:	aa1503e0 	mov	x0, x21
ffff8000113a6140:	aa1403e1 	mov	x1, x20
ffff8000113a6144:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a6148:	97ffe3fa 	bl	ffff80001139f130 <__netdev_adjacent_dev_set>
ffff8000113a614c:	17fffff4 	b	ffff8000113a611c <netdev_adjacent_change_abort+0x30>

ffff8000113a6150 <flush_backlog>:
{
ffff8000113a6150:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a6154:	910003fd 	mov	x29, sp
ffff8000113a6158:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a615c:	f90013f5 	str	x21, [sp,#32]
ffff8000113a6160:	aa1e03e0 	mov	x0, x30
ffff8000113a6164:	94000000 	bl	0 <_mcount>
			ffff8000113a6164: R_AARCH64_CALL26	_mcount
ffff8000113a6168:	d5384100 	mrs	x0, sp_el0
	__READ_ONCE_SIZE;
ffff8000113a616c:	b9401801 	ldr	w1, [x0,#24]
ffff8000113a6170:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a6174:	b9001801 	str	w1, [x0,#24]
	sd = this_cpu_ptr(&softnet_data);
ffff8000113a6178:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6178: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a617c:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a6180:	91000294 	add	x20, x20, #0x0
			ffff8000113a6180: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a6184:	8b140014 	add	x20, x0, x20
	asm volatile(ALTERNATIVE(
ffff8000113a6188:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a618c:	d50342df 	msr	daifset, #0x2
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a6190:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a6194:	91043280 	add	x0, x20, #0x10c
ffff8000113a6198:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a619c:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a61a0:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a61a4:	4a020024 	eor	w4, w1, w2
ffff8000113a61a8:	35000064 	cbnz	w4, ffff8000113a61b4 <flush_backlog+0x64>
ffff8000113a61ac:	88047c03 	stxr	w4, w3, [x0]
ffff8000113a61b0:	35ffff84 	cbnz	w4, ffff8000113a61a0 <flush_backlog+0x50>
ffff8000113a61b4:	350009c1 	cbnz	w1, ffff8000113a62ec <flush_backlog+0x19c>
	skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
ffff8000113a61b8:	aa1403f5 	mov	x21, x20
ffff8000113a61bc:	f84f8ea1 	ldr	x1, [x21,#248]!
ffff8000113a61c0:	eb15003f 	cmp	x1, x21
ffff8000113a61c4:	f9400033 	ldr	x19, [x1]
ffff8000113a61c8:	540000e1 	b.ne	ffff8000113a61e4 <flush_backlog+0x94>
ffff8000113a61cc:	1400001b 	b	ffff8000113a6238 <flush_backlog+0xe8>
ffff8000113a61d0:	eb1302bf 	cmp	x21, x19
ffff8000113a61d4:	f9400260 	ldr	x0, [x19]
ffff8000113a61d8:	54000300 	b.eq	ffff8000113a6238 <flush_backlog+0xe8>
ffff8000113a61dc:	aa1303e1 	mov	x1, x19
ffff8000113a61e0:	aa0003f3 	mov	x19, x0
		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
ffff8000113a61e4:	f9400820 	ldr	x0, [x1,#16]
ffff8000113a61e8:	39536000 	ldrb	w0, [x0,#1240]
ffff8000113a61ec:	7100081f 	cmp	w0, #0x2
ffff8000113a61f0:	54ffff01 	b.ne	ffff8000113a61d0 <flush_backlog+0x80>
	WRITE_ONCE(list->qlen, list->qlen - 1);
ffff8000113a61f4:	b94012a2 	ldr	w2, [x21,#16]
			kfree_skb(skb);
ffff8000113a61f8:	aa0103e0 	mov	x0, x1
ffff8000113a61fc:	51000442 	sub	w2, w2, #0x1
ffff8000113a6200:	b9010a82 	str	w2, [x20,#264]
	next	   = skb->next;
ffff8000113a6204:	f9400023 	ldr	x3, [x1]
	prev	   = skb->prev;
ffff8000113a6208:	f9400422 	ldr	x2, [x1,#8]
	skb->next  = skb->prev = NULL;
ffff8000113a620c:	f900003f 	str	xzr, [x1]
ffff8000113a6210:	f900043f 	str	xzr, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a6214:	f9000462 	str	x2, [x3,#8]
ffff8000113a6218:	f9000043 	str	x3, [x2]
ffff8000113a621c:	94000000 	bl	0 <kfree_skb>
			ffff8000113a621c: R_AARCH64_CALL26	kfree_skb
	sd->input_queue_head++;
ffff8000113a6220:	b9408280 	ldr	w0, [x20,#128]
	skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
ffff8000113a6224:	eb1302bf 	cmp	x21, x19
ffff8000113a6228:	11000400 	add	w0, w0, #0x1
ffff8000113a622c:	b9008280 	str	w0, [x20,#128]
ffff8000113a6230:	f9400260 	ldr	x0, [x19]
ffff8000113a6234:	54fffd41 	b.ne	ffff8000113a61dc <flush_backlog+0x8c>
	smp_store_release(&lock->locked, 0);
ffff8000113a6238:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a623c:	91043281 	add	x1, x20, #0x10c
ffff8000113a6240:	089ffc20 	stlrb	w0, [x1]
	asm volatile(ALTERNATIVE(
ffff8000113a6244:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113a6248:	d50342ff 	msr	daifclr, #0x2
	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
ffff8000113a624c:	aa1403f5 	mov	x21, x20
ffff8000113a6250:	f8410ea1 	ldr	x1, [x21,#16]!
ffff8000113a6254:	eb15003f 	cmp	x1, x21
ffff8000113a6258:	f9400033 	ldr	x19, [x1]
ffff8000113a625c:	540000e1 	b.ne	ffff8000113a6278 <flush_backlog+0x128>
ffff8000113a6260:	1400001b 	b	ffff8000113a62cc <flush_backlog+0x17c>
ffff8000113a6264:	eb15027f 	cmp	x19, x21
ffff8000113a6268:	f9400260 	ldr	x0, [x19]
ffff8000113a626c:	54000300 	b.eq	ffff8000113a62cc <flush_backlog+0x17c>
ffff8000113a6270:	aa1303e1 	mov	x1, x19
ffff8000113a6274:	aa0003f3 	mov	x19, x0
		if (skb->dev->reg_state == NETREG_UNREGISTERING) {
ffff8000113a6278:	f9400820 	ldr	x0, [x1,#16]
ffff8000113a627c:	39536000 	ldrb	w0, [x0,#1240]
ffff8000113a6280:	7100081f 	cmp	w0, #0x2
ffff8000113a6284:	54ffff01 	b.ne	ffff8000113a6264 <flush_backlog+0x114>
	WRITE_ONCE(list->qlen, list->qlen - 1);
ffff8000113a6288:	b94012a2 	ldr	w2, [x21,#16]
			kfree_skb(skb);
ffff8000113a628c:	aa0103e0 	mov	x0, x1
ffff8000113a6290:	51000442 	sub	w2, w2, #0x1
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a6294:	b9002282 	str	w2, [x20,#32]
	next	   = skb->next;
ffff8000113a6298:	f9400023 	ldr	x3, [x1]
	prev	   = skb->prev;
ffff8000113a629c:	f9400422 	ldr	x2, [x1,#8]
	skb->next  = skb->prev = NULL;
ffff8000113a62a0:	f900003f 	str	xzr, [x1]
ffff8000113a62a4:	f900043f 	str	xzr, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a62a8:	f9000462 	str	x2, [x3,#8]
ffff8000113a62ac:	f9000043 	str	x3, [x2]
ffff8000113a62b0:	94000000 	bl	0 <kfree_skb>
			ffff8000113a62b0: R_AARCH64_CALL26	kfree_skb
ffff8000113a62b4:	b9408280 	ldr	w0, [x20,#128]
	skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
ffff8000113a62b8:	eb15027f 	cmp	x19, x21
ffff8000113a62bc:	11000400 	add	w0, w0, #0x1
ffff8000113a62c0:	b9008280 	str	w0, [x20,#128]
ffff8000113a62c4:	f9400260 	ldr	x0, [x19]
ffff8000113a62c8:	54fffd41 	b.ne	ffff8000113a6270 <flush_backlog+0x120>
	__local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET);
}

static inline void local_bh_enable(void)
{
	__local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
ffff8000113a62cc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a62cc: R_AARCH64_ADR_PREL_PG_HI21	.text+0x7f50
ffff8000113a62d0:	91000000 	add	x0, x0, #0x0
			ffff8000113a62d0: R_AARCH64_ADD_ABS_LO12_NC	.text+0x7f50
ffff8000113a62d4:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a62d8:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a62d8: R_AARCH64_CALL26	__local_bh_enable_ip
}
ffff8000113a62dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a62e0:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a62e4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a62e8:	d65f03c0 	ret
	queued_spin_lock_slowpath(lock, val);
ffff8000113a62ec:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a62ec: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a62f0:	17ffffb2 	b	ffff8000113a61b8 <flush_backlog+0x68>

ffff8000113a62f4 <net_tx_action>:
{
ffff8000113a62f4:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a62f8:	910003fd 	mov	x29, sp
ffff8000113a62fc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6300:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a6304:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a6308:	a9046bf9 	stp	x25, x26, [sp,#64]
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113a630c:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a630c: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
{
ffff8000113a6310:	aa1e03e0 	mov	x0, x30
ffff8000113a6314:	94000000 	bl	0 <_mcount>
			ffff8000113a6314: R_AARCH64_CALL26	_mcount
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113a6318:	91000318 	add	x24, x24, #0x0
			ffff8000113a6318: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a631c:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a6320:	8b180018 	add	x24, x0, x24
	if (sd->completion_queue) {
ffff8000113a6324:	f9402f00 	ldr	x0, [x24,#88]
ffff8000113a6328:	b4000460 	cbz	x0, ffff8000113a63b4 <net_tx_action+0xc0>
	asm volatile(ALTERNATIVE(
ffff8000113a632c:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a6330:	d50342df 	msr	daifset, #0x2
	asm volatile(ALTERNATIVE(
ffff8000113a6334:	d2801c00 	mov	x0, #0xe0                  	// #224
		clist = sd->completion_queue;
ffff8000113a6338:	f9402f14 	ldr	x20, [x24,#88]
		sd->completion_queue = NULL;
ffff8000113a633c:	f9002f1f 	str	xzr, [x24,#88]
ffff8000113a6340:	d50342ff 	msr	daifclr, #0x2
		while (clist) {
ffff8000113a6344:	b4000374 	cbz	x20, ffff8000113a63b0 <net_tx_action+0xbc>
#include <linux/tracepoint.h>

/*
 * Tracepoint for free an sk_buff:
 */
TRACE_EVENT(kfree_skb,
ffff8000113a6348:	90000016 	adrp	x22, 0 <cpu_number>
			ffff8000113a6348: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a634c:	90000017 	adrp	x23, 0 <__cpu_online_mask>
			ffff8000113a634c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6350:	910002d6 	add	x22, x22, #0x0
			ffff8000113a6350: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6354:	910002f7 	add	x23, x23, #0x0
			ffff8000113a6354: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask

	TP_printk("skbaddr=%p protocol=%u location=%p",
		__entry->skbaddr, __entry->protocol, __entry->location)
);

TRACE_EVENT(consume_skb,
ffff8000113a6358:	aa1603f9 	mov	x25, x22
	__READ_ONCE_SIZE;
ffff8000113a635c:	b940d680 	ldr	w0, [x20,#212]
			clist = clist->next;
ffff8000113a6360:	f9400295 	ldr	x21, [x20]
			WARN_ON(refcount_read(&skb->users));
ffff8000113a6364:	35000da0 	cbnz	w0, ffff8000113a6518 <net_tx_action+0x224>
			if (likely(get_kfree_skb_cb(skb)->reason == SKB_REASON_CONSUMED))
ffff8000113a6368:	b9402a80 	ldr	w0, [x20,#40]
ffff8000113a636c:	35001000 	cbnz	w0, ffff8000113a656c <net_tx_action+0x278>
ffff8000113a6370:	90000000 	adrp	x0, 0 <__tracepoint_consume_skb>
			ffff8000113a6370: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_consume_skb
ffff8000113a6374:	91000000 	add	x0, x0, #0x0
			ffff8000113a6374: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_consume_skb
ffff8000113a6378:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a637c:	6b1f003f 	cmp	w1, wzr
ffff8000113a6380:	54000d0c 	b.gt	ffff8000113a6520 <net_tx_action+0x22c>
			if (skb->fclone != SKB_FCLONE_UNAVAILABLE)
ffff8000113a6384:	3941fa80 	ldrb	w0, [x20,#126]
ffff8000113a6388:	d3420c00 	ubfx	x0, x0, #2, #2
ffff8000113a638c:	340000c0 	cbz	w0, ffff8000113a63a4 <net_tx_action+0xb0>
				__kfree_skb(skb);
ffff8000113a6390:	aa1403e0 	mov	x0, x20
ffff8000113a6394:	94000000 	bl	0 <__kfree_skb>
			ffff8000113a6394: R_AARCH64_CALL26	__kfree_skb
		while (clist) {
ffff8000113a6398:	b40000d5 	cbz	x21, ffff8000113a63b0 <net_tx_action+0xbc>
ffff8000113a639c:	aa1503f4 	mov	x20, x21
ffff8000113a63a0:	17ffffef 	b	ffff8000113a635c <net_tx_action+0x68>
				__kfree_skb_defer(skb);
ffff8000113a63a4:	aa1403e0 	mov	x0, x20
ffff8000113a63a8:	94000000 	bl	0 <__kfree_skb_defer>
			ffff8000113a63a8: R_AARCH64_CALL26	__kfree_skb_defer
		while (clist) {
ffff8000113a63ac:	b5ffff95 	cbnz	x21, ffff8000113a639c <net_tx_action+0xa8>
		__kfree_skb_flush();
ffff8000113a63b0:	94000000 	bl	0 <__kfree_skb_flush>
			ffff8000113a63b0: R_AARCH64_CALL26	__kfree_skb_flush
	if (sd->output_queue) {
ffff8000113a63b4:	f9402700 	ldr	x0, [x24,#72]
ffff8000113a63b8:	b4000a00 	cbz	x0, ffff8000113a64f8 <net_tx_action+0x204>
	asm volatile(ALTERNATIVE(
ffff8000113a63bc:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a63c0:	d50342df 	msr	daifset, #0x2
		sd->output_queue = NULL;
ffff8000113a63c4:	aa1803e0 	mov	x0, x24
		head = sd->output_queue;
ffff8000113a63c8:	f9402713 	ldr	x19, [x24,#72]
		sd->output_queue = NULL;
ffff8000113a63cc:	f8048c1f 	str	xzr, [x0,#72]!
		sd->output_queue_tailp = &sd->output_queue;
ffff8000113a63d0:	f9002b00 	str	x0, [x24,#80]
	asm volatile(ALTERNATIVE(
ffff8000113a63d4:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113a63d8:	d50342ff 	msr	daifclr, #0x2
		while (head) {
ffff8000113a63dc:	b40008f3 	cbz	x19, ffff8000113a64f8 <net_tx_action+0x204>
			if (!(q->flags & TCQ_F_NOLOCK)) {
ffff8000113a63e0:	b9401260 	ldr	w0, [x19,#16]
			spinlock_t *root_lock = NULL;
ffff8000113a63e4:	d2800017 	mov	x23, #0x0                   	// #0
ffff8000113a63e8:	5280003a 	mov	w26, #0x1                   	// #1
ATOMIC64_OPS(andnot, bic, )
ffff8000113a63ec:	d2800034 	mov	x20, #0x1                   	// #1
	smp_store_release(&lock->locked, 0);
ffff8000113a63f0:	2a1703f9 	mov	w25, w23
			head = head->next_sched;
ffff8000113a63f4:	f9407276 	ldr	x22, [x19,#224]
			spinlock_t *root_lock = NULL;
ffff8000113a63f8:	d2800015 	mov	x21, #0x0                   	// #0
			if (!(q->flags & TCQ_F_NOLOCK)) {
ffff8000113a63fc:	364004a0 	tbz	w0, #8, ffff8000113a6490 <net_tx_action+0x19c>
			smp_mb__before_atomic();
ffff8000113a6400:	d5033bbf 	dmb	ish
ffff8000113a6404:	91036264 	add	x4, x19, #0xd8
ffff8000113a6408:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a640c:	c85f7c80 	ldxr	x0, [x4]
ffff8000113a6410:	8a340000 	bic	x0, x0, x20
ffff8000113a6414:	c8017c80 	stxr	w1, x0, [x4]
ffff8000113a6418:	35ffffa1 	cbnz	w1, ffff8000113a640c <net_tx_action+0x118>
	if (qdisc->flags & TCQ_F_NOLOCK) {
ffff8000113a641c:	b9401260 	ldr	w0, [x19,#16]
ffff8000113a6420:	37400540 	tbnz	w0, #8, ffff8000113a64c8 <net_tx_action+0x1d4>
ffff8000113a6424:	b940c260 	ldr	w0, [x19,#192]
 * masking the LSB. Calling code is responsible for handling that.
 */
static inline unsigned raw_read_seqcount(const seqcount_t *s)
{
	unsigned ret = READ_ONCE(s->sequence);
	smp_rmb();
ffff8000113a6428:	d50339bf 	dmb	ishld
	} else if (qdisc_is_running(qdisc)) {
ffff8000113a642c:	37000220 	tbnz	w0, #0, ffff8000113a6470 <net_tx_action+0x17c>



static inline void raw_write_seqcount_begin(seqcount_t *s)
{
	s->sequence++;
ffff8000113a6430:	b940c260 	ldr	w0, [x19,#192]
ffff8000113a6434:	11000400 	add	w0, w0, #0x1
ffff8000113a6438:	b900c260 	str	w0, [x19,#192]
	smp_wmb();
ffff8000113a643c:	d5033abf 	dmb	ishst
{
	if (qdisc_run_begin(q)) {
		/* NOLOCK qdisc must check 'state' under the qdisc seqlock
		 * to avoid racing with dev_qdisc_reset()
		 */
		if (!(q->flags & TCQ_F_NOLOCK) ||
ffff8000113a6440:	b9401260 	ldr	w0, [x19,#16]
ffff8000113a6444:	36400060 	tbz	w0, #8, ffff8000113a6450 <net_tx_action+0x15c>
ffff8000113a6448:	f9406e60 	ldr	x0, [x19,#216]
ffff8000113a644c:	37080060 	tbnz	w0, #1, ffff8000113a6458 <net_tx_action+0x164>
		    likely(!test_bit(__QDISC_STATE_DEACTIVATED, &q->state)))
			__qdisc_run(q);
ffff8000113a6450:	aa1303e0 	mov	x0, x19
ffff8000113a6454:	94000000 	bl	0 <__qdisc_run>
			ffff8000113a6454: R_AARCH64_CALL26	__qdisc_run
}

static inline void raw_write_seqcount_end(seqcount_t *s)
{
	smp_wmb();
ffff8000113a6458:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113a645c:	b940c261 	ldr	w1, [x19,#192]
	if (qdisc->flags & TCQ_F_NOLOCK)
ffff8000113a6460:	b9401260 	ldr	w0, [x19,#16]
ffff8000113a6464:	11000421 	add	w1, w1, #0x1
ffff8000113a6468:	b900c261 	str	w1, [x19,#192]
ffff8000113a646c:	37400280 	tbnz	w0, #8, ffff8000113a64bc <net_tx_action+0x1c8>
			if (root_lock)
ffff8000113a6470:	b4000055 	cbz	x21, ffff8000113a6478 <net_tx_action+0x184>
ffff8000113a6474:	089ffeb9 	stlrb	w25, [x21]
		while (head) {
ffff8000113a6478:	b4000416 	cbz	x22, ffff8000113a64f8 <net_tx_action+0x204>
ffff8000113a647c:	aa1603f3 	mov	x19, x22
			if (!(q->flags & TCQ_F_NOLOCK)) {
ffff8000113a6480:	b9401260 	ldr	w0, [x19,#16]
			head = head->next_sched;
ffff8000113a6484:	f9407276 	ldr	x22, [x19,#224]
			spinlock_t *root_lock = NULL;
ffff8000113a6488:	d2800015 	mov	x21, #0x0                   	// #0
			if (!(q->flags & TCQ_F_NOLOCK)) {
ffff8000113a648c:	3747fba0 	tbnz	w0, #8, ffff8000113a6400 <net_tx_action+0x10c>
				root_lock = qdisc_lock(q);
ffff8000113a6490:	9102b275 	add	x21, x19, #0xac
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a6494:	f98002b1 	prfm	pstl1strm, [x21]
ffff8000113a6498:	885ffea1 	ldaxr	w1, [x21]
ffff8000113a649c:	4a170020 	eor	w0, w1, w23
ffff8000113a64a0:	35000060 	cbnz	w0, ffff8000113a64ac <net_tx_action+0x1b8>
ffff8000113a64a4:	88007eba 	stxr	w0, w26, [x21]
ffff8000113a64a8:	35ffff80 	cbnz	w0, ffff8000113a6498 <net_tx_action+0x1a4>
ffff8000113a64ac:	34fffaa1 	cbz	w1, ffff8000113a6400 <net_tx_action+0x10c>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a64b0:	aa1503e0 	mov	x0, x21
ffff8000113a64b4:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a64b4: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a64b8:	17ffffd2 	b	ffff8000113a6400 <net_tx_action+0x10c>
	smp_store_release(&lock->locked, 0);
ffff8000113a64bc:	91041273 	add	x19, x19, #0x104
ffff8000113a64c0:	089ffe79 	stlrb	w25, [x19]
	preempt_enable();
ffff8000113a64c4:	17ffffeb 	b	ffff8000113a6470 <net_tx_action+0x17c>
ffff8000113a64c8:	b9410660 	ldr	w0, [x19,#260]
	if (unlikely(val))
ffff8000113a64cc:	35ffffc0 	cbnz	w0, ffff8000113a64c4 <net_tx_action+0x1d0>
ffff8000113a64d0:	91041264 	add	x4, x19, #0x104
ffff8000113a64d4:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a64d8:	885ffc81 	ldaxr	w1, [x4]
ffff8000113a64dc:	4a170022 	eor	w2, w1, w23
ffff8000113a64e0:	35000062 	cbnz	w2, ffff8000113a64ec <net_tx_action+0x1f8>
ffff8000113a64e4:	88027c94 	stxr	w2, w20, [x4]
ffff8000113a64e8:	35ffff82 	cbnz	w2, ffff8000113a64d8 <net_tx_action+0x1e4>
	if (do_raw_spin_trylock(lock)) {
ffff8000113a64ec:	35fffec1 	cbnz	w1, ffff8000113a64c4 <net_tx_action+0x1d0>
	case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
ffff8000113a64f0:	39042260 	strb	w0, [x19,#264]
ffff8000113a64f4:	17ffffcf 	b	ffff8000113a6430 <net_tx_action+0x13c>
	xfrm_dev_backlog(sd);
ffff8000113a64f8:	aa1803e0 	mov	x0, x24
ffff8000113a64fc:	94000000 	bl	0 <xfrm_dev_backlog>
			ffff8000113a64fc: R_AARCH64_CALL26	xfrm_dev_backlog
}
ffff8000113a6500:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6504:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a6508:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a650c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a6510:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a6514:	d65f03c0 	ret
			WARN_ON(refcount_read(&skb->users));
ffff8000113a6518:	d4210000 	brk	#0x800
ffff8000113a651c:	17ffff93 	b	ffff8000113a6368 <net_tx_action+0x74>
ffff8000113a6520:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a6524:	b8796821 	ldr	w1, [x1,x25]
ffff8000113a6528:	1100fc22 	add	w2, w1, #0x3f
ffff8000113a652c:	6b1f003f 	cmp	w1, wzr
ffff8000113a6530:	1a81b042 	csel	w2, w2, w1, lt
ffff8000113a6534:	13067c42 	asr	w2, w2, #6
ffff8000113a6538:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113a653c:	f8776842 	ldr	x2, [x2,x23]
ffff8000113a6540:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6544:	3607f201 	tbz	w1, #0, ffff8000113a6384 <net_tx_action+0x90>
	__READ_ONCE_SIZE;
ffff8000113a6548:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a654c:	b40000f3 	cbz	x19, ffff8000113a6568 <net_tx_action+0x274>
ffff8000113a6550:	f9400262 	ldr	x2, [x19]
ffff8000113a6554:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6558:	aa1403e1 	mov	x1, x20
ffff8000113a655c:	d63f0040 	blr	x2
ffff8000113a6560:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6564:	b5ffff82 	cbnz	x2, ffff8000113a6554 <net_tx_action+0x260>
TRACE_EVENT(kfree_skb,
ffff8000113a6568:	17ffff87 	b	ffff8000113a6384 <net_tx_action+0x90>
ffff8000113a656c:	90000001 	adrp	x1, 0 <__tracepoint_kfree_skb>
			ffff8000113a656c: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_kfree_skb
ffff8000113a6570:	91000021 	add	x1, x1, #0x0
			ffff8000113a6570: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_kfree_skb
ffff8000113a6574:	b9400820 	ldr	w0, [x1,#8]
ffff8000113a6578:	6b1f001f 	cmp	w0, wzr
ffff8000113a657c:	54fff04d 	b.le	ffff8000113a6384 <net_tx_action+0x90>
ffff8000113a6580:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a6584:	b8766800 	ldr	w0, [x0,x22]
ffff8000113a6588:	1100fc02 	add	w2, w0, #0x3f
ffff8000113a658c:	6b1f001f 	cmp	w0, wzr
ffff8000113a6590:	1a80b042 	csel	w2, w2, w0, lt
ffff8000113a6594:	13067c42 	asr	w2, w2, #6
ffff8000113a6598:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113a659c:	f8776842 	ldr	x2, [x2,x23]
ffff8000113a65a0:	9ac02440 	lsr	x0, x2, x0
ffff8000113a65a4:	3607ef00 	tbz	w0, #0, ffff8000113a6384 <net_tx_action+0x90>
ffff8000113a65a8:	f9401033 	ldr	x19, [x1,#32]
ffff8000113a65ac:	b4fffdf3 	cbz	x19, ffff8000113a6568 <net_tx_action+0x274>
ffff8000113a65b0:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a65b0: R_AARCH64_ADR_PREL_PG_HI21	.text+0x7f78
ffff8000113a65b4:	f9400263 	ldr	x3, [x19]
ffff8000113a65b8:	9100035a 	add	x26, x26, #0x0
			ffff8000113a65b8: R_AARCH64_ADD_ABS_LO12_NC	.text+0x7f78
ffff8000113a65bc:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a65c0:	aa1403e1 	mov	x1, x20
ffff8000113a65c4:	aa1a03e2 	mov	x2, x26
ffff8000113a65c8:	d63f0060 	blr	x3
ffff8000113a65cc:	f8418e63 	ldr	x3, [x19,#24]!
ffff8000113a65d0:	b5ffff63 	cbnz	x3, ffff8000113a65bc <net_tx_action+0x2c8>
ffff8000113a65d4:	17ffff6c 	b	ffff8000113a6384 <net_tx_action+0x90>

ffff8000113a65d8 <enqueue_to_backlog>:
{
ffff8000113a65d8:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a65dc:	910003fd 	mov	x29, sp
ffff8000113a65e0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a65e4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a65e8:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a65ec:	f90023f9 	str	x25, [sp,#64]
ffff8000113a65f0:	aa0003f4 	mov	x20, x0
ffff8000113a65f4:	aa1e03e0 	mov	x0, x30
ffff8000113a65f8:	f9002fa1 	str	x1, [x29,#88]
ffff8000113a65fc:	aa0203f7 	mov	x23, x2
ffff8000113a6600:	94000000 	bl	0 <_mcount>
			ffff8000113a6600: R_AARCH64_CALL26	_mcount
	sd = &per_cpu(softnet_data, cpu);
ffff8000113a6604:	f9402fa1 	ldr	x1, [x29,#88]
ffff8000113a6608:	90000000 	adrp	x0, 0 <__per_cpu_offset>
			ffff8000113a6608: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a660c:	91000000 	add	x0, x0, #0x0
			ffff8000113a660c: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a6610:	f861d813 	ldr	x19, [x0,w1,sxtw #3]
ffff8000113a6614:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6614: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a6618:	910002c0 	add	x0, x22, #0x0
			ffff8000113a6618: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a661c:	8b130013 	add	x19, x0, x19
	asm volatile(ALTERNATIVE(
ffff8000113a6620:	d53b4235 	mrs	x21, daif
	asm volatile(ALTERNATIVE(
ffff8000113a6624:	121902a0 	and	w0, w21, #0x80
	if (!arch_irqs_disabled_flags(flags))
ffff8000113a6628:	35000060 	cbnz	w0, ffff8000113a6634 <enqueue_to_backlog+0x5c>
	asm volatile(ALTERNATIVE(
ffff8000113a662c:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a6630:	d50342df 	msr	daifset, #0x2
ffff8000113a6634:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a6638:	91043260 	add	x0, x19, #0x10c
ffff8000113a663c:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113a6640:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a6644:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a6648:	4a030022 	eor	w2, w1, w3
ffff8000113a664c:	35000062 	cbnz	w2, ffff8000113a6658 <enqueue_to_backlog+0x80>
ffff8000113a6650:	88027c04 	stxr	w2, w4, [x0]
ffff8000113a6654:	35ffff82 	cbnz	w2, ffff8000113a6644 <enqueue_to_backlog+0x6c>
ffff8000113a6658:	35001001 	cbnz	w1, ffff8000113a6858 <enqueue_to_backlog+0x280>
	if (!netif_running(skb->dev))
ffff8000113a665c:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113a6660:	f9402000 	ldr	x0, [x0,#64]
ffff8000113a6664:	360000c0 	tbz	w0, #0, ffff8000113a667c <enqueue_to_backlog+0xa4>
	if (qlen <= netdev_max_backlog && !skb_flow_limit(skb, qlen)) {
ffff8000113a6668:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6668: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly+0x948
	qlen = skb_queue_len(&sd->input_pkt_queue);
ffff8000113a666c:	b9410a78 	ldr	w24, [x19,#264]
	if (qlen <= netdev_max_backlog && !skb_flow_limit(skb, qlen)) {
ffff8000113a6670:	b9400000 	ldr	w0, [x0]
			ffff8000113a6670: R_AARCH64_LDST32_ABS_LO12_NC	.data..read_mostly+0x948
ffff8000113a6674:	6b00031f 	cmp	w24, w0
ffff8000113a6678:	54000309 	b.ls	ffff8000113a66d8 <enqueue_to_backlog+0x100>
	sd->dropped++;
ffff8000113a667c:	b940f260 	ldr	w0, [x19,#240]
	smp_store_release(&lock->locked, 0);
ffff8000113a6680:	91043273 	add	x19, x19, #0x10c
ffff8000113a6684:	11000400 	add	w0, w0, #0x1
ffff8000113a6688:	b81e4260 	stur	w0, [x19,#-28]
ffff8000113a668c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a6690:	089ffe60 	stlrb	w0, [x19]
	asm volatile(ALTERNATIVE(
ffff8000113a6694:	d51b4235 	msr	daif, x21
	atomic_long_inc(&skb->dev->rx_dropped);
ffff8000113a6698:	f9400a81 	ldr	x1, [x20,#16]
ATOMIC64_OPS(add, add, I)
ffff8000113a669c:	91070024 	add	x4, x1, #0x1c0
ffff8000113a66a0:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a66a4:	c85f7c80 	ldxr	x0, [x4]
ffff8000113a66a8:	91000400 	add	x0, x0, #0x1
ffff8000113a66ac:	c8027c80 	stxr	w2, x0, [x4]
ffff8000113a66b0:	35ffffa2 	cbnz	w2, ffff8000113a66a4 <enqueue_to_backlog+0xcc>
	kfree_skb(skb);
ffff8000113a66b4:	aa1403e0 	mov	x0, x20
ffff8000113a66b8:	94000000 	bl	0 <kfree_skb>
			ffff8000113a66b8: R_AARCH64_CALL26	kfree_skb
}
ffff8000113a66bc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a66c0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a66c4:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a66c8:	f94023f9 	ldr	x25, [sp,#64]
	return NET_RX_DROP;
ffff8000113a66cc:	52800020 	mov	w0, #0x1                   	// #1
}
ffff8000113a66d0:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a66d4:	d65f03c0 	ret
	if (qlen < (netdev_max_backlog >> 1))
ffff8000113a66d8:	6b80071f 	cmp	w24, w0, asr #1
ffff8000113a66dc:	540003c2 	b.cs	ffff8000113a6754 <enqueue_to_backlog+0x17c>
		if (qlen) {
ffff8000113a66e0:	350000b8 	cbnz	w24, ffff8000113a66f4 <enqueue_to_backlog+0x11c>
	unsigned long old = *p;
ffff8000113a66e4:	f9409260 	ldr	x0, [x19,#288]
	*p = old | mask;
ffff8000113a66e8:	b2400001 	orr	x1, x0, #0x1
ffff8000113a66ec:	f9009261 	str	x1, [x19,#288]
		if (!__test_and_set_bit(NAPI_STATE_SCHED, &sd->backlog.state)) {
ffff8000113a66f0:	360007a0 	tbz	w0, #0, ffff8000113a67e4 <enqueue_to_backlog+0x20c>
	__skb_insert(newsk, next->prev, next, list);
ffff8000113a66f4:	f9408260 	ldr	x0, [x19,#256]
ffff8000113a66f8:	9103e261 	add	x1, x19, #0xf8
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a66fc:	f9000281 	str	x1, [x20]
ffff8000113a6700:	f9000680 	str	x0, [x20,#8]
ffff8000113a6704:	f9008274 	str	x20, [x19,#256]
ffff8000113a6708:	f9000014 	str	x20, [x0]
	list->qlen++;
ffff8000113a670c:	b9410a61 	ldr	w1, [x19,#264]
	*qtail = ++sd->input_queue_tail;
ffff8000113a6710:	b940ee60 	ldr	w0, [x19,#236]
ffff8000113a6714:	11000421 	add	w1, w1, #0x1
ffff8000113a6718:	11000400 	add	w0, w0, #0x1
ffff8000113a671c:	b900ee60 	str	w0, [x19,#236]
ffff8000113a6720:	b9010a61 	str	w1, [x19,#264]
ffff8000113a6724:	b90002e0 	str	w0, [x23]
ffff8000113a6728:	91043273 	add	x19, x19, #0x10c
ffff8000113a672c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a6730:	089ffe60 	stlrb	w0, [x19]
ffff8000113a6734:	d51b4235 	msr	daif, x21
}
ffff8000113a6738:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a673c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a6740:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a6744:	f94023f9 	ldr	x25, [sp,#64]
			return NET_RX_SUCCESS;
ffff8000113a6748:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a674c:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a6750:	d65f03c0 	ret
	sd = this_cpu_ptr(&softnet_data);
ffff8000113a6754:	910002c0 	add	x0, x22, #0x0
			ffff8000113a6754: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a6758:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a675c:	8b000020 	add	x0, x1, x0
	__READ_ONCE_SIZE;
ffff8000113a6760:	f9402019 	ldr	x25, [x0,#64]
	if (fl) {
ffff8000113a6764:	b4000379 	cbz	x25, ffff8000113a67d0 <enqueue_to_backlog+0x1f8>
	if (!skb->l4_hash && !skb->sw_hash)
ffff8000113a6768:	39420680 	ldrb	w0, [x20,#129]
ffff8000113a676c:	12000400 	and	w0, w0, #0x3
ffff8000113a6770:	34000500 	cbz	w0, ffff8000113a6810 <enqueue_to_backlog+0x238>
		old_flow = fl->history[fl->history_head];
ffff8000113a6774:	b9400f23 	ldr	w3, [x25,#12]
		new_flow = skb_get_hash(skb) & (fl->num_buckets - 1);
ffff8000113a6778:	b9400b21 	ldr	w1, [x25,#8]
ffff8000113a677c:	b9409684 	ldr	w4, [x20,#148]
ffff8000113a6780:	8b234722 	add	x2, x25, w3, uxtw #1
ffff8000113a6784:	51000421 	sub	w1, w1, #0x1
		old_flow = fl->history[fl->history_head];
ffff8000113a6788:	79402040 	ldrh	w0, [x2,#16]
		new_flow = skb_get_hash(skb) & (fl->num_buckets - 1);
ffff8000113a678c:	0a040021 	and	w1, w1, w4
		fl->history_head++;
ffff8000113a6790:	11000463 	add	w3, w3, #0x1
		fl->history[fl->history_head] = new_flow;
ffff8000113a6794:	79002041 	strh	w1, [x2,#16]
		fl->history_head &= FLOW_LIMIT_HISTORY - 1;
ffff8000113a6798:	12001863 	and	w3, w3, #0x7f
ffff8000113a679c:	b9000f23 	str	w3, [x25,#12]
		if (likely(fl->buckets[old_flow]))
ffff8000113a67a0:	8b202320 	add	x0, x25, w0, uxth
ffff8000113a67a4:	39444002 	ldrb	w2, [x0,#272]
ffff8000113a67a8:	34000062 	cbz	w2, ffff8000113a67b4 <enqueue_to_backlog+0x1dc>
			fl->buckets[old_flow]--;
ffff8000113a67ac:	51000442 	sub	w2, w2, #0x1
ffff8000113a67b0:	39044002 	strb	w2, [x0,#272]
		if (++fl->buckets[new_flow] > (FLOW_LIMIT_HISTORY >> 1)) {
ffff8000113a67b4:	8b214321 	add	x1, x25, w1, uxtw
ffff8000113a67b8:	39444020 	ldrb	w0, [x1,#272]
ffff8000113a67bc:	11000400 	add	w0, w0, #0x1
ffff8000113a67c0:	53001c00 	uxtb	w0, w0
ffff8000113a67c4:	39044020 	strb	w0, [x1,#272]
ffff8000113a67c8:	7101001f 	cmp	w0, #0x40
ffff8000113a67cc:	54000048 	b.hi	ffff8000113a67d4 <enqueue_to_backlog+0x1fc>
	preempt_disable();
}

static inline void __rcu_read_unlock(void)
{
	preempt_enable();
ffff8000113a67d0:	17ffffc4 	b	ffff8000113a66e0 <enqueue_to_backlog+0x108>
			fl->count++;
ffff8000113a67d4:	f9400320 	ldr	x0, [x25]
ffff8000113a67d8:	91000400 	add	x0, x0, #0x1
ffff8000113a67dc:	f9000320 	str	x0, [x25]
ffff8000113a67e0:	17ffffa7 	b	ffff8000113a667c <enqueue_to_backlog+0xa4>
	struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
ffff8000113a67e4:	910002d6 	add	x22, x22, #0x0
			ffff8000113a67e4: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a67e8:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a67ec:	8b160016 	add	x22, x0, x22
	if (sd != mysd) {
ffff8000113a67f0:	eb16027f 	cmp	x19, x22
ffff8000113a67f4:	54000140 	b.eq	ffff8000113a681c <enqueue_to_backlog+0x244>
		sd->rps_ipi_next = mysd->rps_ipi_list;
ffff8000113a67f8:	f9401ec1 	ldr	x1, [x22,#56]
		__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a67fc:	52800060 	mov	w0, #0x3                   	// #3
		sd->rps_ipi_next = mysd->rps_ipi_list;
ffff8000113a6800:	f9007261 	str	x1, [x19,#224]
		mysd->rps_ipi_list = sd;
ffff8000113a6804:	f9001ed3 	str	x19, [x22,#56]
		__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a6808:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a6808: R_AARCH64_CALL26	__raise_softirq_irqoff
ffff8000113a680c:	17ffffba 	b	ffff8000113a66f4 <enqueue_to_backlog+0x11c>
		__skb_get_hash(skb);
ffff8000113a6810:	aa1403e0 	mov	x0, x20
ffff8000113a6814:	94000000 	bl	0 <__skb_get_hash>
			ffff8000113a6814: R_AARCH64_CALL26	__skb_get_hash
ffff8000113a6818:	17ffffd7 	b	ffff8000113a6774 <enqueue_to_backlog+0x19c>
	__list_add(new, head->prev, head);
ffff8000113a681c:	f9400678 	ldr	x24, [x19,#8]
	list_add_tail(&napi->poll_list, &sd->poll_list);
ffff8000113a6820:	91044276 	add	x22, x19, #0x110
	if (!__list_add_valid(new, prev, next))
ffff8000113a6824:	aa1603e0 	mov	x0, x22
ffff8000113a6828:	aa1803e1 	mov	x1, x24
ffff8000113a682c:	aa1303e2 	mov	x2, x19
ffff8000113a6830:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a6830: R_AARCH64_CALL26	__list_add_valid
ffff8000113a6834:	53001c00 	uxtb	w0, w0
ffff8000113a6838:	340000a0 	cbz	w0, ffff8000113a684c <enqueue_to_backlog+0x274>
	next->prev = new;
ffff8000113a683c:	f9000676 	str	x22, [x19,#8]
	new->next = next;
ffff8000113a6840:	f9008a73 	str	x19, [x19,#272]
	new->prev = prev;
ffff8000113a6844:	f90006d8 	str	x24, [x22,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a6848:	f9000316 	str	x22, [x24]
	__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a684c:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113a6850:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a6850: R_AARCH64_CALL26	__raise_softirq_irqoff
ffff8000113a6854:	17ffffa8 	b	ffff8000113a66f4 <enqueue_to_backlog+0x11c>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a6858:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a6858: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a685c:	17ffff80 	b	ffff8000113a665c <enqueue_to_backlog+0x84>

ffff8000113a6860 <netif_rx_internal>:
{
ffff8000113a6860:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a6864:	910003fd 	mov	x29, sp
ffff8000113a6868:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a686c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a6870:	aa0003f4 	mov	x20, x0
ffff8000113a6874:	aa1e03e0 	mov	x0, x30
ffff8000113a6878:	94000000 	bl	0 <_mcount>
			ffff8000113a6878: R_AARCH64_CALL26	_mcount
ffff8000113a687c:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a687c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a6880:	f94002a0 	ldr	x0, [x21]
			ffff8000113a6880: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a6884:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6884: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a6888:	f90027a0 	str	x0, [x29,#72]
	__READ_ONCE_SIZE;
ffff8000113a688c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a688c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a6890:	91000000 	add	x0, x0, #0x0
			ffff8000113a6890: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a6894:	b9434800 	ldr	w0, [x0,#840]
	net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113a6898:	6b1f001f 	cmp	w0, wzr
ffff8000113a689c:	5400078c 	b.gt	ffff8000113a698c <netif_rx_internal+0x12c>
ffff8000113a68a0:	90000000 	adrp	x0, 0 <__tracepoint_netif_rx>
			ffff8000113a68a0: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_rx
ffff8000113a68a4:	91000000 	add	x0, x0, #0x0
			ffff8000113a68a4: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_rx
ffff8000113a68a8:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a68ac:	6b1f003f 	cmp	w1, wzr
ffff8000113a68b0:	5400044c 	b.gt	ffff8000113a6938 <netif_rx_internal+0xd8>
ffff8000113a68b4:	910002d6 	add	x22, x22, #0x0
			ffff8000113a68b4: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a68b8:	b94952c0 	ldr	w0, [x22,#2384]
	if (static_branch_unlikely(&rps_needed)) {
ffff8000113a68bc:	6b1f001f 	cmp	w0, wzr
ffff8000113a68c0:	5400022c 	b.gt	ffff8000113a6904 <netif_rx_internal+0xa4>
		ret = enqueue_to_backlog(skb, get_cpu(), &qtail);
ffff8000113a68c4:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113a68c4: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a68c8:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a68cc:	91000000 	add	x0, x0, #0x0
			ffff8000113a68cc: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a68d0:	b8606821 	ldr	w1, [x1,x0]
ffff8000113a68d4:	910103a2 	add	x2, x29, #0x40
ffff8000113a68d8:	aa1403e0 	mov	x0, x20
ffff8000113a68dc:	97ffff3f 	bl	ffff8000113a65d8 <enqueue_to_backlog>
}
ffff8000113a68e0:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113a68e4:	f94002a1 	ldr	x1, [x21]
			ffff8000113a68e4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a68e8:	eb01005f 	cmp	x2, x1
ffff8000113a68ec:	540000a1 	b.ne	ffff8000113a6900 <netif_rx_internal+0xa0>
ffff8000113a68f0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a68f4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a68f8:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a68fc:	d65f03c0 	ret
ffff8000113a6900:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a6900: R_AARCH64_CALL26	__stack_chk_fail
		struct rps_dev_flow voidflow, *rflow = &voidflow;
ffff8000113a6904:	910143a2 	add	x2, x29, #0x50
ffff8000113a6908:	9100e3a0 	add	x0, x29, #0x38
ffff8000113a690c:	f81f0c40 	str	x0, [x2,#-16]!
		cpu = get_rps_cpu(skb->dev, skb, &rflow);
ffff8000113a6910:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113a6914:	aa1403e1 	mov	x1, x20
ffff8000113a6918:	97ffe7dc 	bl	ffff8000113a0888 <get_rps_cpu>
ffff8000113a691c:	2a0003e1 	mov	w1, w0
		if (cpu < 0)
ffff8000113a6920:	37f80461 	tbnz	w1, #31, ffff8000113a69ac <netif_rx_internal+0x14c>
		ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
ffff8000113a6924:	f94023a2 	ldr	x2, [x29,#64]
ffff8000113a6928:	aa1403e0 	mov	x0, x20
ffff8000113a692c:	91001042 	add	x2, x2, #0x4
ffff8000113a6930:	97ffff2a 	bl	ffff8000113a65d8 <enqueue_to_backlog>
		preempt_enable();
ffff8000113a6934:	17ffffeb 	b	ffff8000113a68e0 <netif_rx_internal+0x80>
	TP_PROTO(struct sk_buff *skb),

	TP_ARGS(skb)
);

DEFINE_EVENT(net_dev_template, netif_rx,
ffff8000113a6938:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6938: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a693c:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a6940:	91000021 	add	x1, x1, #0x0
			ffff8000113a6940: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6944:	b8616841 	ldr	w1, [x2,x1]
	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
ffff8000113a6948:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a694c:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a6950:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a6950: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6954:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a6958:	91000042 	add	x2, x2, #0x0
			ffff8000113a6958: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a695c:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a6960:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6964:	3607fa81 	tbz	w1, #0, ffff8000113a68b4 <netif_rx_internal+0x54>
ffff8000113a6968:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a696c:	b40000f3 	cbz	x19, ffff8000113a6988 <netif_rx_internal+0x128>
ffff8000113a6970:	f9400262 	ldr	x2, [x19]
ffff8000113a6974:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6978:	aa1403e1 	mov	x1, x20
ffff8000113a697c:	d63f0040 	blr	x2
ffff8000113a6980:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6984:	b5ffff82 	cbnz	x2, ffff8000113a6974 <netif_rx_internal+0x114>
ffff8000113a6988:	17ffffcb 	b	ffff8000113a68b4 <netif_rx_internal+0x54>
	net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113a698c:	910002c0 	add	x0, x22, #0x0
			ffff8000113a698c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a6990:	b9494c00 	ldr	w0, [x0,#2380]
ffff8000113a6994:	34fff860 	cbz	w0, ffff8000113a68a0 <netif_rx_internal+0x40>
ffff8000113a6998:	f9401280 	ldr	x0, [x20,#32]
ffff8000113a699c:	b5fff820 	cbnz	x0, ffff8000113a68a0 <netif_rx_internal+0x40>
ffff8000113a69a0:	94000000 	bl	0 <ktime_get_with_offset>
			ffff8000113a69a0: R_AARCH64_CALL26	ktime_get_with_offset
	skb->tstamp = ktime_get_real();
ffff8000113a69a4:	f9001280 	str	x0, [x20,#32]
ffff8000113a69a8:	17ffffbe 	b	ffff8000113a68a0 <netif_rx_internal+0x40>
			cpu = smp_processor_id();
ffff8000113a69ac:	90000013 	adrp	x19, 0 <cpu_number>
			ffff8000113a69ac: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a69b0:	97ffde73 	bl	ffff80001139e37c <__my_cpu_offset>
ffff8000113a69b4:	91000273 	add	x19, x19, #0x0
			ffff8000113a69b4: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a69b8:	b8736801 	ldr	w1, [x0,x19]
ffff8000113a69bc:	17ffffda 	b	ffff8000113a6924 <netif_rx_internal+0xc4>

ffff8000113a69c0 <dev_forward_skb>:
{
ffff8000113a69c0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a69c4:	910003fd 	mov	x29, sp
ffff8000113a69c8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a69cc:	aa0003f4 	mov	x20, x0
ffff8000113a69d0:	aa1e03e0 	mov	x0, x30
ffff8000113a69d4:	aa0103f3 	mov	x19, x1
ffff8000113a69d8:	94000000 	bl	0 <_mcount>
			ffff8000113a69d8: R_AARCH64_CALL26	_mcount
	return __dev_forward_skb(dev, skb) ?: netif_rx_internal(skb);
ffff8000113a69dc:	aa1403e0 	mov	x0, x20
ffff8000113a69e0:	aa1303e1 	mov	x1, x19
ffff8000113a69e4:	94000000 	bl	ffff8000113a2050 <__dev_forward_skb>
			ffff8000113a69e4: R_AARCH64_CALL26	__dev_forward_skb
ffff8000113a69e8:	35000060 	cbnz	w0, ffff8000113a69f4 <dev_forward_skb+0x34>
ffff8000113a69ec:	aa1303e0 	mov	x0, x19
ffff8000113a69f0:	97ffff9c 	bl	ffff8000113a6860 <netif_rx_internal>
}
ffff8000113a69f4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a69f8:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a69fc:	d65f03c0 	ret

ffff8000113a6a00 <netif_rx>:
{
ffff8000113a6a00:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a6a04:	910003fd 	mov	x29, sp
ffff8000113a6a08:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6a0c:	aa0003f4 	mov	x20, x0
ffff8000113a6a10:	aa1e03e0 	mov	x0, x30
ffff8000113a6a14:	94000000 	bl	0 <_mcount>
			ffff8000113a6a14: R_AARCH64_CALL26	_mcount
ffff8000113a6a18:	90000000 	adrp	x0, 0 <__tracepoint_netif_rx_entry>
			ffff8000113a6a18: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_rx_entry
ffff8000113a6a1c:	91000000 	add	x0, x0, #0x0
			ffff8000113a6a1c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_rx_entry
ffff8000113a6a20:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a6a24:	6b1f003f 	cmp	w1, wzr
ffff8000113a6a28:	540001ac 	b.gt	ffff8000113a6a5c <netif_rx+0x5c>
	ret = netif_rx_internal(skb);
ffff8000113a6a2c:	aa1403e0 	mov	x0, x20
ffff8000113a6a30:	97ffff8c 	bl	ffff8000113a6860 <netif_rx_internal>
ffff8000113a6a34:	2a0003f4 	mov	w20, w0
ffff8000113a6a38:	90000000 	adrp	x0, 0 <__tracepoint_netif_rx_exit>
			ffff8000113a6a38: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_rx_exit
ffff8000113a6a3c:	91000000 	add	x0, x0, #0x0
			ffff8000113a6a3c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_rx_exit
ffff8000113a6a40:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a6a44:	6b1f003f 	cmp	w1, wzr
ffff8000113a6a48:	5400034c 	b.gt	ffff8000113a6ab0 <netif_rx+0xb0>
}
ffff8000113a6a4c:	2a1403e0 	mov	w0, w20
ffff8000113a6a50:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6a54:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a6a58:	d65f03c0 	ret
	TP_PROTO(const struct sk_buff *skb),

	TP_ARGS(skb)
);

DEFINE_EVENT(net_dev_rx_verbose_template, netif_rx_entry,
ffff8000113a6a5c:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6a5c: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a6a60:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a6a64:	91000021 	add	x1, x1, #0x0
			ffff8000113a6a64: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6a68:	b8616841 	ldr	w1, [x2,x1]
ffff8000113a6a6c:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a6a70:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a6a74:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a6a74: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6a78:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a6a7c:	91000042 	add	x2, x2, #0x0
			ffff8000113a6a7c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a6a80:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a6a84:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6a88:	3607fd21 	tbz	w1, #0, ffff8000113a6a2c <netif_rx+0x2c>
ffff8000113a6a8c:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a6a90:	b40000f3 	cbz	x19, ffff8000113a6aac <netif_rx+0xac>
ffff8000113a6a94:	f9400262 	ldr	x2, [x19]
ffff8000113a6a98:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6a9c:	aa1403e1 	mov	x1, x20
ffff8000113a6aa0:	d63f0040 	blr	x2
ffff8000113a6aa4:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6aa8:	b5ffff82 	cbnz	x2, ffff8000113a6a98 <netif_rx+0x98>
ffff8000113a6aac:	17ffffe0 	b	ffff8000113a6a2c <netif_rx+0x2c>
	TP_PROTO(int ret),

	TP_ARGS(ret)
);

DEFINE_EVENT(net_dev_rx_exit_template, netif_rx_exit,
ffff8000113a6ab0:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6ab0: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a6ab4:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a6ab8:	91000021 	add	x1, x1, #0x0
			ffff8000113a6ab8: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6abc:	b8616841 	ldr	w1, [x2,x1]
ffff8000113a6ac0:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a6ac4:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a6ac8:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a6ac8: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6acc:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a6ad0:	91000042 	add	x2, x2, #0x0
			ffff8000113a6ad0: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a6ad4:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a6ad8:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6adc:	3607fb81 	tbz	w1, #0, ffff8000113a6a4c <netif_rx+0x4c>
ffff8000113a6ae0:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a6ae4:	b40000f3 	cbz	x19, ffff8000113a6b00 <netif_rx+0x100>
ffff8000113a6ae8:	f9400262 	ldr	x2, [x19]
ffff8000113a6aec:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6af0:	2a1403e1 	mov	w1, w20
ffff8000113a6af4:	d63f0040 	blr	x2
ffff8000113a6af8:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6afc:	b5ffff82 	cbnz	x2, ffff8000113a6aec <netif_rx+0xec>
ffff8000113a6b00:	2a1403e0 	mov	w0, w20
ffff8000113a6b04:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6b08:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a6b0c:	d65f03c0 	ret

ffff8000113a6b10 <netif_rx_ni>:
{
ffff8000113a6b10:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a6b14:	910003fd 	mov	x29, sp
ffff8000113a6b18:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6b1c:	aa0003f4 	mov	x20, x0
ffff8000113a6b20:	aa1e03e0 	mov	x0, x30
ffff8000113a6b24:	94000000 	bl	0 <_mcount>
			ffff8000113a6b24: R_AARCH64_CALL26	_mcount
ffff8000113a6b28:	90000000 	adrp	x0, 0 <__tracepoint_netif_rx_ni_entry>
			ffff8000113a6b28: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_rx_ni_entry
ffff8000113a6b2c:	91000000 	add	x0, x0, #0x0
			ffff8000113a6b2c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_rx_ni_entry
ffff8000113a6b30:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a6b34:	6b1f003f 	cmp	w1, wzr
ffff8000113a6b38:	5400026c 	b.gt	ffff8000113a6b84 <netif_rx_ni+0x74>
	err = netif_rx_internal(skb);
ffff8000113a6b3c:	aa1403e0 	mov	x0, x20
ffff8000113a6b40:	97ffff48 	bl	ffff8000113a6860 <netif_rx_internal>
ffff8000113a6b44:	2a0003f4 	mov	w20, w0
	if (local_softirq_pending())
ffff8000113a6b48:	90000000 	adrp	x0, 0 <irq_stat>
			ffff8000113a6b48: R_AARCH64_ADR_PREL_PG_HI21	irq_stat
ffff8000113a6b4c:	91000000 	add	x0, x0, #0x0
			ffff8000113a6b4c: R_AARCH64_ADD_ABS_LO12_NC	irq_stat
ffff8000113a6b50:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a6b54:	b8606820 	ldr	w0, [x1,x0]
ffff8000113a6b58:	34000040 	cbz	w0, ffff8000113a6b60 <netif_rx_ni+0x50>
		do_softirq();
ffff8000113a6b5c:	94000000 	bl	0 <do_softirq>
			ffff8000113a6b5c: R_AARCH64_CALL26	do_softirq
ffff8000113a6b60:	90000000 	adrp	x0, 0 <__tracepoint_netif_rx_ni_exit>
			ffff8000113a6b60: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_rx_ni_exit
ffff8000113a6b64:	91000000 	add	x0, x0, #0x0
			ffff8000113a6b64: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_rx_ni_exit
ffff8000113a6b68:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a6b6c:	6b1f003f 	cmp	w1, wzr
ffff8000113a6b70:	5400034c 	b.gt	ffff8000113a6bd8 <netif_rx_ni+0xc8>
}
ffff8000113a6b74:	2a1403e0 	mov	w0, w20
ffff8000113a6b78:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6b7c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a6b80:	d65f03c0 	ret
DEFINE_EVENT(net_dev_rx_verbose_template, netif_rx_ni_entry,
ffff8000113a6b84:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6b84: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a6b88:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a6b8c:	91000021 	add	x1, x1, #0x0
			ffff8000113a6b8c: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6b90:	b8616841 	ldr	w1, [x2,x1]
ffff8000113a6b94:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a6b98:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a6b9c:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a6b9c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6ba0:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a6ba4:	91000042 	add	x2, x2, #0x0
			ffff8000113a6ba4: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a6ba8:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a6bac:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6bb0:	3607fc61 	tbz	w1, #0, ffff8000113a6b3c <netif_rx_ni+0x2c>
ffff8000113a6bb4:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a6bb8:	b40000f3 	cbz	x19, ffff8000113a6bd4 <netif_rx_ni+0xc4>
ffff8000113a6bbc:	f9400262 	ldr	x2, [x19]
ffff8000113a6bc0:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6bc4:	aa1403e1 	mov	x1, x20
ffff8000113a6bc8:	d63f0040 	blr	x2
ffff8000113a6bcc:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6bd0:	b5ffff82 	cbnz	x2, ffff8000113a6bc0 <netif_rx_ni+0xb0>
ffff8000113a6bd4:	17ffffda 	b	ffff8000113a6b3c <netif_rx_ni+0x2c>
	TP_PROTO(int ret),

	TP_ARGS(ret)
);

DEFINE_EVENT(net_dev_rx_exit_template, netif_rx_ni_exit,
ffff8000113a6bd8:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6bd8: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a6bdc:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a6be0:	91000021 	add	x1, x1, #0x0
			ffff8000113a6be0: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6be4:	b8616841 	ldr	w1, [x2,x1]
ffff8000113a6be8:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a6bec:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a6bf0:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a6bf0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a6bf4:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a6bf8:	91000042 	add	x2, x2, #0x0
			ffff8000113a6bf8: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a6bfc:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a6c00:	9ac12441 	lsr	x1, x2, x1
ffff8000113a6c04:	3607fb81 	tbz	w1, #0, ffff8000113a6b74 <netif_rx_ni+0x64>
ffff8000113a6c08:	f9401013 	ldr	x19, [x0,#32]
ffff8000113a6c0c:	b40000f3 	cbz	x19, ffff8000113a6c28 <netif_rx_ni+0x118>
ffff8000113a6c10:	f9400262 	ldr	x2, [x19]
ffff8000113a6c14:	f9400660 	ldr	x0, [x19,#8]
ffff8000113a6c18:	2a1403e1 	mov	w1, w20
ffff8000113a6c1c:	d63f0040 	blr	x2
ffff8000113a6c20:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113a6c24:	b5ffff82 	cbnz	x2, ffff8000113a6c14 <netif_rx_ni+0x104>
ffff8000113a6c28:	2a1403e0 	mov	w0, w20
ffff8000113a6c2c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6c30:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a6c34:	d65f03c0 	ret

ffff8000113a6c38 <dev_loopback_xmit>:
{
ffff8000113a6c38:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a6c3c:	910003fd 	mov	x29, sp
ffff8000113a6c40:	aa1e03e0 	mov	x0, x30
ffff8000113a6c44:	f9000fa2 	str	x2, [x29,#24]
ffff8000113a6c48:	94000000 	bl	0 <_mcount>
			ffff8000113a6c48: R_AARCH64_CALL26	_mcount
	skb->mac_header = skb->data - skb->head;
ffff8000113a6c4c:	f9400fa2 	ldr	x2, [x29,#24]
ffff8000113a6c50:	f9406044 	ldr	x4, [x2,#192]
	return skb->head + skb->network_header;
ffff8000113a6c54:	79416843 	ldrh	w3, [x2,#180]
	skb->mac_header = skb->data - skb->head;
ffff8000113a6c58:	f9406440 	ldr	x0, [x2,#200]
	skb->len -= len;
ffff8000113a6c5c:	b9407041 	ldr	w1, [x2,#112]
	return skb->head + skb->network_header;
ffff8000113a6c60:	8b030083 	add	x3, x4, x3
	return skb_network_header(skb) - skb->data;
ffff8000113a6c64:	cb000063 	sub	x3, x3, x0
	BUG_ON(skb->len < skb->data_len);
ffff8000113a6c68:	b9407445 	ldr	w5, [x2,#116]
	skb->len -= len;
ffff8000113a6c6c:	4b030021 	sub	w1, w1, w3
	skb->mac_header = skb->data - skb->head;
ffff8000113a6c70:	cb040004 	sub	x4, x0, x4
ffff8000113a6c74:	79016c44 	strh	w4, [x2,#182]
	skb->len -= len;
ffff8000113a6c78:	b9007041 	str	w1, [x2,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113a6c7c:	6b05003f 	cmp	w1, w5
ffff8000113a6c80:	54000683 	b.cc	ffff8000113a6d50 <dev_loopback_xmit+0x118>
	skb->pkt_type = PACKET_LOOPBACK;
ffff8000113a6c84:	39420041 	ldrb	w1, [x2,#128]
ffff8000113a6c88:	528000a4 	mov	w4, #0x5                   	// #5
	return skb->data += len;
ffff8000113a6c8c:	8b234000 	add	x0, x0, w3, uxtw
ffff8000113a6c90:	33000881 	bfxil	w1, w4, #0, #3
	skb->ip_summed = CHECKSUM_UNNECESSARY;
ffff8000113a6c94:	52800023 	mov	w3, #0x1                   	// #1
int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *skb)
ffff8000113a6c98:	f9402c44 	ldr	x4, [x2,#88]
	skb->ip_summed = CHECKSUM_UNNECESSARY;
ffff8000113a6c9c:	331b0461 	bfi	w1, w3, #5, #2
ffff8000113a6ca0:	f9006440 	str	x0, [x2,#200]
ffff8000113a6ca4:	39020041 	strb	w1, [x2,#128]
	return (struct dst_entry *)(skb->_skb_refdst & SKB_DST_PTRMASK);
ffff8000113a6ca8:	927ff880 	and	x0, x4, #0xfffffffffffffffe
	WARN_ON(!skb_dst(skb));
ffff8000113a6cac:	b40004e0 	cbz	x0, ffff8000113a6d48 <dev_loopback_xmit+0x110>
	return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb);
ffff8000113a6cb0:	36000204 	tbz	w4, #0, ffff8000113a6cf0 <dev_loopback_xmit+0xb8>
ffff8000113a6cb4:	b9404003 	ldr	w3, [x0,#64]
		if (unlikely(c == u))
ffff8000113a6cb8:	34000263 	cbz	w3, ffff8000113a6d04 <dev_loopback_xmit+0xcc>
ffff8000113a6cbc:	91010001 	add	x1, x0, #0x40
ffff8000113a6cc0:	2a0303e4 	mov	w4, w3
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a6cc4:	11000466 	add	w6, w3, #0x1
ffff8000113a6cc8:	f9800031 	prfm	pstl1strm, [x1]
ffff8000113a6ccc:	885f7c25 	ldxr	w5, [x1]
ffff8000113a6cd0:	4a0400a7 	eor	w7, w5, w4
ffff8000113a6cd4:	35000087 	cbnz	w7, ffff8000113a6ce4 <dev_loopback_xmit+0xac>
ffff8000113a6cd8:	8807fc26 	stlxr	w7, w6, [x1]
ffff8000113a6cdc:	35ffff87 	cbnz	w7, ffff8000113a6ccc <dev_loopback_xmit+0x94>
ffff8000113a6ce0:	d5033bbf 	dmb	ish
	if (unlikely(r != o))
ffff8000113a6ce4:	6b05007f 	cmp	w3, w5
ffff8000113a6ce8:	54000141 	b.ne	ffff8000113a6d10 <dev_loopback_xmit+0xd8>

		WARN_ON(!rcu_read_lock_held());
		if (!dst_hold_safe(dst))
			dst = NULL;

		skb->_skb_refdst = (unsigned long)dst;
ffff8000113a6cec:	f9002c40 	str	x0, [x2,#88]
	netif_rx_ni(skb);
ffff8000113a6cf0:	aa0203e0 	mov	x0, x2
ffff8000113a6cf4:	94000000 	bl	ffff8000113a6b10 <netif_rx_ni>
			ffff8000113a6cf4: R_AARCH64_CALL26	netif_rx_ni
}
ffff8000113a6cf8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a6cfc:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a6d00:	d65f03c0 	ret
ffff8000113a6d04:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a6d08:	f9002c40 	str	x0, [x2,#88]
ffff8000113a6d0c:	17fffff9 	b	ffff8000113a6cf0 <dev_loopback_xmit+0xb8>
		if (unlikely(c == u))
ffff8000113a6d10:	34ffffa5 	cbz	w5, ffff8000113a6d04 <dev_loopback_xmit+0xcc>
ffff8000113a6d14:	2a0503e3 	mov	w3, w5
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a6d18:	110004a4 	add	w4, w5, #0x1
__CMPXCHG_CASE(w,  ,  mb_, 32, dmb ish,  , l, "memory", K)
ffff8000113a6d1c:	f9800031 	prfm	pstl1strm, [x1]
ffff8000113a6d20:	885f7c26 	ldxr	w6, [x1]
ffff8000113a6d24:	4a0300c7 	eor	w7, w6, w3
ffff8000113a6d28:	35000087 	cbnz	w7, ffff8000113a6d38 <dev_loopback_xmit+0x100>
ffff8000113a6d2c:	8807fc24 	stlxr	w7, w4, [x1]
ffff8000113a6d30:	35ffff87 	cbnz	w7, ffff8000113a6d20 <dev_loopback_xmit+0xe8>
ffff8000113a6d34:	d5033bbf 	dmb	ish
	if (unlikely(r != o))
ffff8000113a6d38:	6b0600bf 	cmp	w5, w6
ffff8000113a6d3c:	54fffd80 	b.eq	ffff8000113a6cec <dev_loopback_xmit+0xb4>
ffff8000113a6d40:	2a0603e5 	mov	w5, w6
ffff8000113a6d44:	17fffff3 	b	ffff8000113a6d10 <dev_loopback_xmit+0xd8>
	WARN_ON(!skb_dst(skb));
ffff8000113a6d48:	d4210000 	brk	#0x800
ffff8000113a6d4c:	17ffffe9 	b	ffff8000113a6cf0 <dev_loopback_xmit+0xb8>
ffff8000113a6d50:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6d50: R_AARCH64_CALL26	.text.unlikely+0xa0

ffff8000113a6d54 <dev_cpu_dead>:
{
ffff8000113a6d54:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a6d58:	910003fd 	mov	x29, sp
ffff8000113a6d5c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6d60:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a6d64:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a6d68:	2a0003f3 	mov	w19, w0
ffff8000113a6d6c:	aa1e03e0 	mov	x0, x30
ffff8000113a6d70:	94000000 	bl	0 <_mcount>
			ffff8000113a6d70: R_AARCH64_CALL26	_mcount
	asm volatile(ALTERNATIVE(
ffff8000113a6d74:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113a6d78:	d50342df 	msr	daifset, #0x2
	cpu = smp_processor_id();
ffff8000113a6d7c:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a6d7c: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a6d80:	91000021 	add	x1, x1, #0x0
			ffff8000113a6d80: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a6d84:	d538d080 	mrs	x0, tpidr_el1
	sd = &per_cpu(softnet_data, cpu);
ffff8000113a6d88:	b8616800 	ldr	w0, [x0,x1]
ffff8000113a6d8c:	90000001 	adrp	x1, 0 <__per_cpu_offset>
			ffff8000113a6d8c: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a6d90:	91000021 	add	x1, x1, #0x0
			ffff8000113a6d90: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a6d94:	f8607835 	ldr	x21, [x1,x0,lsl #3]
ffff8000113a6d98:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6d98: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a6d9c:	91000294 	add	x20, x20, #0x0
			ffff8000113a6d9c: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a6da0:	8b150295 	add	x21, x20, x21
	oldsd = &per_cpu(softnet_data, oldcpu);
ffff8000113a6da4:	f8735820 	ldr	x0, [x1,w19,uxtw #3]
	while (*list_skb)
ffff8000113a6da8:	f9402ea1 	ldr	x1, [x21,#88]
	oldsd = &per_cpu(softnet_data, oldcpu);
ffff8000113a6dac:	8b000294 	add	x20, x20, x0
	while (*list_skb)
ffff8000113a6db0:	b5000061 	cbnz	x1, ffff8000113a6dbc <dev_cpu_dead+0x68>
ffff8000113a6db4:	14000060 	b	ffff8000113a6f34 <dev_cpu_dead+0x1e0>
ffff8000113a6db8:	aa0003e1 	mov	x1, x0
ffff8000113a6dbc:	f9400020 	ldr	x0, [x1]
ffff8000113a6dc0:	b5ffffc0 	cbnz	x0, ffff8000113a6db8 <dev_cpu_dead+0x64>
	*list_skb = oldsd->completion_queue;
ffff8000113a6dc4:	f9402e80 	ldr	x0, [x20,#88]
ffff8000113a6dc8:	f9000020 	str	x0, [x1]
	if (oldsd->output_queue) {
ffff8000113a6dcc:	f9402681 	ldr	x1, [x20,#72]
	oldsd->completion_queue = NULL;
ffff8000113a6dd0:	f9002e9f 	str	xzr, [x20,#88]
	if (oldsd->output_queue) {
ffff8000113a6dd4:	b4000101 	cbz	x1, ffff8000113a6df4 <dev_cpu_dead+0xa0>
		*sd->output_queue_tailp = oldsd->output_queue;
ffff8000113a6dd8:	f9402aa2 	ldr	x2, [x21,#80]
		oldsd->output_queue = NULL;
ffff8000113a6ddc:	aa1403e0 	mov	x0, x20
		*sd->output_queue_tailp = oldsd->output_queue;
ffff8000113a6de0:	f9000041 	str	x1, [x2]
		sd->output_queue_tailp = oldsd->output_queue_tailp;
ffff8000113a6de4:	f9402a81 	ldr	x1, [x20,#80]
ffff8000113a6de8:	f9002aa1 	str	x1, [x21,#80]
		oldsd->output_queue = NULL;
ffff8000113a6dec:	f8048c1f 	str	xzr, [x0,#72]!
		oldsd->output_queue_tailp = &oldsd->output_queue;
ffff8000113a6df0:	f9002a80 	str	x0, [x20,#80]
		if (napi->poll == process_backlog)
ffff8000113a6df4:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6df4: R_AARCH64_ADR_PREL_PG_HI21	.text+0xd00c
ffff8000113a6df8:	910002f7 	add	x23, x23, #0x0
			ffff8000113a6df8: R_AARCH64_ADD_ABS_LO12_NC	.text+0xd00c
ffff8000113a6dfc:	f9400280 	ldr	x0, [x20]
	while (!list_empty(&oldsd->poll_list)) {
ffff8000113a6e00:	eb00029f 	cmp	x20, x0
ffff8000113a6e04:	540003e0 	b.eq	ffff8000113a6e80 <dev_cpu_dead+0x12c>
		struct napi_struct *napi = list_first_entry(&oldsd->poll_list,
ffff8000113a6e08:	f9400293 	ldr	x19, [x20]
	if (!__list_del_entry_valid(entry))
ffff8000113a6e0c:	aa1303e0 	mov	x0, x19
ffff8000113a6e10:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113a6e10: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113a6e14:	53001c01 	uxtb	w1, w0
	if (!__list_add_valid(new, prev, next))
ffff8000113a6e18:	aa1503e2 	mov	x2, x21
ffff8000113a6e1c:	aa1303e0 	mov	x0, x19
	if (!__list_del_entry_valid(entry))
ffff8000113a6e20:	340000a1 	cbz	w1, ffff8000113a6e34 <dev_cpu_dead+0xe0>
	__list_del(entry->prev, entry->next);
ffff8000113a6e24:	f9400661 	ldr	x1, [x19,#8]
ffff8000113a6e28:	f9400263 	ldr	x3, [x19]
	next->prev = prev;
ffff8000113a6e2c:	f9000461 	str	x1, [x3,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a6e30:	f9000023 	str	x3, [x1]
		if (napi->poll == process_backlog)
ffff8000113a6e34:	f9401661 	ldr	x1, [x19,#40]
ffff8000113a6e38:	f9000273 	str	x19, [x19]
	list->prev = list;
ffff8000113a6e3c:	f9000673 	str	x19, [x19,#8]
ffff8000113a6e40:	eb17003f 	cmp	x1, x23
ffff8000113a6e44:	54000740 	b.eq	ffff8000113a6f2c <dev_cpu_dead+0x1d8>
	__list_add(new, head->prev, head);
ffff8000113a6e48:	f94006b6 	ldr	x22, [x21,#8]
	if (!__list_add_valid(new, prev, next))
ffff8000113a6e4c:	aa1603e1 	mov	x1, x22
ffff8000113a6e50:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a6e50: R_AARCH64_CALL26	__list_add_valid
ffff8000113a6e54:	53001c01 	uxtb	w1, w0
	__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113a6e58:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113a6e5c:	340000a1 	cbz	w1, ffff8000113a6e70 <dev_cpu_dead+0x11c>
	next->prev = new;
ffff8000113a6e60:	f90006b3 	str	x19, [x21,#8]
	new->next = next;
ffff8000113a6e64:	f9000275 	str	x21, [x19]
	new->prev = prev;
ffff8000113a6e68:	f9000676 	str	x22, [x19,#8]
ffff8000113a6e6c:	f90002d3 	str	x19, [x22]
ffff8000113a6e70:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113a6e70: R_AARCH64_CALL26	__raise_softirq_irqoff
	__READ_ONCE_SIZE;
ffff8000113a6e74:	f9400280 	ldr	x0, [x20]
	while (!list_empty(&oldsd->poll_list)) {
ffff8000113a6e78:	eb00029f 	cmp	x20, x0
ffff8000113a6e7c:	54fffc61 	b.ne	ffff8000113a6e08 <dev_cpu_dead+0xb4>
	raise_softirq_irqoff(NET_TX_SOFTIRQ);
ffff8000113a6e80:	52800040 	mov	w0, #0x2                   	// #2
ffff8000113a6e84:	94000000 	bl	0 <raise_softirq_irqoff>
			ffff8000113a6e84: R_AARCH64_CALL26	raise_softirq_irqoff
	asm volatile(ALTERNATIVE(
ffff8000113a6e88:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113a6e8c:	d50342ff 	msr	daifclr, #0x2
	remsd = oldsd->rps_ipi_list;
ffff8000113a6e90:	f9401e80 	ldr	x0, [x20,#56]
	oldsd->rps_ipi_list = NULL;
ffff8000113a6e94:	f9001e9f 	str	xzr, [x20,#56]
	net_rps_send_ipi(remsd);
ffff8000113a6e98:	97ffe964 	bl	ffff8000113a1428 <net_rps_send_ipi>
	struct sk_buff *skb = list_->next;
ffff8000113a6e9c:	f9400a81 	ldr	x1, [x20,#16]
	while ((skb = __skb_dequeue(&oldsd->process_queue))) {
ffff8000113a6ea0:	91004293 	add	x19, x20, #0x10
	if (skb == (struct sk_buff *)list_)
ffff8000113a6ea4:	eb01027f 	cmp	x19, x1
ffff8000113a6ea8:	54000260 	b.eq	ffff8000113a6ef4 <dev_cpu_dead+0x1a0>
	if (skb)
ffff8000113a6eac:	b4000241 	cbz	x1, ffff8000113a6ef4 <dev_cpu_dead+0x1a0>
	WRITE_ONCE(list->qlen, list->qlen - 1);
ffff8000113a6eb0:	b9401262 	ldr	w2, [x19,#16]
		netif_rx_ni(skb);
ffff8000113a6eb4:	aa0103e0 	mov	x0, x1
ffff8000113a6eb8:	51000442 	sub	w2, w2, #0x1
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a6ebc:	b9002282 	str	w2, [x20,#32]
	next	   = skb->next;
ffff8000113a6ec0:	f9400023 	ldr	x3, [x1]
	prev	   = skb->prev;
ffff8000113a6ec4:	f9400422 	ldr	x2, [x1,#8]
	skb->next  = skb->prev = NULL;
ffff8000113a6ec8:	f900003f 	str	xzr, [x1]
ffff8000113a6ecc:	f900043f 	str	xzr, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a6ed0:	f9000462 	str	x2, [x3,#8]
ffff8000113a6ed4:	f9000043 	str	x3, [x2]
ffff8000113a6ed8:	94000000 	bl	ffff8000113a6b10 <netif_rx_ni>
			ffff8000113a6ed8: R_AARCH64_CALL26	netif_rx_ni
	sd->input_queue_head++;
ffff8000113a6edc:	b9408280 	ldr	w0, [x20,#128]
ffff8000113a6ee0:	11000400 	add	w0, w0, #0x1
ffff8000113a6ee4:	b9008280 	str	w0, [x20,#128]
	struct sk_buff *skb = list_->next;
ffff8000113a6ee8:	f9400261 	ldr	x1, [x19]
	if (skb == (struct sk_buff *)list_)
ffff8000113a6eec:	eb13003f 	cmp	x1, x19
ffff8000113a6ef0:	54fffde1 	b.ne	ffff8000113a6eac <dev_cpu_dead+0x158>
ffff8000113a6ef4:	9103e293 	add	x19, x20, #0xf8
ffff8000113a6ef8:	14000005 	b	ffff8000113a6f0c <dev_cpu_dead+0x1b8>
		netif_rx_ni(skb);
ffff8000113a6efc:	94000000 	bl	ffff8000113a6b10 <netif_rx_ni>
			ffff8000113a6efc: R_AARCH64_CALL26	netif_rx_ni
ffff8000113a6f00:	b9408281 	ldr	w1, [x20,#128]
ffff8000113a6f04:	11000421 	add	w1, w1, #0x1
ffff8000113a6f08:	b9008281 	str	w1, [x20,#128]
	while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) {
ffff8000113a6f0c:	aa1303e0 	mov	x0, x19
ffff8000113a6f10:	94000000 	bl	0 <skb_dequeue>
			ffff8000113a6f10: R_AARCH64_CALL26	skb_dequeue
ffff8000113a6f14:	b5ffff40 	cbnz	x0, ffff8000113a6efc <dev_cpu_dead+0x1a8>
}
ffff8000113a6f18:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6f1c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a6f20:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a6f24:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a6f28:	d65f03c0 	ret
			napi->state = 0;
ffff8000113a6f2c:	f9000a7f 	str	xzr, [x19,#16]
ffff8000113a6f30:	17ffffb3 	b	ffff8000113a6dfc <dev_cpu_dead+0xa8>
	list_skb = &sd->completion_queue;
ffff8000113a6f34:	910162a1 	add	x1, x21, #0x58
ffff8000113a6f38:	17ffffa3 	b	ffff8000113a6dc4 <dev_cpu_dead+0x70>

ffff8000113a6f3c <dev_set_alias>:
{
ffff8000113a6f3c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a6f40:	910003fd 	mov	x29, sp
ffff8000113a6f44:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a6f48:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a6f4c:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a6f50:	aa0003f5 	mov	x21, x0
ffff8000113a6f54:	aa1e03e0 	mov	x0, x30
ffff8000113a6f58:	aa0203f3 	mov	x19, x2
ffff8000113a6f5c:	aa0103f6 	mov	x22, x1
ffff8000113a6f60:	94000000 	bl	0 <_mcount>
			ffff8000113a6f60: R_AARCH64_CALL26	_mcount
	if (len >= IFALIASZ)
ffff8000113a6f64:	f103fe7f 	cmp	x19, #0xff
ffff8000113a6f68:	54000468 	b.hi	ffff8000113a6ff4 <dev_set_alias+0xb8>
	if (len) {
ffff8000113a6f6c:	b4000413 	cbz	x19, ffff8000113a6fec <dev_set_alias+0xb0>
				kmalloc_caches[kmalloc_type(flags)][index],
				flags, size);
#endif
	}
	return __kmalloc(size, flags);
ffff8000113a6f70:	91004660 	add	x0, x19, #0x11
ffff8000113a6f74:	52819801 	mov	w1, #0xcc0                 	// #3264
ffff8000113a6f78:	94000000 	bl	0 <__kmalloc>
			ffff8000113a6f78: R_AARCH64_CALL26	__kmalloc
ffff8000113a6f7c:	aa0003f4 	mov	x20, x0
		if (!new_alias)
ffff8000113a6f80:	b40003e0 	cbz	x0, ffff8000113a6ffc <dev_set_alias+0xc0>
	return __builtin_memcpy(p, q, size);
ffff8000113a6f84:	91004000 	add	x0, x0, #0x10
ffff8000113a6f88:	aa1603e1 	mov	x1, x22
ffff8000113a6f8c:	aa1303e2 	mov	x2, x19
ffff8000113a6f90:	94000000 	bl	0 <memcpy>
			ffff8000113a6f90: R_AARCH64_CALL26	memcpy
		new_alias->ifalias[len] = 0;
ffff8000113a6f94:	8b130280 	add	x0, x20, x19
ffff8000113a6f98:	3900401f 	strb	wzr, [x0,#16]
	mutex_lock(&ifalias_mutex);
ffff8000113a6f9c:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a6f9c: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a6fa0:	910002d6 	add	x22, x22, #0x0
			ffff8000113a6fa0: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a6fa4:	9102c2d6 	add	x22, x22, #0xb0
ffff8000113a6fa8:	aa1603e0 	mov	x0, x22
ffff8000113a6fac:	94000000 	bl	0 <mutex_lock>
			ffff8000113a6fac: R_AARCH64_CALL26	mutex_lock
	new_alias = rcu_replace_pointer(dev->ifalias, new_alias,
ffff8000113a6fb0:	910062b5 	add	x21, x21, #0x18
ffff8000113a6fb4:	f94002b7 	ldr	x23, [x21]
ffff8000113a6fb8:	c89ffeb4 	stlr	x20, [x21]
	mutex_unlock(&ifalias_mutex);
ffff8000113a6fbc:	aa1603e0 	mov	x0, x22
ffff8000113a6fc0:	94000000 	bl	0 <mutex_unlock>
			ffff8000113a6fc0: R_AARCH64_CALL26	mutex_unlock
	if (new_alias)
ffff8000113a6fc4:	b4000097 	cbz	x23, ffff8000113a6fd4 <dev_set_alias+0x98>
		kfree_rcu(new_alias, rcuhead);
ffff8000113a6fc8:	aa1703e0 	mov	x0, x23
ffff8000113a6fcc:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a6fd0:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a6fd0: R_AARCH64_CALL26	kfree_call_rcu
	return len;
ffff8000113a6fd4:	2a1303e0 	mov	w0, w19
}
ffff8000113a6fd8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a6fdc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a6fe0:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a6fe4:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a6fe8:	d65f03c0 	ret
ffff8000113a6fec:	aa1303f4 	mov	x20, x19
ffff8000113a6ff0:	17ffffeb 	b	ffff8000113a6f9c <dev_set_alias+0x60>
		return -EINVAL;
ffff8000113a6ff4:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113a6ff8:	17fffff8 	b	ffff8000113a6fd8 <dev_set_alias+0x9c>
			return -ENOMEM;
ffff8000113a6ffc:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113a7000:	17fffff6 	b	ffff8000113a6fd8 <dev_set_alias+0x9c>

ffff8000113a7004 <__netdev_adjacent_dev_insert>:
{
ffff8000113a7004:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a7008:	910003fd 	mov	x29, sp
ffff8000113a700c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a7010:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a7014:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a7018:	f90023f9 	str	x25, [sp,#64]
ffff8000113a701c:	aa0003f5 	mov	x21, x0
ffff8000113a7020:	aa1e03e0 	mov	x0, x30
ffff8000113a7024:	aa0203f3 	mov	x19, x2
ffff8000113a7028:	aa0103f4 	mov	x20, x1
ffff8000113a702c:	aa0303f7 	mov	x23, x3
ffff8000113a7030:	53001c96 	uxtb	w22, w4
ffff8000113a7034:	94000000 	bl	0 <_mcount>
			ffff8000113a7034: R_AARCH64_CALL26	_mcount
	list_for_each_entry(adj, adj_list, list) {
ffff8000113a7038:	f9400261 	ldr	x1, [x19]
ffff8000113a703c:	eb01027f 	cmp	x19, x1
ffff8000113a7040:	d1006027 	sub	x7, x1, #0x18
ffff8000113a7044:	54000180 	b.eq	ffff8000113a7074 <__netdev_adjacent_dev_insert+0x70>
		if (adj->dev == adj_dev)
ffff8000113a7048:	f85e8021 	ldur	x1, [x1,#-24]
ffff8000113a704c:	eb01029f 	cmp	x20, x1
ffff8000113a7050:	540000a1 	b.ne	ffff8000113a7064 <__netdev_adjacent_dev_insert+0x60>
ffff8000113a7054:	14000041 	b	ffff8000113a7158 <__netdev_adjacent_dev_insert+0x154>
ffff8000113a7058:	f85e80c6 	ldur	x6, [x6,#-24]
ffff8000113a705c:	eb06029f 	cmp	x20, x6
ffff8000113a7060:	540007c0 	b.eq	ffff8000113a7158 <__netdev_adjacent_dev_insert+0x154>
	list_for_each_entry(adj, adj_list, list) {
ffff8000113a7064:	f9400ce6 	ldr	x6, [x7,#24]
ffff8000113a7068:	eb06027f 	cmp	x19, x6
ffff8000113a706c:	d10060c7 	sub	x7, x6, #0x18
ffff8000113a7070:	54ffff41 	b.ne	ffff8000113a7058 <__netdev_adjacent_dev_insert+0x54>
		return kmem_cache_alloc_trace(
ffff8000113a7074:	90000000 	adrp	x0, 0 <kmalloc_caches>
			ffff8000113a7074: R_AARCH64_ADR_PREL_PG_HI21	kmalloc_caches+0x38
ffff8000113a7078:	f9400000 	ldr	x0, [x0]
			ffff8000113a7078: R_AARCH64_LDST64_ABS_LO12_NC	kmalloc_caches+0x38
ffff8000113a707c:	52819801 	mov	w1, #0xcc0                 	// #3264
ffff8000113a7080:	d2800702 	mov	x2, #0x38                  	// #56
ffff8000113a7084:	94000000 	bl	0 <kmem_cache_alloc_trace>
			ffff8000113a7084: R_AARCH64_CALL26	kmem_cache_alloc_trace
ffff8000113a7088:	aa0003f8 	mov	x24, x0
	if (!adj)
ffff8000113a708c:	b4000f00 	cbz	x0, ffff8000113a726c <__netdev_adjacent_dev_insert+0x268>
	adj->dev = adj_dev;
ffff8000113a7090:	f9000014 	str	x20, [x0]
	adj->master = master;
ffff8000113a7094:	39002016 	strb	w22, [x0,#8]
	adj->ref_nr = 1;
ffff8000113a7098:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113a709c:	79001700 	strh	w0, [x24,#10]
	adj->private = private;
ffff8000113a70a0:	f9000b17 	str	x23, [x24,#16]
	adj->ignore = false;
ffff8000113a70a4:	3900271f 	strb	wzr, [x24,#9]
PERCPU_OP(add, add, stadd)
ffff8000113a70a8:	52800022 	mov	w2, #0x1                   	// #1
	this_cpu_inc(*dev->pcpu_refcnt);
ffff8000113a70ac:	f9426280 	ldr	x0, [x20,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a70b0:	d538d081 	mrs	x1, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a70b4:	8b000025 	add	x5, x1, x0
ffff8000113a70b8:	885f7ca4 	ldxr	w4, [x5]
ffff8000113a70bc:	0b020084 	add	w4, w4, w2
ffff8000113a70c0:	88037ca4 	stxr	w3, w4, [x5]
ffff8000113a70c4:	35ffffa3 	cbnz	w3, ffff8000113a70b8 <__netdev_adjacent_dev_insert+0xb4>
	pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d; dev_hold on %s\n",
ffff8000113a70c8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a70c8: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113a70cc:	91000000 	add	x0, x0, #0x0
			ffff8000113a70cc: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113a70d0:	91028000 	add	x0, x0, #0xa0
ffff8000113a70d4:	79404401 	ldrh	w1, [x0,#34]
ffff8000113a70d8:	37100da1 	tbnz	w1, #2, ffff8000113a728c <__netdev_adjacent_dev_insert+0x288>
	return (dev_list == &dev->adj_list.upper ||
ffff8000113a70dc:	9102a2b9 	add	x25, x21, #0xa8
		dev_list == &dev->adj_list.lower) &&
ffff8000113a70e0:	eb19027f 	cmp	x19, x25
ffff8000113a70e4:	540007a0 	b.eq	ffff8000113a71d8 <__netdev_adjacent_dev_insert+0x1d4>
ffff8000113a70e8:	9102e2a0 	add	x0, x21, #0xb8
	return (dev_list == &dev->adj_list.upper ||
ffff8000113a70ec:	eb00027f 	cmp	x19, x0
ffff8000113a70f0:	54000740 	b.eq	ffff8000113a71d8 <__netdev_adjacent_dev_insert+0x1d4>
	if (master) {
ffff8000113a70f4:	34000576 	cbz	w22, ffff8000113a71a0 <__netdev_adjacent_dev_insert+0x19c>
		ret = sysfs_create_link(&(dev->dev.kobj),
ffff8000113a70f8:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a70f8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x540
ffff8000113a70fc:	911442a0 	add	x0, x21, #0x510
ffff8000113a7100:	91144281 	add	x1, x20, #0x510
ffff8000113a7104:	91000042 	add	x2, x2, #0x0
			ffff8000113a7104: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x540
ffff8000113a7108:	94000000 	bl	0 <sysfs_create_link>
			ffff8000113a7108: R_AARCH64_CALL26	sysfs_create_link
ffff8000113a710c:	2a0003f7 	mov	w23, w0
		if (ret)
ffff8000113a7110:	34000920 	cbz	w0, ffff8000113a7234 <__netdev_adjacent_dev_insert+0x230>
		dev_list == &dev->adj_list.lower) &&
ffff8000113a7114:	eb19027f 	cmp	x19, x25
ffff8000113a7118:	540007c0 	b.eq	ffff8000113a7210 <__netdev_adjacent_dev_insert+0x20c>
ffff8000113a711c:	9102e2a0 	add	x0, x21, #0xb8
	return (dev_list == &dev->adj_list.upper ||
ffff8000113a7120:	eb00027f 	cmp	x19, x0
ffff8000113a7124:	54000760 	b.eq	ffff8000113a7210 <__netdev_adjacent_dev_insert+0x20c>
	kfree(adj);
ffff8000113a7128:	aa1803e0 	mov	x0, x24
ffff8000113a712c:	94000000 	bl	0 <kfree>
			ffff8000113a712c: R_AARCH64_CALL26	kfree
ffff8000113a7130:	12800000 	mov	w0, #0xffffffff            	// #-1
	this_cpu_dec(*dev->pcpu_refcnt);
ffff8000113a7134:	f9426281 	ldr	x1, [x20,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a7138:	d538d082 	mrs	x2, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113a713c:	8b010045 	add	x5, x2, x1
ffff8000113a7140:	885f7ca4 	ldxr	w4, [x5]
ffff8000113a7144:	0b000084 	add	w4, w4, w0
ffff8000113a7148:	88037ca4 	stxr	w3, w4, [x5]
ffff8000113a714c:	35ffffa3 	cbnz	w3, ffff8000113a7140 <__netdev_adjacent_dev_insert+0x13c>
	return ret;
ffff8000113a7150:	2a1703f3 	mov	w19, w23
ffff8000113a7154:	1400000c 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
	if (adj) {
ffff8000113a7158:	b4fff8e7 	cbz	x7, ffff8000113a7074 <__netdev_adjacent_dev_insert+0x70>
		adj->ref_nr += 1;
ffff8000113a715c:	794014e4 	ldrh	w4, [x7,#10]
		pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d\n",
ffff8000113a7160:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7160: R_AARCH64_ADR_PREL_PG_HI21	__verbose
		adj->ref_nr += 1;
ffff8000113a7164:	11000484 	add	w4, w4, #0x1
		pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d\n",
ffff8000113a7168:	91000000 	add	x0, x0, #0x0
			ffff8000113a7168: R_AARCH64_ADD_ABS_LO12_NC	__verbose
		adj->ref_nr += 1;
ffff8000113a716c:	53003c84 	uxth	w4, w4
ffff8000113a7170:	790014e4 	strh	w4, [x7,#10]
		pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d\n",
ffff8000113a7174:	9101e000 	add	x0, x0, #0x78
ffff8000113a7178:	79404401 	ldrh	w1, [x0,#34]
		return 0;
ffff8000113a717c:	52800013 	mov	w19, #0x0                   	// #0
		pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d\n",
ffff8000113a7180:	371007a1 	tbnz	w1, #2, ffff8000113a7274 <__netdev_adjacent_dev_insert+0x270>
}
ffff8000113a7184:	2a1303e0 	mov	w0, w19
ffff8000113a7188:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a718c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7190:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a7194:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a7198:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a719c:	d65f03c0 	ret
	__list_add_rcu(new, head->prev, head);
ffff8000113a71a0:	f9400675 	ldr	x21, [x19,#8]
		list_add_tail_rcu(&adj->list, dev_list);
ffff8000113a71a4:	91006314 	add	x20, x24, #0x18
	if (!__list_add_valid(new, prev, next))
ffff8000113a71a8:	aa1403e0 	mov	x0, x20
ffff8000113a71ac:	aa1503e1 	mov	x1, x21
ffff8000113a71b0:	aa1303e2 	mov	x2, x19
ffff8000113a71b4:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a71b4: R_AARCH64_CALL26	__list_add_valid
ffff8000113a71b8:	53001c00 	uxtb	w0, w0
ffff8000113a71bc:	34000260 	cbz	w0, ffff8000113a7208 <__netdev_adjacent_dev_insert+0x204>
	new->next = next;
ffff8000113a71c0:	f9000f13 	str	x19, [x24,#24]
	new->prev = prev;
ffff8000113a71c4:	f9000695 	str	x21, [x20,#8]
	rcu_assign_pointer(list_next_rcu(prev), new);
ffff8000113a71c8:	c89ffeb4 	stlr	x20, [x21]
	next->prev = new;
ffff8000113a71cc:	f9000674 	str	x20, [x19,#8]
	return 0;
ffff8000113a71d0:	2a1603f3 	mov	w19, w22
ffff8000113a71d4:	17ffffec 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
		dev_list == &dev->adj_list.lower) &&
ffff8000113a71d8:	f9427aa1 	ldr	x1, [x21,#1264]
ffff8000113a71dc:	f9427a80 	ldr	x0, [x20,#1264]
ffff8000113a71e0:	eb00003f 	cmp	x1, x0
ffff8000113a71e4:	54fff881 	b.ne	ffff8000113a70f4 <__netdev_adjacent_dev_insert+0xf0>
		ret = netdev_adjacent_sysfs_add(dev, adj_dev, dev_list);
ffff8000113a71e8:	aa1503e0 	mov	x0, x21
ffff8000113a71ec:	aa1403e1 	mov	x1, x20
ffff8000113a71f0:	aa1303e2 	mov	x2, x19
ffff8000113a71f4:	97ffe745 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
ffff8000113a71f8:	2a0003f7 	mov	w23, w0
		if (ret)
ffff8000113a71fc:	35fff960 	cbnz	w0, ffff8000113a7128 <__netdev_adjacent_dev_insert+0x124>
	if (master) {
ffff8000113a7200:	35fff7d6 	cbnz	w22, ffff8000113a70f8 <__netdev_adjacent_dev_insert+0xf4>
ffff8000113a7204:	17ffffe7 	b	ffff8000113a71a0 <__netdev_adjacent_dev_insert+0x19c>
	return 0;
ffff8000113a7208:	52800013 	mov	w19, #0x0                   	// #0
ffff8000113a720c:	17ffffde 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
		dev_list == &dev->adj_list.lower) &&
ffff8000113a7210:	f9427aa1 	ldr	x1, [x21,#1264]
ffff8000113a7214:	f9427a80 	ldr	x0, [x20,#1264]
ffff8000113a7218:	eb00003f 	cmp	x1, x0
ffff8000113a721c:	54fff861 	b.ne	ffff8000113a7128 <__netdev_adjacent_dev_insert+0x124>
		netdev_adjacent_sysfs_del(dev, adj_dev->name, dev_list);
ffff8000113a7220:	aa1503e0 	mov	x0, x21
ffff8000113a7224:	aa1403e1 	mov	x1, x20
ffff8000113a7228:	aa1303e2 	mov	x2, x19
ffff8000113a722c:	97ffe75c 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
ffff8000113a7230:	17ffffbe 	b	ffff8000113a7128 <__netdev_adjacent_dev_insert+0x124>
	__list_add_rcu(new, head, head->next);
ffff8000113a7234:	f9400275 	ldr	x21, [x19]
		list_add_rcu(&adj->list, dev_list);
ffff8000113a7238:	91006314 	add	x20, x24, #0x18
	if (!__list_add_valid(new, prev, next))
ffff8000113a723c:	aa1403e0 	mov	x0, x20
ffff8000113a7240:	aa1303e1 	mov	x1, x19
ffff8000113a7244:	aa1503e2 	mov	x2, x21
ffff8000113a7248:	94000000 	bl	0 <__list_add_valid>
			ffff8000113a7248: R_AARCH64_CALL26	__list_add_valid
ffff8000113a724c:	53001c00 	uxtb	w0, w0
ffff8000113a7250:	34fffdc0 	cbz	w0, ffff8000113a7208 <__netdev_adjacent_dev_insert+0x204>
	new->next = next;
ffff8000113a7254:	f9000f15 	str	x21, [x24,#24]
	new->prev = prev;
ffff8000113a7258:	f9000693 	str	x19, [x20,#8]
	rcu_assign_pointer(list_next_rcu(prev), new);
ffff8000113a725c:	c89ffe74 	stlr	x20, [x19]
	next->prev = new;
ffff8000113a7260:	f90006b4 	str	x20, [x21,#8]
	return 0;
ffff8000113a7264:	2a1703f3 	mov	w19, w23
ffff8000113a7268:	17ffffc7 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
		return -ENOMEM;
ffff8000113a726c:	12800173 	mov	w19, #0xfffffff4            	// #-12
ffff8000113a7270:	17ffffc5 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
		pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d\n",
ffff8000113a7274:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7274: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x588
ffff8000113a7278:	91000021 	add	x1, x1, #0x0
			ffff8000113a7278: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x588
ffff8000113a727c:	aa1503e2 	mov	x2, x21
ffff8000113a7280:	aa1403e3 	mov	x3, x20
ffff8000113a7284:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113a7284: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113a7288:	17ffffbf 	b	ffff8000113a7184 <__netdev_adjacent_dev_insert+0x180>
	pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d; dev_hold on %s\n",
ffff8000113a728c:	79401704 	ldrh	w4, [x24,#10]
ffff8000113a7290:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7290: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x5c0
ffff8000113a7294:	91000021 	add	x1, x1, #0x0
			ffff8000113a7294: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x5c0
ffff8000113a7298:	aa1503e2 	mov	x2, x21
ffff8000113a729c:	aa1403e3 	mov	x3, x20
ffff8000113a72a0:	aa1403e5 	mov	x5, x20
ffff8000113a72a4:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113a72a4: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113a72a8:	17ffff8d 	b	ffff8000113a70dc <__netdev_adjacent_dev_insert+0xd8>

ffff8000113a72ac <__netdev_upper_dev_link>:
{
ffff8000113a72ac:	a9b77bfd 	stp	x29, x30, [sp,#-144]!
ffff8000113a72b0:	910003fd 	mov	x29, sp
ffff8000113a72b4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a72b8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a72bc:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a72c0:	f90023f9 	str	x25, [sp,#64]
ffff8000113a72c4:	aa0003f3 	mov	x19, x0
ffff8000113a72c8:	aa1e03e0 	mov	x0, x30
ffff8000113a72cc:	aa0103f4 	mov	x20, x1
ffff8000113a72d0:	53001c55 	uxtb	w21, w2
ffff8000113a72d4:	f9002fa4 	str	x4, [x29,#88]
ffff8000113a72d8:	f9002ba5 	str	x5, [x29,#80]
ffff8000113a72dc:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113a72dc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a72e0:	aa0303f8 	mov	x24, x3
ffff8000113a72e4:	94000000 	bl	0 <_mcount>
			ffff8000113a72e4: R_AARCH64_CALL26	_mcount
ffff8000113a72e8:	f94002c0 	ldr	x0, [x22]
			ffff8000113a72e8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct netdev_notifier_changeupper_info changeupper_info = {
ffff8000113a72ec:	f9402ba5 	ldr	x5, [x29,#80]
ffff8000113a72f0:	f9402fa4 	ldr	x4, [x29,#88]
ffff8000113a72f4:	52800037 	mov	w23, #0x1                   	// #1
{
ffff8000113a72f8:	f90047a0 	str	x0, [x29,#136]
	struct netdev_notifier_changeupper_info changeupper_info = {
ffff8000113a72fc:	f90033b3 	str	x19, [x29,#96]
ffff8000113a7300:	f90037a5 	str	x5, [x29,#104]
ffff8000113a7304:	f9003bb4 	str	x20, [x29,#112]
ffff8000113a7308:	3901e3b5 	strb	w21, [x29,#120]
ffff8000113a730c:	3901e7b7 	strb	w23, [x29,#121]
ffff8000113a7310:	f90043a4 	str	x4, [x29,#128]
	ASSERT_RTNL();
ffff8000113a7314:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a7314: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a7318:	34000ec0 	cbz	w0, ffff8000113a74f0 <__netdev_upper_dev_link+0x244>
	if (dev == upper_dev)
ffff8000113a731c:	eb14027f 	cmp	x19, x20
ffff8000113a7320:	54000360 	b.eq	ffff8000113a738c <__netdev_upper_dev_link+0xe0>
	if (__netdev_has_upper_dev(upper_dev, dev))
ffff8000113a7324:	aa1403e0 	mov	x0, x20
ffff8000113a7328:	aa1303e1 	mov	x1, x19
ffff8000113a732c:	97ffe31b 	bl	ffff80001139ff98 <__netdev_has_upper_dev>
ffff8000113a7330:	53001c00 	uxtb	w0, w0
ffff8000113a7334:	350002c0 	cbnz	w0, ffff8000113a738c <__netdev_upper_dev_link+0xe0>
	if ((dev->lower_level + upper_dev->upper_level) > MAX_NEST_DEV)
ffff8000113a7338:	3949c661 	ldrb	w1, [x19,#625]
ffff8000113a733c:	3949c280 	ldrb	w0, [x20,#624]
ffff8000113a7340:	0b000020 	add	w0, w1, w0
ffff8000113a7344:	7100201f 	cmp	w0, #0x8
ffff8000113a7348:	54000acc 	b.gt	ffff8000113a74a0 <__netdev_upper_dev_link+0x1f4>
	if (!master) {
ffff8000113a734c:	34000255 	cbz	w21, ffff8000113a7394 <__netdev_upper_dev_link+0xe8>
	ASSERT_RTNL();
ffff8000113a7350:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113a7350: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113a7354:	34000e80 	cbz	w0, ffff8000113a7524 <__netdev_upper_dev_link+0x278>
	__READ_ONCE_SIZE;
ffff8000113a7358:	aa1303e0 	mov	x0, x19
ffff8000113a735c:	f84a8c01 	ldr	x1, [x0,#168]!
	if (list_empty(&dev->adj_list.upper))
ffff8000113a7360:	eb01001f 	cmp	x0, x1
ffff8000113a7364:	54000220 	b.eq	ffff8000113a73a8 <__netdev_upper_dev_link+0xfc>
	upper = list_first_entry(&dev->adj_list.upper,
ffff8000113a7368:	f9405660 	ldr	x0, [x19,#168]
	if (likely(upper->master) && !upper->ignore)
ffff8000113a736c:	385f0001 	ldurb	w1, [x0,#-16]
ffff8000113a7370:	340001c1 	cbz	w1, ffff8000113a73a8 <__netdev_upper_dev_link+0xfc>
ffff8000113a7374:	385f1001 	ldurb	w1, [x0,#-15]
ffff8000113a7378:	35000181 	cbnz	w1, ffff8000113a73a8 <__netdev_upper_dev_link+0xfc>
		return upper->dev;
ffff8000113a737c:	f85e8000 	ldur	x0, [x0,#-24]
		if (master_dev)
ffff8000113a7380:	b4000140 	cbz	x0, ffff8000113a73a8 <__netdev_upper_dev_link+0xfc>
			return master_dev == upper_dev ? -EEXIST : -EBUSY;
ffff8000113a7384:	eb00029f 	cmp	x20, x0
ffff8000113a7388:	54000360 	b.eq	ffff8000113a73f4 <__netdev_upper_dev_link+0x148>
ffff8000113a738c:	128001f5 	mov	w21, #0xfffffff0            	// #-16
ffff8000113a7390:	1400000e 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
		if (__netdev_has_upper_dev(dev, upper_dev))
ffff8000113a7394:	aa1303e0 	mov	x0, x19
ffff8000113a7398:	aa1403e1 	mov	x1, x20
ffff8000113a739c:	97ffe2ff 	bl	ffff80001139ff98 <__netdev_has_upper_dev>
ffff8000113a73a0:	53001c00 	uxtb	w0, w0
ffff8000113a73a4:	35000280 	cbnz	w0, ffff8000113a73f4 <__netdev_upper_dev_link+0x148>
	ret = call_netdevice_notifiers_info(NETDEV_PRECHANGEUPPER,
ffff8000113a73a8:	d2800340 	mov	x0, #0x1a                  	// #26
ffff8000113a73ac:	910183a1 	add	x1, x29, #0x60
ffff8000113a73b0:	97ffe352 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113a73b4:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113a73b8:	7100041f 	cmp	w0, #0x1
ffff8000113a73bc:	5400020d 	b.le	ffff8000113a73fc <__netdev_upper_dev_link+0x150>
ffff8000113a73c0:	52800035 	mov	w21, #0x1                   	// #1
ffff8000113a73c4:	4b0002b5 	sub	w21, w21, w0
}
ffff8000113a73c8:	f94047a2 	ldr	x2, [x29,#136]
ffff8000113a73cc:	f94002c1 	ldr	x1, [x22]
			ffff8000113a73cc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a73d0:	2a1503e0 	mov	w0, w21
ffff8000113a73d4:	eb01005f 	cmp	x2, x1
ffff8000113a73d8:	540008a1 	b.ne	ffff8000113a74ec <__netdev_upper_dev_link+0x240>
ffff8000113a73dc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a73e0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a73e4:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a73e8:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113a73ec:	a8c97bfd 	ldp	x29, x30, [sp],#144
ffff8000113a73f0:	d65f03c0 	ret
			return -EEXIST;
ffff8000113a73f4:	12800215 	mov	w21, #0xffffffef            	// #-17
ffff8000113a73f8:	17fffff4 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
	return __netdev_adjacent_dev_link_lists(dev, upper_dev,
ffff8000113a73fc:	9102a277 	add	x23, x19, #0xa8
	ret = __netdev_adjacent_dev_insert(dev, upper_dev, up_list,
ffff8000113a7400:	2a1503e4 	mov	w4, w21
ffff8000113a7404:	aa1303e0 	mov	x0, x19
ffff8000113a7408:	aa1403e1 	mov	x1, x20
ffff8000113a740c:	aa1703e2 	mov	x2, x23
ffff8000113a7410:	aa1803e3 	mov	x3, x24
ffff8000113a7414:	97fffefc 	bl	ffff8000113a7004 <__netdev_adjacent_dev_insert>
ffff8000113a7418:	2a0003f5 	mov	w21, w0
	if (ret)
ffff8000113a741c:	35fffd60 	cbnz	w0, ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
	return __netdev_adjacent_dev_link_lists(dev, upper_dev,
ffff8000113a7420:	9102e299 	add	x25, x20, #0xb8
	ret = __netdev_adjacent_dev_insert(upper_dev, dev, down_list,
ffff8000113a7424:	aa1803e3 	mov	x3, x24
ffff8000113a7428:	aa1403e0 	mov	x0, x20
ffff8000113a742c:	aa1303e1 	mov	x1, x19
ffff8000113a7430:	aa1903e2 	mov	x2, x25
ffff8000113a7434:	2a1503e4 	mov	w4, w21
ffff8000113a7438:	97fffef3 	bl	ffff8000113a7004 <__netdev_adjacent_dev_insert>
ffff8000113a743c:	2a0003f8 	mov	w24, w0
	if (ret) {
ffff8000113a7440:	35000240 	cbnz	w0, ffff8000113a7488 <__netdev_upper_dev_link+0x1dc>
	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
ffff8000113a7444:	d28002a0 	mov	x0, #0x15                  	// #21
ffff8000113a7448:	910183a1 	add	x1, x29, #0x60
ffff8000113a744c:	97ffe32b 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113a7450:	12107803 	and	w3, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113a7454:	7100047f 	cmp	w3, #0x1
	__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
ffff8000113a7458:	aa1303e0 	mov	x0, x19
ffff8000113a745c:	5400026d 	b.le	ffff8000113a74a8 <__netdev_upper_dev_link+0x1fc>
ffff8000113a7460:	aa1403e1 	mov	x1, x20
ffff8000113a7464:	aa1703e2 	mov	x2, x23
ffff8000113a7468:	52800035 	mov	w21, #0x1                   	// #1
ffff8000113a746c:	4b0302b5 	sub	w21, w21, w3
ffff8000113a7470:	97fffa38 	bl	ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>
	__netdev_adjacent_dev_remove(upper_dev, dev, ref_nr, down_list);
ffff8000113a7474:	aa1403e0 	mov	x0, x20
ffff8000113a7478:	aa1303e1 	mov	x1, x19
ffff8000113a747c:	aa1903e2 	mov	x2, x25
ffff8000113a7480:	97fffa34 	bl	ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>
ffff8000113a7484:	17ffffd1 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
		__netdev_adjacent_dev_remove(dev, upper_dev, 1, up_list);
ffff8000113a7488:	aa1303e0 	mov	x0, x19
ffff8000113a748c:	aa1403e1 	mov	x1, x20
ffff8000113a7490:	aa1703e2 	mov	x2, x23
ffff8000113a7494:	97fffa2f 	bl	ffff8000113a5d50 <__netdev_adjacent_dev_remove.constprop.155>
ffff8000113a7498:	2a1803f5 	mov	w21, w24
ffff8000113a749c:	17ffffcb 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
		return -EMLINK;
ffff8000113a74a0:	128003d5 	mov	w21, #0xffffffe1            	// #-31
ffff8000113a74a4:	17ffffc9 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
	dev->upper_level = __netdev_upper_depth(dev) + 1;
ffff8000113a74a8:	97ffde88 	bl	ffff80001139eec8 <__netdev_upper_depth>
ffff8000113a74ac:	53001c00 	uxtb	w0, w0
ffff8000113a74b0:	11000400 	add	w0, w0, #0x1
ffff8000113a74b4:	3909c260 	strb	w0, [x19,#624]
	__netdev_walk_all_lower_dev(dev, __netdev_update_upper_level, NULL);
ffff8000113a74b8:	aa1303e0 	mov	x0, x19
ffff8000113a74bc:	97ffeb66 	bl	ffff8000113a2254 <__netdev_walk_all_lower_dev.constprop.156>
	dev->lower_level = __netdev_lower_depth(dev) + 1;
ffff8000113a74c0:	aa1403e0 	mov	x0, x20
ffff8000113a74c4:	97ffdea2 	bl	ffff80001139ef4c <__netdev_lower_depth>
ffff8000113a74c8:	53001c00 	uxtb	w0, w0
ffff8000113a74cc:	11000400 	add	w0, w0, #0x1
	__netdev_walk_all_upper_dev(upper_dev, __netdev_update_lower_level,
ffff8000113a74d0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a74d0: R_AARCH64_ADR_PREL_PG_HI21	.text+0xc90
	dev->lower_level = __netdev_lower_depth(dev) + 1;
ffff8000113a74d4:	3909c680 	strb	w0, [x20,#625]
	__netdev_walk_all_upper_dev(upper_dev, __netdev_update_lower_level,
ffff8000113a74d8:	91000021 	add	x1, x1, #0x0
			ffff8000113a74d8: R_AARCH64_ADD_ABS_LO12_NC	.text+0xc90
ffff8000113a74dc:	aa1403e0 	mov	x0, x20
ffff8000113a74e0:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a74e4:	97ffdd66 	bl	ffff80001139ea7c <__netdev_walk_all_upper_dev>
	return 0;
ffff8000113a74e8:	17ffffb8 	b	ffff8000113a73c8 <__netdev_upper_dev_link+0x11c>
}
ffff8000113a74ec:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a74ec: R_AARCH64_CALL26	__stack_chk_fail
	ASSERT_RTNL();
ffff8000113a74f0:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a74f0: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a74f4:	91000063 	add	x3, x3, #0x0
			ffff8000113a74f4: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a74f8:	39404c60 	ldrb	w0, [x3,#19]
ffff8000113a74fc:	35fff100 	cbnz	w0, ffff8000113a731c <__netdev_upper_dev_link+0x70>
ffff8000113a7500:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7500: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a7504:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7504: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a7508:	91000000 	add	x0, x0, #0x0
			ffff8000113a7508: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a750c:	91000021 	add	x1, x1, #0x0
			ffff8000113a750c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a7510:	5283afc2 	mov	w2, #0x1d7e                	// #7550
ffff8000113a7514:	39004c77 	strb	w23, [x3,#19]
ffff8000113a7518:	94000000 	bl	0 <__warn_printk>
			ffff8000113a7518: R_AARCH64_CALL26	__warn_printk
ffff8000113a751c:	d4210000 	brk	#0x800
ffff8000113a7520:	17ffff7f 	b	ffff8000113a731c <__netdev_upper_dev_link+0x70>
	ASSERT_RTNL();
ffff8000113a7524:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7524: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113a7528:	91000063 	add	x3, x3, #0x0
			ffff8000113a7528: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113a752c:	39405060 	ldrb	w0, [x3,#20]
ffff8000113a7530:	35fff140 	cbnz	w0, ffff8000113a7358 <__netdev_upper_dev_link+0xac>
ffff8000113a7534:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7534: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113a7538:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7538: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113a753c:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a7540:	91000000 	add	x0, x0, #0x0
			ffff8000113a7540: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113a7544:	91000021 	add	x1, x1, #0x0
			ffff8000113a7544: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113a7548:	52835002 	mov	w2, #0x1a80                	// #6784
ffff8000113a754c:	39005064 	strb	w4, [x3,#20]
ffff8000113a7550:	94000000 	bl	0 <__warn_printk>
			ffff8000113a7550: R_AARCH64_CALL26	__warn_printk
ffff8000113a7554:	d4210000 	brk	#0x800
ffff8000113a7558:	17ffff80 	b	ffff8000113a7358 <__netdev_upper_dev_link+0xac>

ffff8000113a755c <netdev_upper_dev_link>:
{
ffff8000113a755c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a7560:	910003fd 	mov	x29, sp
ffff8000113a7564:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a7568:	aa0003f3 	mov	x19, x0
ffff8000113a756c:	aa1e03e0 	mov	x0, x30
ffff8000113a7570:	f90017a1 	str	x1, [x29,#40]
ffff8000113a7574:	f90013a2 	str	x2, [x29,#32]
ffff8000113a7578:	94000000 	bl	0 <_mcount>
			ffff8000113a7578: R_AARCH64_CALL26	_mcount
	return __netdev_upper_dev_link(dev, upper_dev, false,
ffff8000113a757c:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a7580:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113a7584:	f94013a5 	ldr	x5, [x29,#32]
ffff8000113a7588:	aa1303e0 	mov	x0, x19
ffff8000113a758c:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a7590:	aa0303e4 	mov	x4, x3
ffff8000113a7594:	97ffff46 	bl	ffff8000113a72ac <__netdev_upper_dev_link>
}
ffff8000113a7598:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a759c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a75a0:	d65f03c0 	ret

ffff8000113a75a4 <netdev_adjacent_change_prepare>:
{
ffff8000113a75a4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a75a8:	910003fd 	mov	x29, sp
ffff8000113a75ac:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a75b0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a75b4:	aa0003f5 	mov	x21, x0
ffff8000113a75b8:	aa0103f3 	mov	x19, x1
ffff8000113a75bc:	aa1e03e0 	mov	x0, x30
ffff8000113a75c0:	aa0203f4 	mov	x20, x2
ffff8000113a75c4:	aa0303f6 	mov	x22, x3
ffff8000113a75c8:	94000000 	bl	0 <_mcount>
			ffff8000113a75c8: R_AARCH64_CALL26	_mcount
	if (!new_dev)
ffff8000113a75cc:	b40003f3 	cbz	x19, ffff8000113a7648 <netdev_adjacent_change_prepare+0xa4>
	if (old_dev && new_dev != old_dev)
ffff8000113a75d0:	eb15027f 	cmp	x19, x21
ffff8000113a75d4:	540001e1 	b.ne	ffff8000113a7610 <netdev_adjacent_change_prepare+0x6c>
	return __netdev_upper_dev_link(dev, upper_dev, false,
ffff8000113a75d8:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113a75dc:	aa1303e0 	mov	x0, x19
ffff8000113a75e0:	aa1403e1 	mov	x1, x20
ffff8000113a75e4:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a75e8:	aa0303e4 	mov	x4, x3
ffff8000113a75ec:	aa1603e5 	mov	x5, x22
ffff8000113a75f0:	97ffff2f 	bl	ffff8000113a72ac <__netdev_upper_dev_link>
ffff8000113a75f4:	2a0003f3 	mov	w19, w0
	if (err) {
ffff8000113a75f8:	34000280 	cbz	w0, ffff8000113a7648 <netdev_adjacent_change_prepare+0xa4>
}
ffff8000113a75fc:	2a1303e0 	mov	w0, w19
ffff8000113a7600:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7604:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7608:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a760c:	d65f03c0 	ret
	if (old_dev && new_dev != old_dev)
ffff8000113a7610:	b4fffe55 	cbz	x21, ffff8000113a75d8 <netdev_adjacent_change_prepare+0x34>
	__netdev_adjacent_dev_set(upper_dev, lower_dev, true);
ffff8000113a7614:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a7618:	aa1403e0 	mov	x0, x20
ffff8000113a761c:	aa1503e1 	mov	x1, x21
ffff8000113a7620:	97ffdec4 	bl	ffff80001139f130 <__netdev_adjacent_dev_set>
	return __netdev_upper_dev_link(dev, upper_dev, false,
ffff8000113a7624:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113a7628:	aa1303e0 	mov	x0, x19
ffff8000113a762c:	aa1403e1 	mov	x1, x20
ffff8000113a7630:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a7634:	aa0303e4 	mov	x4, x3
ffff8000113a7638:	aa1603e5 	mov	x5, x22
ffff8000113a763c:	97ffff1c 	bl	ffff8000113a72ac <__netdev_upper_dev_link>
ffff8000113a7640:	2a0003f3 	mov	w19, w0
	if (err) {
ffff8000113a7644:	350000e0 	cbnz	w0, ffff8000113a7660 <netdev_adjacent_change_prepare+0xbc>
		return 0;
ffff8000113a7648:	52800013 	mov	w19, #0x0                   	// #0
}
ffff8000113a764c:	2a1303e0 	mov	w0, w19
ffff8000113a7650:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7654:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7658:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a765c:	d65f03c0 	ret
	__netdev_adjacent_dev_set(upper_dev, lower_dev, false);
ffff8000113a7660:	aa1403e0 	mov	x0, x20
ffff8000113a7664:	aa1503e1 	mov	x1, x21
ffff8000113a7668:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a766c:	97ffdeb1 	bl	ffff80001139f130 <__netdev_adjacent_dev_set>
}
ffff8000113a7670:	2a1303e0 	mov	w0, w19
ffff8000113a7674:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7678:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a767c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a7680:	d65f03c0 	ret

ffff8000113a7684 <netdev_master_upper_dev_link>:
{
ffff8000113a7684:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a7688:	910003fd 	mov	x29, sp
ffff8000113a768c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a7690:	f90013f5 	str	x21, [sp,#32]
ffff8000113a7694:	aa0003f5 	mov	x21, x0
ffff8000113a7698:	aa1e03e0 	mov	x0, x30
ffff8000113a769c:	aa0203f4 	mov	x20, x2
ffff8000113a76a0:	aa0303f3 	mov	x19, x3
ffff8000113a76a4:	f9001fa1 	str	x1, [x29,#56]
ffff8000113a76a8:	f9001ba4 	str	x4, [x29,#48]
ffff8000113a76ac:	94000000 	bl	0 <_mcount>
			ffff8000113a76ac: R_AARCH64_CALL26	_mcount
	return __netdev_upper_dev_link(dev, upper_dev, true,
ffff8000113a76b0:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113a76b4:	f9401ba5 	ldr	x5, [x29,#48]
ffff8000113a76b8:	aa1403e3 	mov	x3, x20
ffff8000113a76bc:	aa1303e4 	mov	x4, x19
ffff8000113a76c0:	aa1503e0 	mov	x0, x21
ffff8000113a76c4:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a76c8:	97fffef9 	bl	ffff8000113a72ac <__netdev_upper_dev_link>
}
ffff8000113a76cc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a76d0:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a76d4:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a76d8:	d65f03c0 	ret

ffff8000113a76dc <__netif_set_xps_queue>:
{
ffff8000113a76dc:	a9b37bfd 	stp	x29, x30, [sp,#-208]!
ffff8000113a76e0:	910003fd 	mov	x29, sp
ffff8000113a76e4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a76e8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a76ec:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a76f0:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a76f4:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a76f8:	f9004fa0 	str	x0, [x29,#152]
ffff8000113a76fc:	53001c63 	uxtb	w3, w3
ffff8000113a7700:	aa1e03e0 	mov	x0, x30
ffff8000113a7704:	f90057a1 	str	x1, [x29,#168]
ffff8000113a7708:	53003c54 	uxth	w20, w2
ffff8000113a770c:	b900c3a3 	str	w3, [x29,#192]
ffff8000113a7710:	94000000 	bl	0 <_mcount>
			ffff8000113a7710: R_AARCH64_CALL26	_mcount
	if (dev->num_tc) {
ffff8000113a7714:	f9404fa4 	ldr	x4, [x29,#152]
ffff8000113a7718:	79d09085 	ldrsh	w5, [x4,#2120]
ffff8000113a771c:	34003be5 	cbz	w5, ffff8000113a7e98 <__netif_set_xps_queue+0x7bc>
		num_tc = dev->num_tc;
ffff8000113a7720:	2a0503f5 	mov	w21, w5
		if (num_tc < 0)
ffff8000113a7724:	37f82e05 	tbnz	w5, #31, ffff8000113a7ce4 <__netif_set_xps_queue+0x608>
	return &dev->_tx[index];
ffff8000113a7728:	f941e081 	ldr	x1, [x4,#960]
ffff8000113a772c:	52802800 	mov	w0, #0x140                 	// #320
ffff8000113a7730:	9ba07e80 	umull	x0, w20, w0
ffff8000113a7734:	8b000020 	add	x0, x1, x0
		dev = netdev_get_tx_queue(dev, index)->sb_dev ? : dev;
ffff8000113a7738:	f9403804 	ldr	x4, [x0,#112]
ffff8000113a773c:	b4002ba4 	cbz	x4, ffff8000113a7cb0 <__netif_set_xps_queue+0x5d4>
	if (dev->num_tc) {
ffff8000113a7740:	79d09096 	ldrsh	w22, [x4,#2120]
ffff8000113a7744:	35002b96 	cbnz	w22, ffff8000113a7cb4 <__netif_set_xps_queue+0x5d8>
ffff8000113a7748:	2a0503f3 	mov	w19, w5
ffff8000113a774c:	f9004fa4 	str	x4, [x29,#152]
	mutex_lock(&xps_map_mutex);
ffff8000113a7750:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7750: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a7754:	91000020 	add	x0, x1, #0x0
			ffff8000113a7754: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a7758:	91024000 	add	x0, x0, #0x90
ffff8000113a775c:	94000000 	bl	0 <mutex_lock>
			ffff8000113a775c: R_AARCH64_CALL26	mutex_lock
	if (is_rxqs_map) {
ffff8000113a7760:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7764:	34003ac4 	cbz	w4, ffff8000113a7ebc <__netif_set_xps_queue+0x7e0>
		maps_sz = XPS_RXQ_DEV_MAPS_SIZE(num_tc, dev->num_rx_queues);
ffff8000113a7768:	f9404fa4 	ldr	x4, [x29,#152]
	const unsigned long *online_mask = NULL, *possible_mask = NULL;
ffff8000113a776c:	d2800019 	mov	x25, #0x0                   	// #0
		maps_sz = XPS_RXQ_DEV_MAPS_SIZE(num_tc, dev->num_rx_queues);
ffff8000113a7770:	b9432897 	ldr	w23, [x4,#808]
ffff8000113a7774:	f94057a4 	ldr	x4, [x29,#168]
ffff8000113a7778:	1b177e62 	mul	w2, w19, w23
ffff8000113a777c:	eb1f009f 	cmp	x4, xzr
		dev_maps = xmap_dereference(dev->xps_rxqs_map);
ffff8000113a7780:	f9404fa4 	ldr	x4, [x29,#152]
		maps_sz = XPS_RXQ_DEV_MAPS_SIZE(num_tc, dev->num_rx_queues);
ffff8000113a7784:	91000842 	add	x2, x2, #0x2
ffff8000113a7788:	52800013 	mov	w19, #0x0                   	// #0
		dev_maps = xmap_dereference(dev->xps_rxqs_map);
ffff8000113a778c:	f941f89a 	ldr	x26, [x4,#1008]
ffff8000113a7790:	1a9f07e4 	cset	w4, ne
		maps_sz = XPS_RXQ_DEV_MAPS_SIZE(num_tc, dev->num_rx_queues);
ffff8000113a7794:	531d7042 	lsl	w2, w2, #3
ffff8000113a7798:	b900cba4 	str	w4, [x29,#200]
ffff8000113a779c:	b900c7b3 	str	w19, [x29,#196]
	const unsigned long *online_mask = NULL, *possible_mask = NULL;
ffff8000113a77a0:	f9005bb9 	str	x25, [x29,#176]
		maps_sz = L1_CACHE_BYTES;
ffff8000113a77a4:	52800800 	mov	w0, #0x40                  	// #64
ffff8000113a77a8:	7100fc5f 	cmp	w2, #0x3f
ffff8000113a77ac:	1a80c042 	csel	w2, w2, w0, gt
			new_dev_maps = kzalloc(maps_sz, GFP_KERNEL);
ffff8000113a77b0:	93407c42 	sxtw	x2, w2
#endif

#ifndef cpu_to_node
static inline int cpu_to_node(int cpu)
{
	return per_cpu(numa_node, cpu);
ffff8000113a77b4:	90000000 	adrp	x0, 0 <numa_node>
			ffff8000113a77b4: R_AARCH64_ADR_PREL_PG_HI21	numa_node
ffff8000113a77b8:	91000000 	add	x0, x0, #0x0
			ffff8000113a77b8: R_AARCH64_ADD_ABS_LO12_NC	numa_node
ffff8000113a77bc:	f90053a2 	str	x2, [x29,#160]
ffff8000113a77c0:	f9005fa0 	str	x0, [x29,#184]
	for (j = -1; j = netif_attrmask_next_and(j, online_mask, mask, nr_ids),
ffff8000113a77c4:	12800007 	mov	w7, #0xffffffff            	// #-1
	struct xps_dev_maps *dev_maps, *new_dev_maps = NULL;
ffff8000113a77c8:	d280001c 	mov	x28, #0x0                   	// #0
		return find_next_bit(src2p, nr_bits, n + 1);
ffff8000113a77cc:	2a1703f8 	mov	w24, w23
	if (src1p && src2p)
ffff8000113a77d0:	350004b3 	cbnz	w19, ffff8000113a7864 <__netif_set_xps_queue+0x188>
	else if (src1p)
ffff8000113a77d4:	b940c7a4 	ldr	w4, [x29,#196]
ffff8000113a77d8:	34002964 	cbz	w4, ffff8000113a7d04 <__netif_set_xps_queue+0x628>
		return find_next_bit(src1p, nr_bits, n + 1);
ffff8000113a77dc:	110004e2 	add	w2, w7, #0x1
ffff8000113a77e0:	f9405ba0 	ldr	x0, [x29,#176]
ffff8000113a77e4:	aa1803e1 	mov	x1, x24
ffff8000113a77e8:	93407c42 	sxtw	x2, w2
ffff8000113a77ec:	94000000 	bl	0 <find_next_bit>
			ffff8000113a77ec: R_AARCH64_CALL26	find_next_bit
ffff8000113a77f0:	2a0003e7 	mov	w7, w0
	for (j = -1; j = netif_attrmask_next_and(j, online_mask, mask, nr_ids),
ffff8000113a77f4:	6b0702ff 	cmp	w23, w7
ffff8000113a77f8:	54000489 	b.ls	ffff8000113a7888 <__netif_set_xps_queue+0x1ac>
		if (!new_dev_maps)
ffff8000113a77fc:	b400315c 	cbz	x28, ffff8000113a7e24 <__netif_set_xps_queue+0x748>
		tci = j * num_tc + tc;
ffff8000113a7800:	1b077ea9 	mul	w9, w21, w7
ffff8000113a7804:	0b160129 	add	w9, w9, w22
		map = dev_maps ? xmap_dereference(dev_maps->attr_map[tci]) :
ffff8000113a7808:	b400291a 	cbz	x26, ffff8000113a7d28 <__netif_set_xps_queue+0x64c>
ffff8000113a780c:	93407d28 	sxtw	x8, w9
ffff8000113a7810:	91000900 	add	x0, x8, #0x2
ffff8000113a7814:	f8607b5b 	ldr	x27, [x26,x0,lsl #3]
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7818:	b400467b 	cbz	x27, ffff8000113a80e4 <__netif_set_xps_queue+0xa08>
ffff8000113a781c:	b9400362 	ldr	w2, [x27]
ffff8000113a7820:	34003382 	cbz	w2, ffff8000113a7e90 <__netif_set_xps_queue+0x7b4>
		if (map->queues[pos] != index)
ffff8000113a7824:	79403360 	ldrh	w0, [x27,#24]
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7828:	52800023 	mov	w3, #0x1                   	// #1
		if (map->queues[pos] != index)
ffff8000113a782c:	6b14001f 	cmp	w0, w20
ffff8000113a7830:	54000100 	b.eq	ffff8000113a7850 <__netif_set_xps_queue+0x174>
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7834:	6b02007f 	cmp	w3, w2
		if (map->queues[pos] != index)
ffff8000113a7838:	8b23c761 	add	x1, x27, w3, sxtw #1
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a783c:	54002c00 	b.eq	ffff8000113a7dbc <__netif_set_xps_queue+0x6e0>
		if (map->queues[pos] != index)
ffff8000113a7840:	79403021 	ldrh	w1, [x1,#24]
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7844:	11000463 	add	w3, w3, #0x1
		if (map->queues[pos] != index)
ffff8000113a7848:	6b14003f 	cmp	w1, w20
ffff8000113a784c:	54ffff41 	b.ne	ffff8000113a7834 <__netif_set_xps_queue+0x158>
		if (pos < map->alloc_len)
ffff8000113a7850:	aa1b03e6 	mov	x6, x27
		RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a7854:	91000908 	add	x8, x8, #0x2
ffff8000113a7858:	d37df108 	lsl	x8, x8, #3
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113a785c:	f8286b86 	str	x6, [x28,x8]
	if (src1p && src2p)
ffff8000113a7860:	34fffbb3 	cbz	w19, ffff8000113a77d4 <__netif_set_xps_queue+0xf8>
		return find_next_and_bit(src1p, src2p, nr_bits, n + 1);
ffff8000113a7864:	110004e3 	add	w3, w7, #0x1
ffff8000113a7868:	f9405ba0 	ldr	x0, [x29,#176]
ffff8000113a786c:	f94057a1 	ldr	x1, [x29,#168]
ffff8000113a7870:	aa1803e2 	mov	x2, x24
ffff8000113a7874:	93407c63 	sxtw	x3, w3
ffff8000113a7878:	94000000 	bl	0 <find_next_and_bit>
			ffff8000113a7878: R_AARCH64_CALL26	find_next_and_bit
ffff8000113a787c:	2a0003e7 	mov	w7, w0
	for (j = -1; j = netif_attrmask_next_and(j, online_mask, mask, nr_ids),
ffff8000113a7880:	6b0702ff 	cmp	w23, w7
ffff8000113a7884:	54fffbc8 	b.hi	ffff8000113a77fc <__netif_set_xps_queue+0x120>
ffff8000113a7888:	aa1c03f3 	mov	x19, x28
	if (!new_dev_maps)
ffff8000113a788c:	b400393c 	cbz	x28, ffff8000113a7fb0 <__netif_set_xps_queue+0x8d4>
	if (!dev_maps) {
ffff8000113a7890:	b4003fda 	cbz	x26, ffff8000113a8088 <__netif_set_xps_queue+0x9ac>
ffff8000113a7894:	90000018 	adrp	x24, 0 <numa_node>
			ffff8000113a7894: R_AARCH64_ADR_PREL_PG_HI21	numa_node
					numa_node_id = -1;
ffff8000113a7898:	12800023 	mov	w3, #0xfffffffe            	// #-2
ffff8000113a789c:	9100031b 	add	x27, x24, #0x0
			ffff8000113a789c: R_AARCH64_ADD_ABS_LO12_NC	numa_node
ffff8000113a78a0:	b900bba3 	str	w3, [x29,#184]
ffff8000113a78a4:	12800008 	mov	w8, #0xffffffff            	// #-1
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a78a8:	2a1703f3 	mov	w19, w23
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a78ac:	4b1602b8 	sub	w24, w21, w22
ffff8000113a78b0:	f90067bb 	str	x27, [x29,#200]
	if (srcp)
ffff8000113a78b4:	b4000c59 	cbz	x25, ffff8000113a7a3c <__netif_set_xps_queue+0x360>
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a78b8:	11000502 	add	w2, w8, #0x1
ffff8000113a78bc:	aa1903e0 	mov	x0, x25
ffff8000113a78c0:	aa1303e1 	mov	x1, x19
ffff8000113a78c4:	93407c42 	sxtw	x2, w2
ffff8000113a78c8:	94000000 	bl	0 <find_next_bit>
			ffff8000113a78c8: R_AARCH64_CALL26	find_next_bit
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a78cc:	6b0002ff 	cmp	w23, w0
ffff8000113a78d0:	2a0003e8 	mov	w8, w0
ffff8000113a78d4:	54000bc9 	b.ls	ffff8000113a7a4c <__netif_set_xps_queue+0x370>
		for (i = tc, tci = j * num_tc; dev_maps && i--; tci++) {
ffff8000113a78d8:	1b157c06 	mul	w6, w0, w21
ffff8000113a78dc:	b40034fa 	cbz	x26, ffff8000113a7f78 <__netif_set_xps_queue+0x89c>
ffff8000113a78e0:	34000236 	cbz	w22, ffff8000113a7924 <__netif_set_xps_queue+0x248>
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a78e4:	93407cc1 	sxtw	x1, w6
ffff8000113a78e8:	91000821 	add	x1, x1, #0x2
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a78ec:	f8617b42 	ldr	x2, [x26,x1,lsl #3]
ffff8000113a78f0:	d37df021 	lsl	x1, x1, #3
ffff8000113a78f4:	f8216b82 	str	x2, [x28,x1]
		for (i = tc, tci = j * num_tc; dev_maps && i--; tci++) {
ffff8000113a78f8:	110004c1 	add	w1, w6, #0x1
ffff8000113a78fc:	0b1600c6 	add	w6, w6, w22
ffff8000113a7900:	14000004 	b	ffff8000113a7910 <__netif_set_xps_queue+0x234>
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a7904:	f8627b42 	ldr	x2, [x26,x2,lsl #3]
		for (i = tc, tci = j * num_tc; dev_maps && i--; tci++) {
ffff8000113a7908:	11000421 	add	w1, w1, #0x1
ffff8000113a790c:	f8236b82 	str	x2, [x28,x3]
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a7910:	93407c22 	sxtw	x2, w1
ffff8000113a7914:	91000842 	add	x2, x2, #0x2
		for (i = tc, tci = j * num_tc; dev_maps && i--; tci++) {
ffff8000113a7918:	6b06003f 	cmp	w1, w6
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a791c:	d37df043 	lsl	x3, x2, #3
		for (i = tc, tci = j * num_tc; dev_maps && i--; tci++) {
ffff8000113a7920:	54ffff21 	b.ne	ffff8000113a7904 <__netif_set_xps_queue+0x228>
ffff8000113a7924:	1100fc02 	add	w2, w0, #0x3f
ffff8000113a7928:	6b1f001f 	cmp	w0, wzr
ffff8000113a792c:	1a80b042 	csel	w2, w2, w0, lt
ffff8000113a7930:	13067c42 	asr	w2, w2, #6
ffff8000113a7934:	f94057a4 	ldr	x4, [x29,#168]
ffff8000113a7938:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113a793c:	f8626883 	ldr	x3, [x4,x2]
ffff8000113a7940:	12001401 	and	w1, w0, #0x3f
ffff8000113a7944:	9ac12463 	lsr	x3, x3, x1
		if (netif_attr_test_mask(j, mask, nr_ids) &&
ffff8000113a7948:	36002943 	tbz	w3, #0, ffff8000113a7e70 <__netif_set_xps_queue+0x794>
	if (online_mask)
ffff8000113a794c:	b940c7a4 	ldr	w4, [x29,#196]
ffff8000113a7950:	34002ee4 	cbz	w4, ffff8000113a7f2c <__netif_set_xps_queue+0x850>
ffff8000113a7954:	f9405ba4 	ldr	x4, [x29,#176]
ffff8000113a7958:	f8626882 	ldr	x2, [x4,x2]
ffff8000113a795c:	9ac12441 	lsr	x1, x2, x1
		return test_bit(j, online_mask);
ffff8000113a7960:	12000021 	and	w1, w1, #0x1
ffff8000113a7964:	34002861 	cbz	w1, ffff8000113a7e70 <__netif_set_xps_queue+0x794>
			map = xmap_dereference(new_dev_maps->attr_map[tci]);
ffff8000113a7968:	8b26cf81 	add	x1, x28, w6, sxtw #3
ffff8000113a796c:	f9400823 	ldr	x3, [x1,#16]
			while ((pos < map->len) && (map->queues[pos] != index))
ffff8000113a7970:	b9400069 	ldr	w9, [x3]
ffff8000113a7974:	34002e29 	cbz	w9, ffff8000113a7f38 <__netif_set_xps_queue+0x85c>
ffff8000113a7978:	79403061 	ldrh	w1, [x3,#24]
ffff8000113a797c:	6b14003f 	cmp	w1, w20
ffff8000113a7980:	54000180 	b.eq	ffff8000113a79b0 <__netif_set_xps_queue+0x2d4>
			int pos = 0;
ffff8000113a7984:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a7988:	14000004 	b	ffff8000113a7998 <__netif_set_xps_queue+0x2bc>
			while ((pos < map->len) && (map->queues[pos] != index))
ffff8000113a798c:	79403042 	ldrh	w2, [x2,#24]
ffff8000113a7990:	6b14005f 	cmp	w2, w20
ffff8000113a7994:	540000a0 	b.eq	ffff8000113a79a8 <__netif_set_xps_queue+0x2cc>
				pos++;
ffff8000113a7998:	11000421 	add	w1, w1, #0x1
			while ((pos < map->len) && (map->queues[pos] != index))
ffff8000113a799c:	6b09003f 	cmp	w1, w9
ffff8000113a79a0:	8b21c462 	add	x2, x3, w1, sxtw #1
ffff8000113a79a4:	54ffff41 	b.ne	ffff8000113a798c <__netif_set_xps_queue+0x2b0>
			if (pos == map->len)
ffff8000113a79a8:	6b09003f 	cmp	w1, w9
ffff8000113a79ac:	54002c60 	b.eq	ffff8000113a7f38 <__netif_set_xps_queue+0x85c>
			if (!is_rxqs_map) {
ffff8000113a79b0:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a79b4:	35000184 	cbnz	w4, ffff8000113a79e4 <__netif_set_xps_queue+0x308>
				if (numa_node_id == -2)
ffff8000113a79b8:	b940bba3 	ldr	w3, [x29,#184]
ffff8000113a79bc:	90000001 	adrp	x1, 0 <__per_cpu_offset>
			ffff8000113a79bc: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a79c0:	91000021 	add	x1, x1, #0x0
			ffff8000113a79c0: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a79c4:	3100087f 	cmn	w3, #0x2
ffff8000113a79c8:	f860d820 	ldr	x0, [x1,w0,sxtw #3]
ffff8000113a79cc:	54002da0 	b.eq	ffff8000113a7f80 <__netif_set_xps_queue+0x8a4>
					numa_node_id = -1;
ffff8000113a79d0:	b940bba3 	ldr	w3, [x29,#184]
				else if (numa_node_id != cpu_to_node(j))
ffff8000113a79d4:	b8606b60 	ldr	w0, [x27,x0]
					numa_node_id = -1;
ffff8000113a79d8:	6b00007f 	cmp	w3, w0
ffff8000113a79dc:	5a9f0063 	csinv	w3, w3, wzr, eq
ffff8000113a79e0:	b900bba3 	str	w3, [x29,#184]
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a79e4:	110004c0 	add	w0, w6, #0x1
ffff8000113a79e8:	b4fff67a 	cbz	x26, ffff8000113a78b4 <__netif_set_xps_queue+0x1d8>
ffff8000113a79ec:	7100071f 	cmp	w24, #0x1
ffff8000113a79f0:	54fff620 	b.eq	ffff8000113a78b4 <__netif_set_xps_queue+0x1d8>
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a79f4:	93407c01 	sxtw	x1, w0
ffff8000113a79f8:	91000821 	add	x1, x1, #0x2
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a79fc:	f8617b42 	ldr	x2, [x26,x1,lsl #3]
ffff8000113a7a00:	0b180003 	add	w3, w0, w24
ffff8000113a7a04:	d37df021 	lsl	x1, x1, #3
ffff8000113a7a08:	f8216b82 	str	x2, [x28,x1]
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a7a0c:	11000400 	add	w0, w0, #0x1
ffff8000113a7a10:	51000463 	sub	w3, w3, #0x1
ffff8000113a7a14:	14000004 	b	ffff8000113a7a24 <__netif_set_xps_queue+0x348>
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a7a18:	f8617b41 	ldr	x1, [x26,x1,lsl #3]
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a7a1c:	11000400 	add	w0, w0, #0x1
ffff8000113a7a20:	f8226b81 	str	x1, [x28,x2]
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a7a24:	93407c01 	sxtw	x1, w0
ffff8000113a7a28:	91000821 	add	x1, x1, #0x2
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a7a2c:	6b03001f 	cmp	w0, w3
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a7a30:	d37df022 	lsl	x2, x1, #3
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a7a34:	54ffff21 	b.ne	ffff8000113a7a18 <__netif_set_xps_queue+0x33c>
	if (srcp)
ffff8000113a7a38:	b5fff419 	cbnz	x25, ffff8000113a78b8 <__netif_set_xps_queue+0x1dc>
	return n + 1;
ffff8000113a7a3c:	11000500 	add	w0, w8, #0x1
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7a40:	6b0002ff 	cmp	w23, w0
ffff8000113a7a44:	2a0003e8 	mov	w8, w0
ffff8000113a7a48:	54fff488 	b.hi	ffff8000113a78d8 <__netif_set_xps_queue+0x1fc>
	if (is_rxqs_map)
ffff8000113a7a4c:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7a50:	340027e4 	cbz	w4, ffff8000113a7f4c <__netif_set_xps_queue+0x870>
		rcu_assign_pointer(dev->xps_rxqs_map, new_dev_maps);
ffff8000113a7a54:	f9404fa4 	ldr	x4, [x29,#152]
ffff8000113a7a58:	910fc080 	add	x0, x4, #0x3f0
ffff8000113a7a5c:	c89ffc1c 	stlr	x28, [x0]
	if (!dev_maps)
ffff8000113a7a60:	b4002b1a 	cbz	x26, ffff8000113a7fc0 <__netif_set_xps_queue+0x8e4>
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7a64:	2a1703e3 	mov	w3, w23
ffff8000113a7a68:	12800013 	mov	w19, #0xffffffff            	// #-1
ffff8000113a7a6c:	f90067a3 	str	x3, [x29,#200]
	if (srcp)
ffff8000113a7a70:	b4000359 	cbz	x25, ffff8000113a7ad8 <__netif_set_xps_queue+0x3fc>
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7a74:	11000662 	add	w2, w19, #0x1
ffff8000113a7a78:	f94067a1 	ldr	x1, [x29,#200]
ffff8000113a7a7c:	aa1903e0 	mov	x0, x25
ffff8000113a7a80:	93407c42 	sxtw	x2, w2
ffff8000113a7a84:	94000000 	bl	0 <find_next_bit>
			ffff8000113a7a84: R_AARCH64_CALL26	find_next_bit
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7a88:	6b0002ff 	cmp	w23, w0
ffff8000113a7a8c:	2a0003f3 	mov	w19, w0
ffff8000113a7a90:	540002c9 	b.ls	ffff8000113a7ae8 <__netif_set_xps_queue+0x40c>
		for (i = num_tc, tci = j * num_tc; i--; tci++) {
ffff8000113a7a94:	1b157e78 	mul	w24, w19, w21
ffff8000113a7a98:	2a1503fb 	mov	w27, w21
ffff8000113a7a9c:	34fffeb5 	cbz	w21, ffff8000113a7a70 <__netif_set_xps_queue+0x394>
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a7aa0:	93407f00 	sxtw	x0, w24
ffff8000113a7aa4:	91000800 	add	x0, x0, #0x2
ffff8000113a7aa8:	f8607b46 	ldr	x6, [x26,x0,lsl #3]
			if (map && map != new_map)
ffff8000113a7aac:	f8607b80 	ldr	x0, [x28,x0,lsl #3]
		for (i = num_tc, tci = j * num_tc; i--; tci++) {
ffff8000113a7ab0:	11000718 	add	w24, w24, #0x1
			if (map && map != new_map)
ffff8000113a7ab4:	eb06001f 	cmp	x0, x6
ffff8000113a7ab8:	540000a0 	b.eq	ffff8000113a7acc <__netif_set_xps_queue+0x3f0>
				kfree_rcu(map, rcu);
ffff8000113a7abc:	910020c0 	add	x0, x6, #0x8
ffff8000113a7ac0:	d2800101 	mov	x1, #0x8                   	// #8
			if (map && map != new_map)
ffff8000113a7ac4:	b4000046 	cbz	x6, ffff8000113a7acc <__netif_set_xps_queue+0x3f0>
				kfree_rcu(map, rcu);
ffff8000113a7ac8:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a7ac8: R_AARCH64_CALL26	kfree_call_rcu
		for (i = num_tc, tci = j * num_tc; i--; tci++) {
ffff8000113a7acc:	7100077b 	subs	w27, w27, #0x1
ffff8000113a7ad0:	54fffe81 	b.ne	ffff8000113a7aa0 <__netif_set_xps_queue+0x3c4>
	if (srcp)
ffff8000113a7ad4:	b5fffd19 	cbnz	x25, ffff8000113a7a74 <__netif_set_xps_queue+0x398>
	return n + 1;
ffff8000113a7ad8:	11000660 	add	w0, w19, #0x1
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7adc:	6b0002ff 	cmp	w23, w0
ffff8000113a7ae0:	2a0003f3 	mov	w19, w0
ffff8000113a7ae4:	54fffd88 	b.hi	ffff8000113a7a94 <__netif_set_xps_queue+0x3b8>
	kfree_rcu(dev_maps, rcu);
ffff8000113a7ae8:	aa1a03e0 	mov	x0, x26
ffff8000113a7aec:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a7af0:	94000000 	bl	0 <kfree_call_rcu>
			ffff8000113a7af0: R_AARCH64_CALL26	kfree_call_rcu
	active = true;
ffff8000113a7af4:	52800033 	mov	w19, #0x1                   	// #1
	if (!is_rxqs_map) {
ffff8000113a7af8:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7afc:	35000144 	cbnz	w4, ffff8000113a7b24 <__netif_set_xps_queue+0x448>
	q->numa_node = node;
ffff8000113a7b00:	f9404fa4 	ldr	x4, [x29,#152]
		netdev_queue_numa_node_write(netdev_get_tx_queue(dev, index),
ffff8000113a7b04:	b940bba3 	ldr	w3, [x29,#184]
ffff8000113a7b08:	f941e081 	ldr	x1, [x4,#960]
	return &dev->_tx[index];
ffff8000113a7b0c:	52802800 	mov	w0, #0x140                 	// #320
ffff8000113a7b10:	9ba07e80 	umull	x0, w20, w0
ffff8000113a7b14:	6b1f007f 	cmp	w3, wzr
	q->numa_node = node;
ffff8000113a7b18:	8b000020 	add	x0, x1, x0
ffff8000113a7b1c:	5a9fa07a 	csinv	w26, w3, wzr, ge
ffff8000113a7b20:	b900581a 	str	w26, [x0,#88]
	if (!dev_maps)
ffff8000113a7b24:	b4000afc 	cbz	x28, ffff8000113a7c80 <__netif_set_xps_queue+0x5a4>
ffff8000113a7b28:	12800004 	mov	w4, #0xffffffff            	// #-1
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7b2c:	4b1602a0 	sub	w0, w21, w22
	if (!dev_maps)
ffff8000113a7b30:	b900bba4 	str	w4, [x29,#184]
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7b34:	2a1703e3 	mov	w3, w23
		for (i = tc, tci = j * num_tc; i--; tci++)
ffff8000113a7b38:	0b0402c4 	add	w4, w22, w4
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7b3c:	51000400 	sub	w0, w0, #0x1
ffff8000113a7b40:	f90047a3 	str	x3, [x29,#136]
		for (i = tc, tci = j * num_tc; i--; tci++)
ffff8000113a7b44:	b90097a4 	str	w4, [x29,#148]
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7b48:	b900a3a0 	str	w0, [x29,#160]
	if (srcp)
ffff8000113a7b4c:	b4000879 	cbz	x25, ffff8000113a7c58 <__netif_set_xps_queue+0x57c>
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7b50:	b940bba3 	ldr	w3, [x29,#184]
ffff8000113a7b54:	f94047a1 	ldr	x1, [x29,#136]
ffff8000113a7b58:	11000462 	add	w2, w3, #0x1
ffff8000113a7b5c:	aa1903e0 	mov	x0, x25
ffff8000113a7b60:	93407c42 	sxtw	x2, w2
ffff8000113a7b64:	94000000 	bl	0 <find_next_bit>
			ffff8000113a7b64: R_AARCH64_CALL26	find_next_bit
ffff8000113a7b68:	2a0003f8 	mov	w24, w0
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7b6c:	6b1802ff 	cmp	w23, w24
ffff8000113a7b70:	b900bbb8 	str	w24, [x29,#184]
ffff8000113a7b74:	540007c9 	b.ls	ffff8000113a7c6c <__netif_set_xps_queue+0x590>
		for (i = tc, tci = j * num_tc; i--; tci++)
ffff8000113a7b78:	1b157f03 	mul	w3, w24, w21
ffff8000113a7b7c:	b900cba3 	str	w3, [x29,#200]
ffff8000113a7b80:	34000236 	cbz	w22, ffff8000113a7bc4 <__netif_set_xps_queue+0x4e8>
ffff8000113a7b84:	2a1603fa 	mov	w26, w22
ffff8000113a7b88:	2a0303fb 	mov	w27, w3
			active |= remove_xps_queue(dev_maps, tci, index);
ffff8000113a7b8c:	2a1b03e1 	mov	w1, w27
ffff8000113a7b90:	aa1c03e0 	mov	x0, x28
ffff8000113a7b94:	2a1403e2 	mov	w2, w20
ffff8000113a7b98:	97ffe121 	bl	ffff8000113a001c <remove_xps_queue>
ffff8000113a7b9c:	2a000260 	orr	w0, w19, w0
		for (i = tc, tci = j * num_tc; i--; tci++)
ffff8000113a7ba0:	7100075a 	subs	w26, w26, #0x1
			active |= remove_xps_queue(dev_maps, tci, index);
ffff8000113a7ba4:	53001c13 	uxtb	w19, w0
		for (i = tc, tci = j * num_tc; i--; tci++)
ffff8000113a7ba8:	1100077b 	add	w27, w27, #0x1
ffff8000113a7bac:	54ffff01 	b.ne	ffff8000113a7b8c <__netif_set_xps_queue+0x4b0>
ffff8000113a7bb0:	b940cba4 	ldr	w4, [x29,#200]
ffff8000113a7bb4:	b94097a3 	ldr	w3, [x29,#148]
ffff8000113a7bb8:	1100049a 	add	w26, w4, #0x1
ffff8000113a7bbc:	0b1a007a 	add	w26, w3, w26
ffff8000113a7bc0:	b900cbba 	str	w26, [x29,#200]
ffff8000113a7bc4:	1100ff01 	add	w1, w24, #0x3f
ffff8000113a7bc8:	6b1f031f 	cmp	w24, wzr
ffff8000113a7bcc:	1a98b021 	csel	w1, w1, w24, lt
ffff8000113a7bd0:	13067c21 	asr	w1, w1, #6
ffff8000113a7bd4:	f94057a4 	ldr	x4, [x29,#168]
ffff8000113a7bd8:	937d7c21 	sbfiz	x1, x1, #3, #32
ffff8000113a7bdc:	f8616882 	ldr	x2, [x4,x1]
ffff8000113a7be0:	12001700 	and	w0, w24, #0x3f
ffff8000113a7be4:	9ac02442 	lsr	x2, x2, x0
		if (!netif_attr_test_mask(j, mask, nr_ids) ||
ffff8000113a7be8:	36000102 	tbz	w2, #0, ffff8000113a7c08 <__netif_set_xps_queue+0x52c>
	if (online_mask)
ffff8000113a7bec:	b940c7a4 	ldr	w4, [x29,#196]
ffff8000113a7bf0:	34001b64 	cbz	w4, ffff8000113a7f5c <__netif_set_xps_queue+0x880>
ffff8000113a7bf4:	f9405ba4 	ldr	x4, [x29,#176]
ffff8000113a7bf8:	f8616881 	ldr	x1, [x4,x1]
ffff8000113a7bfc:	9ac02420 	lsr	x0, x1, x0
		return test_bit(j, online_mask);
ffff8000113a7c00:	12000000 	and	w0, w0, #0x1
ffff8000113a7c04:	350000e0 	cbnz	w0, ffff8000113a7c20 <__netif_set_xps_queue+0x544>
			active |= remove_xps_queue(dev_maps, tci, index);
ffff8000113a7c08:	b940cba1 	ldr	w1, [x29,#200]
ffff8000113a7c0c:	aa1c03e0 	mov	x0, x28
ffff8000113a7c10:	2a1403e2 	mov	w2, w20
ffff8000113a7c14:	97ffe102 	bl	ffff8000113a001c <remove_xps_queue>
ffff8000113a7c18:	2a000260 	orr	w0, w19, w0
ffff8000113a7c1c:	53001c13 	uxtb	w19, w0
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7c20:	b940cba4 	ldr	w4, [x29,#200]
ffff8000113a7c24:	b940a3b8 	ldr	w24, [x29,#160]
ffff8000113a7c28:	1100049a 	add	w26, w4, #0x1
ffff8000113a7c2c:	34fff918 	cbz	w24, ffff8000113a7b4c <__netif_set_xps_queue+0x470>
			active |= remove_xps_queue(dev_maps, tci, index);
ffff8000113a7c30:	2a1a03e1 	mov	w1, w26
ffff8000113a7c34:	aa1c03e0 	mov	x0, x28
ffff8000113a7c38:	2a1403e2 	mov	w2, w20
ffff8000113a7c3c:	97ffe0f8 	bl	ffff8000113a001c <remove_xps_queue>
ffff8000113a7c40:	2a000260 	orr	w0, w19, w0
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7c44:	71000718 	subs	w24, w24, #0x1
			active |= remove_xps_queue(dev_maps, tci, index);
ffff8000113a7c48:	53001c13 	uxtb	w19, w0
		for (i = num_tc - tc, tci++; --i; tci++)
ffff8000113a7c4c:	1100075a 	add	w26, w26, #0x1
ffff8000113a7c50:	54ffff01 	b.ne	ffff8000113a7c30 <__netif_set_xps_queue+0x554>
	if (srcp)
ffff8000113a7c54:	b5fff7f9 	cbnz	x25, ffff8000113a7b50 <__netif_set_xps_queue+0x474>
	return n + 1;
ffff8000113a7c58:	b940bba4 	ldr	w4, [x29,#184]
ffff8000113a7c5c:	11000498 	add	w24, w4, #0x1
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7c60:	6b1802ff 	cmp	w23, w24
ffff8000113a7c64:	b900bbb8 	str	w24, [x29,#184]
ffff8000113a7c68:	54fff888 	b.hi	ffff8000113a7b78 <__netif_set_xps_queue+0x49c>
	if (!active)
ffff8000113a7c6c:	350000b3 	cbnz	w19, ffff8000113a7c80 <__netif_set_xps_queue+0x5a4>
		reset_xps_maps(dev, dev_maps, is_rxqs_map);
ffff8000113a7c70:	f9404fa0 	ldr	x0, [x29,#152]
ffff8000113a7c74:	394303a2 	ldrb	w2, [x29,#192]
ffff8000113a7c78:	aa1c03e1 	mov	x1, x28
ffff8000113a7c7c:	97fff2a1 	bl	ffff8000113a4700 <reset_xps_maps>
	mutex_unlock(&xps_map_mutex);
ffff8000113a7c80:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7c80: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a7c84:	91000020 	add	x0, x1, #0x0
			ffff8000113a7c84: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a7c88:	91024000 	add	x0, x0, #0x90
ffff8000113a7c8c:	94000000 	bl	0 <mutex_unlock>
			ffff8000113a7c8c: R_AARCH64_CALL26	mutex_unlock
}
ffff8000113a7c90:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7c94:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7c98:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a7c9c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a7ca0:	a94573fb 	ldp	x27, x28, [sp,#80]
	return 0;
ffff8000113a7ca4:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a7ca8:	a8cd7bfd 	ldp	x29, x30, [sp],#208
ffff8000113a7cac:	d65f03c0 	ret
		dev = netdev_get_tx_queue(dev, index)->sb_dev ? : dev;
ffff8000113a7cb0:	f9404fa4 	ldr	x4, [x29,#152]
		struct netdev_tc_txq *tc = &dev->tc_to_txq[0];
ffff8000113a7cb4:	91212880 	add	x0, x4, #0x84a
ffff8000113a7cb8:	91222883 	add	x3, x4, #0x88a
		for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
ffff8000113a7cbc:	52800016 	mov	w22, #0x0                   	// #0
			if ((txq - tc->offset) < tc->count)
ffff8000113a7cc0:	79400402 	ldrh	w2, [x0,#2]
ffff8000113a7cc4:	79400001 	ldrh	w1, [x0]
ffff8000113a7cc8:	4b020282 	sub	w2, w20, w2
ffff8000113a7ccc:	6b01005f 	cmp	w2, w1
		for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
ffff8000113a7cd0:	91001000 	add	x0, x0, #0x4
			if ((txq - tc->offset) < tc->count)
ffff8000113a7cd4:	540014c3 	b.cc	ffff8000113a7f6c <__netif_set_xps_queue+0x890>
		for (i = 0; i < TC_MAX_QUEUE; i++, tc++) {
ffff8000113a7cd8:	eb03001f 	cmp	x0, x3
ffff8000113a7cdc:	110006d6 	add	w22, w22, #0x1
ffff8000113a7ce0:	54ffff01 	b.ne	ffff8000113a7cc0 <__netif_set_xps_queue+0x5e4>
}
ffff8000113a7ce4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7ce8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7cec:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a7cf0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a7cf4:	a94573fb 	ldp	x27, x28, [sp,#80]
			return -EINVAL;
ffff8000113a7cf8:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113a7cfc:	a8cd7bfd 	ldp	x29, x30, [sp],#208
ffff8000113a7d00:	d65f03c0 	ret
	else if (src2p)
ffff8000113a7d04:	b940cba4 	ldr	w4, [x29,#200]
ffff8000113a7d08:	34000564 	cbz	w4, ffff8000113a7db4 <__netif_set_xps_queue+0x6d8>
		return find_next_bit(src2p, nr_bits, n + 1);
ffff8000113a7d0c:	110004e2 	add	w2, w7, #0x1
ffff8000113a7d10:	f94057a0 	ldr	x0, [x29,#168]
ffff8000113a7d14:	aa1803e1 	mov	x1, x24
ffff8000113a7d18:	93407c42 	sxtw	x2, w2
ffff8000113a7d1c:	94000000 	bl	0 <find_next_bit>
			ffff8000113a7d1c: R_AARCH64_CALL26	find_next_bit
ffff8000113a7d20:	2a0003e7 	mov	w7, w0
ffff8000113a7d24:	17fffeb4 	b	ffff8000113a77f4 <__netif_set_xps_queue+0x118>
ffff8000113a7d28:	d2800800 	mov	x0, #0x40                  	// #64
ffff8000113a7d2c:	aa1a03fb 	mov	x27, x26
ffff8000113a7d30:	2a1a03e3 	mov	w3, w26
	int alloc_len = XPS_MIN_MAP_ALLOC;
ffff8000113a7d34:	5280028b 	mov	w11, #0x14                  	// #20
	if (is_rxqs_map)
ffff8000113a7d38:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7d3c:	34000544 	cbz	w4, ffff8000113a7de4 <__netif_set_xps_queue+0x708>
	return __kmalloc(size, flags);
ffff8000113a7d40:	5281b801 	mov	w1, #0xdc0                 	// #3520
ffff8000113a7d44:	f9003fa3 	str	x3, [x29,#120]
ffff8000113a7d48:	f90037a7 	str	x7, [x29,#104]
ffff8000113a7d4c:	f90043a9 	str	x9, [x29,#128]
ffff8000113a7d50:	f9003bab 	str	x11, [x29,#112]
ffff8000113a7d54:	94000000 	bl	0 <__kmalloc>
			ffff8000113a7d54: R_AARCH64_CALL26	__kmalloc
ffff8000113a7d58:	f9403fa3 	ldr	x3, [x29,#120]
ffff8000113a7d5c:	f94037a7 	ldr	x7, [x29,#104]
ffff8000113a7d60:	f94043a9 	ldr	x9, [x29,#128]
ffff8000113a7d64:	f9403bab 	ldr	x11, [x29,#112]
	if (!new_map)
ffff8000113a7d68:	b4001300 	cbz	x0, ffff8000113a7fc8 <__netif_set_xps_queue+0x8ec>
	for (i = 0; i < pos; i++)
ffff8000113a7d6c:	6b1f007f 	cmp	w3, wzr
ffff8000113a7d70:	5400018d 	b.le	ffff8000113a7da0 <__netif_set_xps_queue+0x6c4>
ffff8000113a7d74:	5100046a 	sub	w10, w3, #0x1
ffff8000113a7d78:	9100054a 	add	x10, x10, #0x1
ffff8000113a7d7c:	d37ff94a 	lsl	x10, x10, #1
ffff8000113a7d80:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a7d84:	8b010362 	add	x2, x27, x1
		new_map->queues[i] = map->queues[i];
ffff8000113a7d88:	79403048 	ldrh	w8, [x2,#24]
ffff8000113a7d8c:	8b010002 	add	x2, x0, x1
ffff8000113a7d90:	91000821 	add	x1, x1, #0x2
ffff8000113a7d94:	79003048 	strh	w8, [x2,#24]
	for (i = 0; i < pos; i++)
ffff8000113a7d98:	eb0a003f 	cmp	x1, x10
ffff8000113a7d9c:	54ffff41 	b.ne	ffff8000113a7d84 <__netif_set_xps_queue+0x6a8>
	new_map->alloc_len = alloc_len;
ffff8000113a7da0:	b900040b 	str	w11, [x0,#4]
	new_map->len = pos;
ffff8000113a7da4:	b9000003 	str	w3, [x0]
ffff8000113a7da8:	aa0003e6 	mov	x6, x0
ffff8000113a7dac:	93407d28 	sxtw	x8, w9
ffff8000113a7db0:	17fffea9 	b	ffff8000113a7854 <__netif_set_xps_queue+0x178>
	return n + 1;
ffff8000113a7db4:	110004e7 	add	w7, w7, #0x1
ffff8000113a7db8:	17fffe8f 	b	ffff8000113a77f4 <__netif_set_xps_queue+0x118>
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7dbc:	2a0303e2 	mov	w2, w3
		if (pos < map->alloc_len)
ffff8000113a7dc0:	b940076b 	ldr	w11, [x27,#4]
ffff8000113a7dc4:	6b0b005f 	cmp	w2, w11
ffff8000113a7dc8:	54ffd443 	b.cc	ffff8000113a7850 <__netif_set_xps_queue+0x174>
		alloc_len = map->alloc_len * 2;
ffff8000113a7dcc:	531f796b 	lsl	w11, w11, #1
ffff8000113a7dd0:	93407d60 	sxtw	x0, w11
	if (is_rxqs_map)
ffff8000113a7dd4:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7dd8:	91003000 	add	x0, x0, #0xc
ffff8000113a7ddc:	d37ff800 	lsl	x0, x0, #1
ffff8000113a7de0:	35fffb04 	cbnz	w4, ffff8000113a7d40 <__netif_set_xps_queue+0x664>
ffff8000113a7de4:	90000001 	adrp	x1, 0 <__per_cpu_offset>
			ffff8000113a7de4: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113a7de8:	91000021 	add	x1, x1, #0x0
			ffff8000113a7de8: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113a7dec:	f867d821 	ldr	x1, [x1,w7,sxtw #3]
		return kmem_cache_alloc_node_trace(
				kmalloc_caches[kmalloc_type(flags)][i],
						flags, node, size);
	}
#endif
	return __kmalloc_node(size, flags, node);
ffff8000113a7df0:	f9405fa4 	ldr	x4, [x29,#184]
ffff8000113a7df4:	b8616882 	ldr	w2, [x4,x1]
ffff8000113a7df8:	5281b801 	mov	w1, #0xdc0                 	// #3520
ffff8000113a7dfc:	f9003fa3 	str	x3, [x29,#120]
ffff8000113a7e00:	f90037a7 	str	x7, [x29,#104]
ffff8000113a7e04:	f90043a9 	str	x9, [x29,#128]
ffff8000113a7e08:	f9003bab 	str	x11, [x29,#112]
ffff8000113a7e0c:	94000000 	bl	0 <__kmalloc_node>
			ffff8000113a7e0c: R_AARCH64_CALL26	__kmalloc_node
ffff8000113a7e10:	f9403bab 	ldr	x11, [x29,#112]
ffff8000113a7e14:	f94043a9 	ldr	x9, [x29,#128]
ffff8000113a7e18:	f94037a7 	ldr	x7, [x29,#104]
ffff8000113a7e1c:	f9403fa3 	ldr	x3, [x29,#120]
ffff8000113a7e20:	17ffffd2 	b	ffff8000113a7d68 <__netif_set_xps_queue+0x68c>
	return __kmalloc(size, flags);
ffff8000113a7e24:	f94053a0 	ldr	x0, [x29,#160]
ffff8000113a7e28:	5281b801 	mov	w1, #0xdc0                 	// #3520
ffff8000113a7e2c:	f90037a7 	str	x7, [x29,#104]
ffff8000113a7e30:	94000000 	bl	0 <__kmalloc>
			ffff8000113a7e30: R_AARCH64_CALL26	__kmalloc
ffff8000113a7e34:	aa0003fc 	mov	x28, x0
		if (!new_dev_maps) {
ffff8000113a7e38:	f94037a7 	ldr	x7, [x29,#104]
ffff8000113a7e3c:	b5ffce20 	cbnz	x0, ffff8000113a7800 <__netif_set_xps_queue+0x124>
			mutex_unlock(&xps_map_mutex);
ffff8000113a7e40:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7e40: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a7e44:	91000020 	add	x0, x1, #0x0
			ffff8000113a7e44: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a7e48:	91024000 	add	x0, x0, #0x90
ffff8000113a7e4c:	94000000 	bl	0 <mutex_unlock>
			ffff8000113a7e4c: R_AARCH64_CALL26	mutex_unlock
}
ffff8000113a7e50:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a7e54:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a7e58:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a7e5c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a7e60:	a94573fb 	ldp	x27, x28, [sp,#80]
			return -ENOMEM;
ffff8000113a7e64:	12800160 	mov	w0, #0xfffffff4            	// #-12
}
ffff8000113a7e68:	a8cd7bfd 	ldp	x29, x30, [sp],#208
ffff8000113a7e6c:	d65f03c0 	ret
		} else if (dev_maps) {
ffff8000113a7e70:	b4ffd23a 	cbz	x26, ffff8000113a78b4 <__netif_set_xps_queue+0x1d8>
			map = xmap_dereference(dev_maps->attr_map[tci]);
ffff8000113a7e74:	93407cc0 	sxtw	x0, w6
ffff8000113a7e78:	91000800 	add	x0, x0, #0x2
			RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);
ffff8000113a7e7c:	f8607b41 	ldr	x1, [x26,x0,lsl #3]
ffff8000113a7e80:	d37df000 	lsl	x0, x0, #3
ffff8000113a7e84:	f8206b81 	str	x1, [x28,x0]
		for (i = num_tc - tc, tci++; dev_maps && --i; tci++) {
ffff8000113a7e88:	110004c0 	add	w0, w6, #0x1
ffff8000113a7e8c:	17fffed8 	b	ffff8000113a79ec <__netif_set_xps_queue+0x310>
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a7e90:	2a0203e3 	mov	w3, w2
ffff8000113a7e94:	17ffffcb 	b	ffff8000113a7dc0 <__netif_set_xps_queue+0x6e4>
	mutex_lock(&xps_map_mutex);
ffff8000113a7e98:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a7e98: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a7e9c:	91000020 	add	x0, x1, #0x0
			ffff8000113a7e9c: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a7ea0:	91024000 	add	x0, x0, #0x90
	int maps_sz, num_tc = 1, tc = 0;
ffff8000113a7ea4:	2a0503f6 	mov	w22, w5
	mutex_lock(&xps_map_mutex);
ffff8000113a7ea8:	94000000 	bl	0 <mutex_lock>
			ffff8000113a7ea8: R_AARCH64_CALL26	mutex_lock
	if (is_rxqs_map) {
ffff8000113a7eac:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a7eb0:	52800033 	mov	w19, #0x1                   	// #1
	int maps_sz, num_tc = 1, tc = 0;
ffff8000113a7eb4:	2a1303f5 	mov	w21, w19
	if (is_rxqs_map) {
ffff8000113a7eb8:	35ffc584 	cbnz	w4, ffff8000113a7768 <__netif_set_xps_queue+0x8c>
		maps_sz = XPS_CPU_DEV_MAPS_SIZE(num_tc);
ffff8000113a7ebc:	90000017 	adrp	x23, 0 <nr_cpu_ids>
			ffff8000113a7ebc: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
ffff8000113a7ec0:	b94002e2 	ldr	w2, [x23]
			ffff8000113a7ec0: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
ffff8000113a7ec4:	90000019 	adrp	x25, 0 <__cpu_possible_mask>
			ffff8000113a7ec4: R_AARCH64_ADR_PREL_PG_HI21	__cpu_possible_mask
ffff8000113a7ec8:	1b027e62 	mul	w2, w19, w2
ffff8000113a7ecc:	91000339 	add	x25, x25, #0x0
			ffff8000113a7ecc: R_AARCH64_ADD_ABS_LO12_NC	__cpu_possible_mask
ffff8000113a7ed0:	91000842 	add	x2, x2, #0x2
ffff8000113a7ed4:	531d7042 	lsl	w2, w2, #3
ffff8000113a7ed8:	aa1903e0 	mov	x0, x25
ffff8000113a7edc:	52820001 	mov	w1, #0x1000                	// #4096
ffff8000113a7ee0:	f90043a2 	str	x2, [x29,#128]
ffff8000113a7ee4:	94000000 	bl	0 <__bitmap_weight>
			ffff8000113a7ee4: R_AARCH64_CALL26	__bitmap_weight
		if (num_possible_cpus() > 1) {
ffff8000113a7ee8:	7100041f 	cmp	w0, #0x1
ffff8000113a7eec:	f94057a4 	ldr	x4, [x29,#168]
ffff8000113a7ef0:	f94043a2 	ldr	x2, [x29,#128]
ffff8000113a7ef4:	540004e9 	b.ls	ffff8000113a7f90 <__netif_set_xps_queue+0x8b4>
ffff8000113a7ef8:	eb1f009f 	cmp	x4, xzr
ffff8000113a7efc:	1a9f07e4 	cset	w4, ne
ffff8000113a7f00:	b900cba4 	str	w4, [x29,#200]
			online_mask = cpumask_bits(cpu_online_mask);
ffff8000113a7f04:	90000000 	adrp	x0, 0 <__cpu_online_mask>
			ffff8000113a7f04: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a7f08:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113a7f0c:	91000000 	add	x0, x0, #0x0
			ffff8000113a7f0c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a7f10:	b940cbb3 	ldr	w19, [x29,#200]
ffff8000113a7f14:	b900c7a4 	str	w4, [x29,#196]
ffff8000113a7f18:	f9005ba0 	str	x0, [x29,#176]
		dev_maps = xmap_dereference(dev->xps_cpus_map);
ffff8000113a7f1c:	f9404fa4 	ldr	x4, [x29,#152]
		nr_ids = nr_cpu_ids;
ffff8000113a7f20:	b94002f7 	ldr	w23, [x23]
			ffff8000113a7f20: R_AARCH64_LDST32_ABS_LO12_NC	nr_cpu_ids
		dev_maps = xmap_dereference(dev->xps_cpus_map);
ffff8000113a7f24:	f941f49a 	ldr	x26, [x4,#1000]
ffff8000113a7f28:	17fffe1f 	b	ffff8000113a77a4 <__netif_set_xps_queue+0xc8>
	return (j < nr_bits);
ffff8000113a7f2c:	eb20c27f 	cmp	x19, w0, sxtw
ffff8000113a7f30:	1a9f97e1 	cset	w1, hi
ffff8000113a7f34:	17fffe8c 	b	ffff8000113a7964 <__netif_set_xps_queue+0x288>
				map->queues[map->len++] = index;
ffff8000113a7f38:	11000521 	add	w1, w9, #0x1
ffff8000113a7f3c:	b9000061 	str	w1, [x3]
ffff8000113a7f40:	8b294463 	add	x3, x3, w9, uxtw #1
ffff8000113a7f44:	79003074 	strh	w20, [x3,#24]
ffff8000113a7f48:	17fffe9a 	b	ffff8000113a79b0 <__netif_set_xps_queue+0x2d4>
		rcu_assign_pointer(dev->xps_cpus_map, new_dev_maps);
ffff8000113a7f4c:	f9404fa4 	ldr	x4, [x29,#152]
ffff8000113a7f50:	910fa080 	add	x0, x4, #0x3e8
ffff8000113a7f54:	c89ffc1c 	stlr	x28, [x0]
ffff8000113a7f58:	17fffec2 	b	ffff8000113a7a60 <__netif_set_xps_queue+0x384>
ffff8000113a7f5c:	f94047a3 	ldr	x3, [x29,#136]
ffff8000113a7f60:	eb38c07f 	cmp	x3, w24, sxtw
ffff8000113a7f64:	1a9f97e0 	cset	w0, hi
ffff8000113a7f68:	17ffff27 	b	ffff8000113a7c04 <__netif_set_xps_queue+0x528>
ffff8000113a7f6c:	2a0503f3 	mov	w19, w5
			if ((txq - tc->offset) < tc->count)
ffff8000113a7f70:	f9004fa4 	str	x4, [x29,#152]
ffff8000113a7f74:	17fffdf7 	b	ffff8000113a7750 <__netif_set_xps_queue+0x74>
ffff8000113a7f78:	0b0602c6 	add	w6, w22, w6
ffff8000113a7f7c:	17fffe6a 	b	ffff8000113a7924 <__netif_set_xps_queue+0x248>
ffff8000113a7f80:	f94067a4 	ldr	x4, [x29,#200]
ffff8000113a7f84:	b8606880 	ldr	w0, [x4,x0]
ffff8000113a7f88:	b900bba0 	str	w0, [x29,#184]
ffff8000113a7f8c:	17fffe96 	b	ffff8000113a79e4 <__netif_set_xps_queue+0x308>
ffff8000113a7f90:	eb1f009f 	cmp	x4, xzr
		if (num_possible_cpus() > 1) {
ffff8000113a7f94:	b940c3b3 	ldr	w19, [x29,#192]
	const unsigned long *online_mask = NULL, *possible_mask = NULL;
ffff8000113a7f98:	d2800019 	mov	x25, #0x0                   	// #0
ffff8000113a7f9c:	1a9f07e4 	cset	w4, ne
ffff8000113a7fa0:	b900cba4 	str	w4, [x29,#200]
		if (num_possible_cpus() > 1) {
ffff8000113a7fa4:	b900c7b3 	str	w19, [x29,#196]
	const unsigned long *online_mask = NULL, *possible_mask = NULL;
ffff8000113a7fa8:	f9005bb9 	str	x25, [x29,#176]
ffff8000113a7fac:	17ffffdc 	b	ffff8000113a7f1c <__netif_set_xps_queue+0x840>
	int i, j, tci, numa_node_id = -2;
ffff8000113a7fb0:	12800024 	mov	w4, #0xfffffffe            	// #-2
ffff8000113a7fb4:	aa1a03fc 	mov	x28, x26
ffff8000113a7fb8:	b900bba4 	str	w4, [x29,#184]
ffff8000113a7fbc:	17fffecf 	b	ffff8000113a7af8 <__netif_set_xps_queue+0x41c>
	active = true;
ffff8000113a7fc0:	52800033 	mov	w19, #0x1                   	// #1
ffff8000113a7fc4:	17fffecd 	b	ffff8000113a7af8 <__netif_set_xps_queue+0x41c>
	if (!new_map)
ffff8000113a7fc8:	12800016 	mov	w22, #0xffffffff            	// #-1
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7fcc:	2a1703f8 	mov	w24, w23
	if (srcp)
ffff8000113a7fd0:	b4000399 	cbz	x25, ffff8000113a8040 <__netif_set_xps_queue+0x964>
		return find_next_bit(srcp, nr_bits, n + 1);
ffff8000113a7fd4:	110006c2 	add	w2, w22, #0x1
ffff8000113a7fd8:	aa1903e0 	mov	x0, x25
ffff8000113a7fdc:	aa1803e1 	mov	x1, x24
ffff8000113a7fe0:	93407c42 	sxtw	x2, w2
ffff8000113a7fe4:	94000000 	bl	0 <find_next_bit>
			ffff8000113a7fe4: R_AARCH64_CALL26	find_next_bit
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a7fe8:	6b0002ff 	cmp	w23, w0
ffff8000113a7fec:	2a0003f6 	mov	w22, w0
ffff8000113a7ff0:	54000309 	b.ls	ffff8000113a8050 <__netif_set_xps_queue+0x974>
		for (i = num_tc, tci = j * num_tc; i--; tci++) {
ffff8000113a7ff4:	1b157ed4 	mul	w20, w22, w21
ffff8000113a7ff8:	2a1503f3 	mov	w19, w21
ffff8000113a7ffc:	350000b5 	cbnz	w21, ffff8000113a8010 <__netif_set_xps_queue+0x934>
ffff8000113a8000:	17fffff4 	b	ffff8000113a7fd0 <__netif_set_xps_queue+0x8f4>
ffff8000113a8004:	71000673 	subs	w19, w19, #0x1
ffff8000113a8008:	11000694 	add	w20, w20, #0x1
ffff8000113a800c:	54fffe20 	b.eq	ffff8000113a7fd0 <__netif_set_xps_queue+0x8f4>
			new_map = xmap_dereference(new_dev_maps->attr_map[tci]);
ffff8000113a8010:	93407e81 	sxtw	x1, w20
ffff8000113a8014:	91000821 	add	x1, x1, #0x2
ffff8000113a8018:	f8617b80 	ldr	x0, [x28,x1,lsl #3]
			      xmap_dereference(dev_maps->attr_map[tci]) :
ffff8000113a801c:	b40000fa 	cbz	x26, ffff8000113a8038 <__netif_set_xps_queue+0x95c>
ffff8000113a8020:	f8617b41 	ldr	x1, [x26,x1,lsl #3]
			if (new_map && new_map != map)
ffff8000113a8024:	eb00003f 	cmp	x1, x0
ffff8000113a8028:	54fffee0 	b.eq	ffff8000113a8004 <__netif_set_xps_queue+0x928>
ffff8000113a802c:	b4fffec0 	cbz	x0, ffff8000113a8004 <__netif_set_xps_queue+0x928>
				kfree(new_map);
ffff8000113a8030:	94000000 	bl	0 <kfree>
			ffff8000113a8030: R_AARCH64_CALL26	kfree
ffff8000113a8034:	17fffff4 	b	ffff8000113a8004 <__netif_set_xps_queue+0x928>
			      xmap_dereference(dev_maps->attr_map[tci]) :
ffff8000113a8038:	aa1a03e1 	mov	x1, x26
ffff8000113a803c:	17fffffa 	b	ffff8000113a8024 <__netif_set_xps_queue+0x948>
	return n + 1;
ffff8000113a8040:	110006c0 	add	w0, w22, #0x1
	for (j = -1; j = netif_attrmask_next(j, possible_mask, nr_ids),
ffff8000113a8044:	6b0002ff 	cmp	w23, w0
ffff8000113a8048:	2a0003f6 	mov	w22, w0
ffff8000113a804c:	54fffd48 	b.hi	ffff8000113a7ff4 <__netif_set_xps_queue+0x918>
	mutex_unlock(&xps_map_mutex);
ffff8000113a8050:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8050: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a8054:	91000040 	add	x0, x2, #0x0
			ffff8000113a8054: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a8058:	91024000 	add	x0, x0, #0x90
ffff8000113a805c:	94000000 	bl	0 <mutex_unlock>
			ffff8000113a805c: R_AARCH64_CALL26	mutex_unlock
	kfree(new_dev_maps);
ffff8000113a8060:	aa1c03e0 	mov	x0, x28
ffff8000113a8064:	94000000 	bl	0 <kfree>
			ffff8000113a8064: R_AARCH64_CALL26	kfree
}
ffff8000113a8068:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a806c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8070:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a8074:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a8078:	a94573fb 	ldp	x27, x28, [sp,#80]
	return -ENOMEM;
ffff8000113a807c:	12800160 	mov	w0, #0xfffffff4            	// #-12
}
ffff8000113a8080:	a8cd7bfd 	ldp	x29, x30, [sp],#208
ffff8000113a8084:	d65f03c0 	ret
	STATIC_KEY_CHECK_USE(key);
ffff8000113a8088:	90000018 	adrp	x24, 0 <static_key_initialized>
			ffff8000113a8088: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113a808c:	39400300 	ldrb	w0, [x24]
			ffff8000113a808c: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a8090:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8090: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a8094:	34000420 	cbz	w0, ffff8000113a8118 <__netif_set_xps_queue+0xa3c>
ATOMIC_OPS(add, add, I)
ffff8000113a8098:	91000262 	add	x2, x19, #0x0
			ffff8000113a8098: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a809c:	9124e043 	add	x3, x2, #0x938
ffff8000113a80a0:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a80a4:	885f7c60 	ldxr	w0, [x3]
ffff8000113a80a8:	11000400 	add	w0, w0, #0x1
ffff8000113a80ac:	88017c60 	stxr	w1, w0, [x3]
ffff8000113a80b0:	35ffffa1 	cbnz	w1, ffff8000113a80a4 <__netif_set_xps_queue+0x9c8>
		if (is_rxqs_map)
ffff8000113a80b4:	b940c3a4 	ldr	w4, [x29,#192]
ffff8000113a80b8:	34ffbee4 	cbz	w4, ffff8000113a7894 <__netif_set_xps_queue+0x1b8>
ffff8000113a80bc:	39400300 	ldrb	w0, [x24]
			ffff8000113a80bc: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113a80c0:	340001a0 	cbz	w0, ffff8000113a80f4 <__netif_set_xps_queue+0xa18>
ffff8000113a80c4:	91000260 	add	x0, x19, #0x0
			ffff8000113a80c4: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a80c8:	91250003 	add	x3, x0, #0x940
ffff8000113a80cc:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a80d0:	885f7c61 	ldxr	w1, [x3]
ffff8000113a80d4:	11000421 	add	w1, w1, #0x1
ffff8000113a80d8:	88027c61 	stxr	w2, w1, [x3]
ffff8000113a80dc:	35ffffa2 	cbnz	w2, ffff8000113a80d0 <__netif_set_xps_queue+0x9f4>
ffff8000113a80e0:	17fffded 	b	ffff8000113a7894 <__netif_set_xps_queue+0x1b8>
	for (pos = 0; map && pos < map->len; pos++) {
ffff8000113a80e4:	d2800800 	mov	x0, #0x40                  	// #64
ffff8000113a80e8:	2a1b03e3 	mov	w3, w27
	int alloc_len = XPS_MIN_MAP_ALLOC;
ffff8000113a80ec:	5280028b 	mov	w11, #0x14                  	// #20
ffff8000113a80f0:	17ffff12 	b	ffff8000113a7d38 <__netif_set_xps_queue+0x65c>
ffff8000113a80f4:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a80f4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a80f8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a80f8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a80fc:	91000021 	add	x1, x1, #0x0
			ffff8000113a80fc: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a8100:	91000000 	add	x0, x0, #0x0
			ffff8000113a8100: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a8104:	9100a021 	add	x1, x1, #0x28
ffff8000113a8108:	91250042 	add	x2, x2, #0x940
ffff8000113a810c:	94000000 	bl	0 <__warn_printk>
			ffff8000113a810c: R_AARCH64_CALL26	__warn_printk
ffff8000113a8110:	d4210000 	brk	#0x800
ffff8000113a8114:	17ffffec 	b	ffff8000113a80c4 <__netif_set_xps_queue+0x9e8>
ffff8000113a8118:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8118: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a811c:	91000262 	add	x2, x19, #0x0
			ffff8000113a811c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a8120:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8120: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113a8124:	91000021 	add	x1, x1, #0x0
			ffff8000113a8124: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a8128:	91000000 	add	x0, x0, #0x0
			ffff8000113a8128: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113a812c:	9100a021 	add	x1, x1, #0x28
ffff8000113a8130:	9124e042 	add	x2, x2, #0x938
ffff8000113a8134:	94000000 	bl	0 <__warn_printk>
			ffff8000113a8134: R_AARCH64_CALL26	__warn_printk
ffff8000113a8138:	d4210000 	brk	#0x800
ffff8000113a813c:	17ffffd7 	b	ffff8000113a8098 <__netif_set_xps_queue+0x9bc>

ffff8000113a8140 <netif_set_xps_queue>:
{
ffff8000113a8140:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a8144:	910003fd 	mov	x29, sp
ffff8000113a8148:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a814c:	aa0003f3 	mov	x19, x0
ffff8000113a8150:	aa1e03e0 	mov	x0, x30
ffff8000113a8154:	53003c54 	uxth	w20, w2
ffff8000113a8158:	f90017a1 	str	x1, [x29,#40]
ffff8000113a815c:	94000000 	bl	0 <_mcount>
			ffff8000113a815c: R_AARCH64_CALL26	_mcount
	cpus_read_lock();
ffff8000113a8160:	94000000 	bl	0 <cpus_read_lock>
			ffff8000113a8160: R_AARCH64_CALL26	cpus_read_lock
	ret =  __netif_set_xps_queue(dev, cpumask_bits(mask), index, false);
ffff8000113a8164:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a8168:	2a1403e2 	mov	w2, w20
ffff8000113a816c:	52800003 	mov	w3, #0x0                   	// #0
ffff8000113a8170:	aa1303e0 	mov	x0, x19
ffff8000113a8174:	94000000 	bl	ffff8000113a76dc <__netif_set_xps_queue>
			ffff8000113a8174: R_AARCH64_CALL26	__netif_set_xps_queue
	cpus_read_unlock();
ffff8000113a8178:	f90017a0 	str	x0, [x29,#40]
ffff8000113a817c:	94000000 	bl	0 <cpus_read_unlock>
			ffff8000113a817c: R_AARCH64_CALL26	cpus_read_unlock
}
ffff8000113a8180:	f94017a0 	ldr	x0, [x29,#40]
ffff8000113a8184:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8188:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a818c:	d65f03c0 	ret

ffff8000113a8190 <netdev_boot_base>:
{
ffff8000113a8190:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113a8194:	910003fd 	mov	x29, sp
ffff8000113a8198:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a819c:	f90013f5 	str	x21, [sp,#32]
ffff8000113a81a0:	aa0003e2 	mov	x2, x0
ffff8000113a81a4:	2a0103e3 	mov	w3, w1
ffff8000113a81a8:	aa1e03e0 	mov	x0, x30
ffff8000113a81ac:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a81b0:	f9001ba3 	str	x3, [x29,#48]
ffff8000113a81b4:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a81b4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a81b8:	94000000 	bl	0 <_mcount>
			ffff8000113a81b8: R_AARCH64_CALL26	_mcount
ffff8000113a81bc:	f9400284 	ldr	x4, [x20]
			ffff8000113a81bc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	sprintf(name, "%s%d", prefix, unit);
ffff8000113a81c0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a81c0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x608
ffff8000113a81c4:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a81c8:	f9401ba3 	ldr	x3, [x29,#48]
ffff8000113a81cc:	91000021 	add	x1, x1, #0x0
			ffff8000113a81cc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x608
ffff8000113a81d0:	910123a0 	add	x0, x29, #0x48
{
ffff8000113a81d4:	f9002fa4 	str	x4, [x29,#88]
	sprintf(name, "%s%d", prefix, unit);
ffff8000113a81d8:	94000000 	bl	0 <sprintf>
			ffff8000113a81d8: R_AARCH64_CALL26	sprintf
	node_name = netdev_name_node_lookup(net, name);
ffff8000113a81dc:	90000000 	adrp	x0, 0 <init_net>
			ffff8000113a81dc: R_AARCH64_ADR_PREL_PG_HI21	init_net
ffff8000113a81e0:	91000000 	add	x0, x0, #0x0
			ffff8000113a81e0: R_AARCH64_ADD_ABS_LO12_NC	init_net
ffff8000113a81e4:	910123a1 	add	x1, x29, #0x48
ffff8000113a81e8:	97ffdd22 	bl	ffff80001139f670 <netdev_name_node_lookup>
	return node_name ? node_name->dev : NULL;
ffff8000113a81ec:	b4000180 	cbz	x0, ffff8000113a821c <netdev_boot_base+0x8c>
	if (__dev_get_by_name(&init_net, name))
ffff8000113a81f0:	f9401001 	ldr	x1, [x0,#32]
		return 1;
ffff8000113a81f4:	d2800020 	mov	x0, #0x1                   	// #1
	if (__dev_get_by_name(&init_net, name))
ffff8000113a81f8:	b4000121 	cbz	x1, ffff8000113a821c <netdev_boot_base+0x8c>
}
ffff8000113a81fc:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113a8200:	f9400281 	ldr	x1, [x20]
			ffff8000113a8200: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a8204:	eb01005f 	cmp	x2, x1
ffff8000113a8208:	54000281 	b.ne	ffff8000113a8258 <netdev_boot_base+0xc8>
ffff8000113a820c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8210:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a8214:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113a8218:	d65f03c0 	ret
ffff8000113a821c:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a821c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a8220:	910002b5 	add	x21, x21, #0x0
			ffff8000113a8220: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a8224:	910722b3 	add	x19, x21, #0x1c8
ffff8000113a8228:	910c22b5 	add	x21, x21, #0x308
		if (!strcmp(name, s[i].name))
ffff8000113a822c:	910123a0 	add	x0, x29, #0x48
ffff8000113a8230:	aa1303e1 	mov	x1, x19
ffff8000113a8234:	94000000 	bl	0 <strcmp>
			ffff8000113a8234: R_AARCH64_CALL26	strcmp
ffff8000113a8238:	340000c0 	cbz	w0, ffff8000113a8250 <netdev_boot_base+0xc0>
ffff8000113a823c:	9100a273 	add	x19, x19, #0x28
	for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++)
ffff8000113a8240:	eb15027f 	cmp	x19, x21
ffff8000113a8244:	54ffff41 	b.ne	ffff8000113a822c <netdev_boot_base+0x9c>
	return 0;
ffff8000113a8248:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a824c:	17ffffec 	b	ffff8000113a81fc <netdev_boot_base+0x6c>
			return s[i].map.base_addr;
ffff8000113a8250:	79404260 	ldrh	w0, [x19,#32]
ffff8000113a8254:	17ffffea 	b	ffff8000113a81fc <netdev_boot_base+0x6c>
}
ffff8000113a8258:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a8258: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a825c <netdev_get_name>:
{
ffff8000113a825c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a8260:	910003fd 	mov	x29, sp
ffff8000113a8264:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8268:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a826c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a8270:	2a0203f3 	mov	w19, w2
ffff8000113a8274:	aa0003f6 	mov	x22, x0
ffff8000113a8278:	aa1e03e0 	mov	x0, x30
ffff8000113a827c:	aa0103f7 	mov	x23, x1
ffff8000113a8280:	d37d1e75 	ubfiz	x21, x19, #3, #8
ffff8000113a8284:	94000000 	bl	0 <_mcount>
			ffff8000113a8284: R_AARCH64_CALL26	_mcount
ffff8000113a8288:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8288: R_AARCH64_ADR_PREL_PG_HI21	.bss
	__READ_ONCE_SIZE;
ffff8000113a828c:	91000280 	add	x0, x20, #0x0
			ffff8000113a828c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a8290:	b9435018 	ldr	w24, [x0,#848]
	smp_rmb();
ffff8000113a8294:	d50339bf 	dmb	ishld
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff8000113a8298:	f9409ac2 	ldr	x2, [x22,#304]
ffff8000113a829c:	f8756843 	ldr	x3, [x2,x21]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff8000113a82a0:	b4000383 	cbz	x3, ffff8000113a8310 <netdev_get_name+0xb4>
ffff8000113a82a4:	d10e4061 	sub	x1, x3, #0x390
ffff8000113a82a8:	b40000c1 	cbz	x1, ffff8000113a82c0 <netdev_get_name+0x64>
		if (dev->ifindex == ifindex)
ffff8000113a82ac:	b9410024 	ldr	w4, [x1,#256]
ffff8000113a82b0:	6b04027f 	cmp	w19, w4
ffff8000113a82b4:	54000120 	b.eq	ffff8000113a82d8 <netdev_get_name+0x7c>
ffff8000113a82b8:	f941c823 	ldr	x3, [x1,#912]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff8000113a82bc:	b5ffff43 	cbnz	x3, ffff8000113a82a4 <netdev_get_name+0x48>
		return -ENODEV;
ffff8000113a82c0:	12800240 	mov	w0, #0xffffffed            	// #-19
}
ffff8000113a82c4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a82c8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a82cc:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a82d0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a82d4:	d65f03c0 	ret
		return __builtin_strcpy(p, q);
ffff8000113a82d8:	aa1703e0 	mov	x0, x23
ffff8000113a82dc:	94000000 	bl	0 <strcpy>
			ffff8000113a82dc: R_AARCH64_CALL26	strcpy
	smp_rmb();
ffff8000113a82e0:	d50339bf 	dmb	ishld
	return unlikely(s->sequence != start);
ffff8000113a82e4:	91000280 	add	x0, x20, #0x0
			ffff8000113a82e4: R_AARCH64_ADD_ABS_LO12_NC	.bss
	if (read_seqcount_retry(&devnet_rename_seq, seq)) {
ffff8000113a82e8:	b9435000 	ldr	w0, [x0,#848]
	return ret & ~1;
ffff8000113a82ec:	121f7b18 	and	w24, w24, #0xfffffffe
ffff8000113a82f0:	6b00031f 	cmp	w24, w0
ffff8000113a82f4:	54000121 	b.ne	ffff8000113a8318 <netdev_get_name+0xbc>
	return 0;
ffff8000113a82f8:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113a82fc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8300:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8304:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a8308:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a830c:	d65f03c0 	ret
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff8000113a8310:	aa0303e1 	mov	x1, x3
ffff8000113a8314:	17ffffe5 	b	ffff8000113a82a8 <netdev_get_name+0x4c>
		cond_resched();
ffff8000113a8318:	94000000 	bl	0 <_cond_resched>
			ffff8000113a8318: R_AARCH64_CALL26	_cond_resched
		goto retry;
ffff8000113a831c:	17ffffdc 	b	ffff8000113a828c <netdev_get_name+0x30>

ffff8000113a8320 <dev_get_alias>:
{
ffff8000113a8320:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a8324:	910003fd 	mov	x29, sp
ffff8000113a8328:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a832c:	aa0003f3 	mov	x19, x0
ffff8000113a8330:	aa1e03e0 	mov	x0, x30
ffff8000113a8334:	aa0103f4 	mov	x20, x1
ffff8000113a8338:	f90017a2 	str	x2, [x29,#40]
ffff8000113a833c:	94000000 	bl	0 <_mcount>
			ffff8000113a833c: R_AARCH64_CALL26	_mcount
ffff8000113a8340:	f9400e63 	ldr	x3, [x19,#24]
	if (alias)
ffff8000113a8344:	f94017a2 	ldr	x2, [x29,#40]
ffff8000113a8348:	b4000143 	cbz	x3, ffff8000113a8370 <dev_get_alias+0x50>
		ret = snprintf(name, len, "%s", alias->ifalias);
ffff8000113a834c:	aa0203e1 	mov	x1, x2
ffff8000113a8350:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8350: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x610
ffff8000113a8354:	aa1403e0 	mov	x0, x20
ffff8000113a8358:	91000042 	add	x2, x2, #0x0
			ffff8000113a8358: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x610
ffff8000113a835c:	91004063 	add	x3, x3, #0x10
ffff8000113a8360:	94000000 	bl	0 <snprintf>
			ffff8000113a8360: R_AARCH64_CALL26	snprintf
}
ffff8000113a8364:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8368:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a836c:	d65f03c0 	ret
	int ret = 0;
ffff8000113a8370:	2a0303e0 	mov	w0, w3
}
ffff8000113a8374:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8378:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a837c:	d65f03c0 	ret

ffff8000113a8380 <skb_crc32c_csum_help>:
{
ffff8000113a8380:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a8384:	910003fd 	mov	x29, sp
ffff8000113a8388:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a838c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a8390:	aa0003f3 	mov	x19, x0
ffff8000113a8394:	aa1e03e0 	mov	x0, x30
ffff8000113a8398:	94000000 	bl	0 <_mcount>
			ffff8000113a8398: R_AARCH64_CALL26	_mcount
	if (skb->ip_summed != CHECKSUM_PARTIAL)
ffff8000113a839c:	39420260 	ldrb	w0, [x19,#128]
	int ret = 0, offset, start;
ffff8000113a83a0:	52800014 	mov	w20, #0x0                   	// #0
	if (skb->ip_summed != CHECKSUM_PARTIAL)
ffff8000113a83a4:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a83a8:	71000c1f 	cmp	w0, #0x3
ffff8000113a83ac:	540000c0 	b.eq	ffff8000113a83c4 <skb_crc32c_csum_help+0x44>
}
ffff8000113a83b0:	2a1403e0 	mov	w0, w20
ffff8000113a83b4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a83b8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a83bc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a83c0:	d65f03c0 	ret
static inline bool skb_is_gso(const struct sk_buff *skb)
ffff8000113a83c4:	f9406275 	ldr	x21, [x19,#192]
	return skb->head + skb->end;
ffff8000113a83c8:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a83cc:	8b0002a0 	add	x0, x21, x0
	if (unlikely(skb_is_gso(skb)))
ffff8000113a83d0:	79400801 	ldrh	w1, [x0,#4]
ffff8000113a83d4:	35fffee1 	cbnz	w1, ffff8000113a83b0 <skb_crc32c_csum_help+0x30>
static inline bool skb_has_shared_frag(const struct sk_buff *skb)
ffff8000113a83d8:	b9407661 	ldr	w1, [x19,#116]
	return skb_is_nonlinear(skb) &&
ffff8000113a83dc:	34000101 	cbz	w1, ffff8000113a83fc <skb_crc32c_csum_help+0x7c>
	       skb_shinfo(skb)->tx_flags & SKBTX_SHARED_FRAG;
ffff8000113a83e0:	39400c00 	ldrb	w0, [x0,#3]
	return skb_is_nonlinear(skb) &&
ffff8000113a83e4:	362800c0 	tbz	w0, #5, ffff8000113a83fc <skb_crc32c_csum_help+0x7c>
	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
ffff8000113a83e8:	aa1303e0 	mov	x0, x19
ffff8000113a83ec:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a83ec: R_AARCH64_CALL26	__pskb_pull_tail
ffff8000113a83f0:	b40004e0 	cbz	x0, ffff8000113a848c <skb_crc32c_csum_help+0x10c>
ffff8000113a83f4:	b9407661 	ldr	w1, [x19,#116]
ffff8000113a83f8:	f9406275 	ldr	x21, [x19,#192]
	return skb->data - skb->head;
ffff8000113a83fc:	f9406660 	ldr	x0, [x19,#200]
	return skb->csum_start - skb_headroom(skb);
ffff8000113a8400:	79411262 	ldrh	w2, [x19,#136]
	return skb->data - skb->head;
ffff8000113a8404:	cb150015 	sub	x21, x0, x21
	return skb->len - skb->data_len;
ffff8000113a8408:	b9407260 	ldr	w0, [x19,#112]
	return skb->csum_start - skb_headroom(skb);
ffff8000113a840c:	4b150055 	sub	w21, w2, w21
	offset = start + offsetof(struct sctphdr, checksum);
ffff8000113a8410:	110022b6 	add	w22, w21, #0x8
	return skb->len - skb->data_len;
ffff8000113a8414:	4b010001 	sub	w1, w0, w1
	if (WARN_ON_ONCE(offset >= skb_headlen(skb))) {
ffff8000113a8418:	6b0102df 	cmp	w22, w1
ffff8000113a841c:	540003c2 	b.cs	ffff8000113a8494 <skb_crc32c_csum_help+0x114>
	ret = skb_ensure_writable(skb, offset + sizeof(__le32));
ffff8000113a8420:	aa1303e0 	mov	x0, x19
ffff8000113a8424:	110032a1 	add	w1, w21, #0xc
ffff8000113a8428:	94000000 	bl	0 <skb_ensure_writable>
			ffff8000113a8428: R_AARCH64_CALL26	skb_ensure_writable
ffff8000113a842c:	2a0003f4 	mov	w20, w0
	if (ret)
ffff8000113a8430:	35fffc00 	cbnz	w0, ffff8000113a83b0 <skb_crc32c_csum_help+0x30>
	crc32c_csum = cpu_to_le32(~__skb_checksum(skb, start,
ffff8000113a8434:	b9407262 	ldr	w2, [x19,#112]
ffff8000113a8438:	90000000 	adrp	x0, 0 <crc32c_csum_stub>
			ffff8000113a8438: R_AARCH64_ADR_PREL_PG_HI21	crc32c_csum_stub
ffff8000113a843c:	f9400004 	ldr	x4, [x0]
			ffff8000113a843c: R_AARCH64_LDST64_ABS_LO12_NC	crc32c_csum_stub
ffff8000113a8440:	2a1503e1 	mov	w1, w21
ffff8000113a8444:	4b150042 	sub	w2, w2, w21
ffff8000113a8448:	aa1303e0 	mov	x0, x19
ffff8000113a844c:	12800003 	mov	w3, #0xffffffff            	// #-1
ffff8000113a8450:	94000000 	bl	0 <__skb_checksum>
			ffff8000113a8450: R_AARCH64_CALL26	__skb_checksum
	*(__le32 *)(skb->data + offset) = crc32c_csum;
ffff8000113a8454:	f9406661 	ldr	x1, [x19,#200]
	crc32c_csum = cpu_to_le32(~__skb_checksum(skb, start,
ffff8000113a8458:	2a2003e0 	mvn	w0, w0
	*(__le32 *)(skb->data + offset) = crc32c_csum;
ffff8000113a845c:	b836c820 	str	w0, [x1,w22,sxtw]
	skb->ip_summed = CHECKSUM_NONE;
ffff8000113a8460:	39420261 	ldrb	w1, [x19,#128]
	skb->csum_not_inet = 0;
ffff8000113a8464:	39420a60 	ldrb	w0, [x19,#130]
	skb->ip_summed = CHECKSUM_NONE;
ffff8000113a8468:	12197421 	and	w1, w1, #0xffffff9f
	skb->csum_not_inet = 0;
ffff8000113a846c:	121b7800 	and	w0, w0, #0xffffffef
ffff8000113a8470:	39020a60 	strb	w0, [x19,#130]
	skb->ip_summed = CHECKSUM_NONE;
ffff8000113a8474:	39020261 	strb	w1, [x19,#128]
}
ffff8000113a8478:	2a1403e0 	mov	w0, w20
ffff8000113a847c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8480:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8484:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a8488:	d65f03c0 	ret
	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
ffff8000113a848c:	12800174 	mov	w20, #0xfffffff4            	// #-12
ffff8000113a8490:	17ffffc8 	b	ffff8000113a83b0 <skb_crc32c_csum_help+0x30>
	if (WARN_ON_ONCE(offset >= skb_headlen(skb))) {
ffff8000113a8494:	d4210000 	brk	#0x800
		ret = -EINVAL;
ffff8000113a8498:	128002b4 	mov	w20, #0xffffffea            	// #-22
ffff8000113a849c:	17ffffc5 	b	ffff8000113a83b0 <skb_crc32c_csum_help+0x30>

ffff8000113a84a0 <skb_csum_hwoffload_help>:
{
ffff8000113a84a0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a84a4:	910003fd 	mov	x29, sp
ffff8000113a84a8:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a84ac:	aa0003f3 	mov	x19, x0
ffff8000113a84b0:	aa1e03e0 	mov	x0, x30
ffff8000113a84b4:	f90017a1 	str	x1, [x29,#40]
ffff8000113a84b8:	94000000 	bl	0 <_mcount>
			ffff8000113a84b8: R_AARCH64_CALL26	_mcount
	if (unlikely(skb->csum_not_inet))
ffff8000113a84bc:	39420a62 	ldrb	w2, [x19,#130]
ffff8000113a84c0:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a84c4:	d3441042 	ubfx	x2, x2, #4, #1
ffff8000113a84c8:	350001a2 	cbnz	w2, ffff8000113a84fc <skb_csum_hwoffload_help+0x5c>
	return !!(features & NETIF_F_CSUM_MASK) ? 0 : skb_checksum_help(skb);
ffff8000113a84cc:	d2800340 	mov	x0, #0x1a                  	// #26
ffff8000113a84d0:	ea00003f 	tst	x1, x0
ffff8000113a84d4:	2a0203e0 	mov	w0, w2
ffff8000113a84d8:	54000080 	b.eq	ffff8000113a84e8 <skb_csum_hwoffload_help+0x48>
}
ffff8000113a84dc:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a84e0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a84e4:	d65f03c0 	ret
	return !!(features & NETIF_F_CSUM_MASK) ? 0 : skb_checksum_help(skb);
ffff8000113a84e8:	aa1303e0 	mov	x0, x19
ffff8000113a84ec:	94000000 	bl	ffff8000113a19cc <skb_checksum_help>
			ffff8000113a84ec: R_AARCH64_CALL26	skb_checksum_help
}
ffff8000113a84f0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a84f4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a84f8:	d65f03c0 	ret
		return !!(features & NETIF_F_SCTP_CRC) ? 0 :
ffff8000113a84fc:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a8500:	b727fee1 	tbnz	x1, #36, ffff8000113a84dc <skb_csum_hwoffload_help+0x3c>
ffff8000113a8504:	aa1303e0 	mov	x0, x19
ffff8000113a8508:	94000000 	bl	ffff8000113a8380 <skb_crc32c_csum_help>
			ffff8000113a8508: R_AARCH64_CALL26	skb_crc32c_csum_help
ffff8000113a850c:	17fffff4 	b	ffff8000113a84dc <skb_csum_hwoffload_help+0x3c>

ffff8000113a8510 <skb_network_protocol>:
{
ffff8000113a8510:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a8514:	910003fd 	mov	x29, sp
ffff8000113a8518:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a851c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a8520:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a8524:	aa0003f3 	mov	x19, x0
ffff8000113a8528:	aa1e03e0 	mov	x0, x30
ffff8000113a852c:	aa0103f7 	mov	x23, x1
ffff8000113a8530:	94000000 	bl	0 <_mcount>
			ffff8000113a8530: R_AARCH64_CALL26	_mcount
	__be16 type = skb->protocol;
ffff8000113a8534:	79416260 	ldrh	w0, [x19,#176]
	if (type == htons(ETH_P_TEB)) {
ffff8000113a8538:	528b0ca1 	mov	w1, #0x5865                	// #22629
ffff8000113a853c:	6b01001f 	cmp	w0, w1
ffff8000113a8540:	540004c0 	b.eq	ffff8000113a85d8 <skb_network_protocol+0xc8>
	switch (ethertype) {
ffff8000113a8544:	7102041f 	cmp	w0, #0x81
 * vlan encapsulated (normal or hardware accelerated) or not.
 */
static inline __be16 __vlan_get_protocol(struct sk_buff *skb, __be16 type,
					 int *depth)
{
	unsigned int vlan_depth = skb->mac_len;
ffff8000113a8548:	7940f274 	ldrh	w20, [x19,#120]
	switch (ethertype) {
ffff8000113a854c:	54000160 	b.eq	ffff8000113a8578 <skb_network_protocol+0x68>
ffff8000113a8550:	52951101 	mov	w1, #0xa888                	// #43144
ffff8000113a8554:	6b01001f 	cmp	w0, w1
ffff8000113a8558:	54000100 	b.eq	ffff8000113a8578 <skb_network_protocol+0x68>
			type = vh->h_vlan_encapsulated_proto;
			vlan_depth += VLAN_HLEN;
		} while (eth_type_vlan(type));
	}

	if (depth)
ffff8000113a855c:	b4000057 	cbz	x23, ffff8000113a8564 <skb_network_protocol+0x54>
		*depth = vlan_depth;
ffff8000113a8560:	b90002f4 	str	w20, [x23]
}
ffff8000113a8564:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8568:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a856c:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a8570:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a8574:	d65f03c0 	ret
			vlan_depth = ETH_HLEN;
ffff8000113a8578:	528001d5 	mov	w21, #0xe                   	// #14
		if (vlan_depth) {
ffff8000113a857c:	35000234 	cbnz	w20, ffff8000113a85c0 <skb_network_protocol+0xb0>
	switch (ethertype) {
ffff8000113a8580:	52951116 	mov	w22, #0xa888                	// #43144
static inline bool pskb_may_pull(struct sk_buff *skb, unsigned int len)
ffff8000113a8584:	b9407262 	ldr	w2, [x19,#112]
	return skb->len - skb->data_len;
ffff8000113a8588:	b9407663 	ldr	w3, [x19,#116]
			if (unlikely(!pskb_may_pull(skb,
ffff8000113a858c:	110012b4 	add	w20, w21, #0x4
ffff8000113a8590:	4b030041 	sub	w1, w2, w3
	if (likely(len <= skb_headlen(skb)))
ffff8000113a8594:	6b01029f 	cmp	w20, w1
ffff8000113a8598:	54000308 	b.hi	ffff8000113a85f8 <skb_network_protocol+0xe8>
			type = vh->h_vlan_encapsulated_proto;
ffff8000113a859c:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a85a0:	8b354015 	add	x21, x0, w21, uxtw
ffff8000113a85a4:	794006a0 	ldrh	w0, [x21,#2]
	switch (ethertype) {
ffff8000113a85a8:	7102041f 	cmp	w0, #0x81
ffff8000113a85ac:	54000060 	b.eq	ffff8000113a85b8 <skb_network_protocol+0xa8>
ffff8000113a85b0:	6b16001f 	cmp	w0, w22
ffff8000113a85b4:	54fffd41 	b.ne	ffff8000113a855c <skb_network_protocol+0x4c>
			if (unlikely(!pskb_may_pull(skb,
ffff8000113a85b8:	2a1403f5 	mov	w21, w20
ffff8000113a85bc:	17fffff2 	b	ffff8000113a8584 <skb_network_protocol+0x74>
			if (WARN_ON(vlan_depth < VLAN_HLEN))
ffff8000113a85c0:	71000e9f 	cmp	w20, #0x3
			vlan_depth -= VLAN_HLEN;
ffff8000113a85c4:	51001295 	sub	w21, w20, #0x4
			if (WARN_ON(vlan_depth < VLAN_HLEN))
ffff8000113a85c8:	54fffdc8 	b.hi	ffff8000113a8580 <skb_network_protocol+0x70>
ffff8000113a85cc:	d4210000 	brk	#0x800
				return 0;
ffff8000113a85d0:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a85d4:	17ffffe4 	b	ffff8000113a8564 <skb_network_protocol+0x54>
static inline bool pskb_may_pull(struct sk_buff *skb, unsigned int len)
ffff8000113a85d8:	b9407260 	ldr	w0, [x19,#112]
	return skb->len - skb->data_len;
ffff8000113a85dc:	b9407661 	ldr	w1, [x19,#116]
ffff8000113a85e0:	4b010001 	sub	w1, w0, w1
	if (likely(len <= skb_headlen(skb)))
ffff8000113a85e4:	7100343f 	cmp	w1, #0xd
ffff8000113a85e8:	54000189 	b.ls	ffff8000113a8618 <skb_network_protocol+0x108>
		type = eth->h_proto;
ffff8000113a85ec:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a85f0:	79401800 	ldrh	w0, [x0,#12]
ffff8000113a85f4:	17ffffd4 	b	ffff8000113a8544 <skb_network_protocol+0x34>
	if (unlikely(len > skb->len))
ffff8000113a85f8:	6b02029f 	cmp	w20, w2
	return __pskb_pull_tail(skb, len - skb_headlen(skb)) != NULL;
ffff8000113a85fc:	aa1303e0 	mov	x0, x19
ffff8000113a8600:	4b010281 	sub	w1, w20, w1
	if (unlikely(len > skb->len))
ffff8000113a8604:	54000068 	b.hi	ffff8000113a8610 <skb_network_protocol+0x100>
	return __pskb_pull_tail(skb, len - skb_headlen(skb)) != NULL;
ffff8000113a8608:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a8608: R_AARCH64_CALL26	__pskb_pull_tail
			if (unlikely(!pskb_may_pull(skb,
ffff8000113a860c:	b5fffc80 	cbnz	x0, ffff8000113a859c <skb_network_protocol+0x8c>
				return 0;
ffff8000113a8610:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a8614:	17ffffd4 	b	ffff8000113a8564 <skb_network_protocol+0x54>
	if (unlikely(len > skb->len))
ffff8000113a8618:	7100341f 	cmp	w0, #0xd
ffff8000113a861c:	54ffffa9 	b.ls	ffff8000113a8610 <skb_network_protocol+0x100>
	return __pskb_pull_tail(skb, len - skb_headlen(skb)) != NULL;
ffff8000113a8620:	528001c2 	mov	w2, #0xe                   	// #14
ffff8000113a8624:	aa1303e0 	mov	x0, x19
ffff8000113a8628:	4b010041 	sub	w1, w2, w1
ffff8000113a862c:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a862c: R_AARCH64_CALL26	__pskb_pull_tail
		if (unlikely(!pskb_may_pull(skb, sizeof(struct ethhdr))))
ffff8000113a8630:	b5fffde0 	cbnz	x0, ffff8000113a85ec <skb_network_protocol+0xdc>
ffff8000113a8634:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a8638:	17ffffcb 	b	ffff8000113a8564 <skb_network_protocol+0x54>

ffff8000113a863c <skb_mac_gso_segment>:
{
ffff8000113a863c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a8640:	910003fd 	mov	x29, sp
ffff8000113a8644:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8648:	f90013f5 	str	x21, [sp,#32]
ffff8000113a864c:	aa0003f3 	mov	x19, x0
ffff8000113a8650:	aa1e03e0 	mov	x0, x30
ffff8000113a8654:	aa0103f5 	mov	x21, x1
ffff8000113a8658:	94000000 	bl	0 <_mcount>
			ffff8000113a8658: R_AARCH64_CALL26	_mcount
	int vlan_depth = skb->mac_len;
ffff8000113a865c:	7940f260 	ldrh	w0, [x19,#120]
{
ffff8000113a8660:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a8660: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	int vlan_depth = skb->mac_len;
ffff8000113a8664:	910103a1 	add	x1, x29, #0x40
{
ffff8000113a8668:	f9400283 	ldr	x3, [x20]
			ffff8000113a8668: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	int vlan_depth = skb->mac_len;
ffff8000113a866c:	b81f4c20 	str	w0, [x1,#-12]!
	__be16 type = skb_network_protocol(skb, &vlan_depth);
ffff8000113a8670:	aa1303e0 	mov	x0, x19
{
ffff8000113a8674:	f9001fa3 	str	x3, [x29,#56]
	__be16 type = skb_network_protocol(skb, &vlan_depth);
ffff8000113a8678:	94000000 	bl	ffff8000113a8510 <skb_network_protocol>
			ffff8000113a8678: R_AARCH64_CALL26	skb_network_protocol
ffff8000113a867c:	53003c04 	uxth	w4, w0
	if (unlikely(!type))
ffff8000113a8680:	34000684 	cbz	w4, ffff8000113a8750 <skb_mac_gso_segment+0x114>
	skb->len -= len;
ffff8000113a8684:	b9407261 	ldr	w1, [x19,#112]
	__skb_pull(skb, vlan_depth);
ffff8000113a8688:	b94037a0 	ldr	w0, [x29,#52]
	BUG_ON(skb->len < skb->data_len);
ffff8000113a868c:	b9407662 	ldr	w2, [x19,#116]
	skb->len -= len;
ffff8000113a8690:	4b000021 	sub	w1, w1, w0
ffff8000113a8694:	b9007261 	str	w1, [x19,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113a8698:	6b02003f 	cmp	w1, w2
ffff8000113a869c:	54000583 	b.cc	ffff8000113a874c <skb_mac_gso_segment+0x110>
	return skb->data += len;
ffff8000113a86a0:	f9406661 	ldr	x1, [x19,#200]
ffff8000113a86a4:	8b204020 	add	x0, x1, w0, uxtw
ffff8000113a86a8:	f9006660 	str	x0, [x19,#200]
ffff8000113a86ac:	90000005 	adrp	x5, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a86ac: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a86b0:	910000a5 	add	x5, x5, #0x0
			ffff8000113a86b0: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a86b4:	f94408a2 	ldr	x2, [x5,#2064]
ffff8000113a86b8:	912040a5 	add	x5, x5, #0x810
	list_for_each_entry_rcu(ptype, &offload_base, list) {
ffff8000113a86bc:	eb0200bf 	cmp	x5, x2
ffff8000113a86c0:	d1008042 	sub	x2, x2, #0x20
ffff8000113a86c4:	540000c1 	b.ne	ffff8000113a86dc <skb_mac_gso_segment+0xa0>
ffff8000113a86c8:	1400000e 	b	ffff8000113a8700 <skb_mac_gso_segment+0xc4>
ffff8000113a86cc:	f9401042 	ldr	x2, [x2,#32]
ffff8000113a86d0:	eb0200bf 	cmp	x5, x2
ffff8000113a86d4:	d1008042 	sub	x2, x2, #0x20
ffff8000113a86d8:	54000140 	b.eq	ffff8000113a8700 <skb_mac_gso_segment+0xc4>
		if (ptype->type == type && ptype->callbacks.gso_segment) {
ffff8000113a86dc:	79400043 	ldrh	w3, [x2]
ffff8000113a86e0:	6b04007f 	cmp	w3, w4
ffff8000113a86e4:	54ffff41 	b.ne	ffff8000113a86cc <skb_mac_gso_segment+0x90>
ffff8000113a86e8:	f9400443 	ldr	x3, [x2,#8]
ffff8000113a86ec:	b4ffff03 	cbz	x3, ffff8000113a86cc <skb_mac_gso_segment+0x90>
			segs = ptype->callbacks.gso_segment(skb, features);
ffff8000113a86f0:	aa1303e0 	mov	x0, x19
ffff8000113a86f4:	aa1503e1 	mov	x1, x21
ffff8000113a86f8:	d63f0060 	blr	x3
			break;
ffff8000113a86fc:	14000002 	b	ffff8000113a8704 <skb_mac_gso_segment+0xc8>
	struct sk_buff *segs = ERR_PTR(-EPROTONOSUPPORT);
ffff8000113a8700:	92800b80 	mov	x0, #0xffffffffffffffa3    	// #-93
	return skb->head + skb->mac_header;
ffff8000113a8704:	79416e61 	ldrh	w1, [x19,#182]
ffff8000113a8708:	f9406264 	ldr	x4, [x19,#192]
	__skb_push(skb, skb->data - skb_mac_header(skb));
ffff8000113a870c:	f9406662 	ldr	x2, [x19,#200]
	skb->len  += len;
ffff8000113a8710:	b9407263 	ldr	w3, [x19,#112]
	return skb->head + skb->mac_header;
ffff8000113a8714:	8b010081 	add	x1, x4, x1
ffff8000113a8718:	cb010041 	sub	x1, x2, x1
	skb->data -= len;
ffff8000113a871c:	cb214042 	sub	x2, x2, w1, uxtw
	skb->len  += len;
ffff8000113a8720:	0b010061 	add	w1, w3, w1
	skb->data -= len;
ffff8000113a8724:	f9006662 	str	x2, [x19,#200]
	skb->len  += len;
ffff8000113a8728:	b9007261 	str	w1, [x19,#112]
}
ffff8000113a872c:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a8730:	f9400281 	ldr	x1, [x20]
			ffff8000113a8730: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a8734:	eb01005f 	cmp	x2, x1
ffff8000113a8738:	54000101 	b.ne	ffff8000113a8758 <skb_mac_gso_segment+0x11c>
ffff8000113a873c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8740:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a8744:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a8748:	d65f03c0 	ret
ffff8000113a874c:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a874c: R_AARCH64_CALL26	.text.unlikely+0xa0
		return ERR_PTR(-EINVAL);
ffff8000113a8750:	928002a0 	mov	x0, #0xffffffffffffffea    	// #-22
ffff8000113a8754:	17fffff6 	b	ffff8000113a872c <skb_mac_gso_segment+0xf0>
}
ffff8000113a8758:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a8758: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a875c <__skb_gso_segment>:
{
ffff8000113a875c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a8760:	910003fd 	mov	x29, sp
ffff8000113a8764:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8768:	f90013f5 	str	x21, [sp,#32]
ffff8000113a876c:	aa0003f3 	mov	x19, x0
ffff8000113a8770:	aa1e03e0 	mov	x0, x30
ffff8000113a8774:	53001c55 	uxtb	w21, w2
ffff8000113a8778:	aa0103f4 	mov	x20, x1
ffff8000113a877c:	94000000 	bl	0 <_mcount>
			ffff8000113a877c: R_AARCH64_CALL26	_mcount
		return skb->ip_summed != CHECKSUM_PARTIAL &&
ffff8000113a8780:	39420260 	ldrb	w0, [x19,#128]
	if (tx_path)
ffff8000113a8784:	34000415 	cbz	w21, ffff8000113a8804 <__skb_gso_segment+0xa8>
		return skb->ip_summed != CHECKSUM_PARTIAL &&
ffff8000113a8788:	d3451400 	ubfx	x0, x0, #5, #1
ffff8000113a878c:	52000000 	eor	w0, w0, #0x1
	if (unlikely(skb_needs_check(skb, tx_path))) {
ffff8000113a8790:	350007e0 	cbnz	w0, ffff8000113a888c <__skb_gso_segment+0x130>
	if (features & NETIF_F_GSO_PARTIAL) {
ffff8000113a8794:	37e00434 	tbnz	w20, #28, ffff8000113a8818 <__skb_gso_segment+0xbc>
ffff8000113a8798:	f9406261 	ldr	x1, [x19,#192]
	return skb->data - skb->head;
ffff8000113a879c:	f9406660 	ldr	x0, [x19,#200]
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113a87a0:	79416a62 	ldrh	w2, [x19,#180]
	return skb->data - skb->head;
ffff8000113a87a4:	cb010001 	sub	x1, x0, x1
	skb->mac_header = skb->data - skb->head;
ffff8000113a87a8:	53003c20 	uxth	w0, w1
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113a87ac:	4b000042 	sub	w2, w2, w0
	SKB_GSO_CB(skb)->mac_offset = skb_headroom(skb);
ffff8000113a87b0:	b9004a61 	str	w1, [x19,#72]
	skb->mac_header = skb->data - skb->head;
ffff8000113a87b4:	79016e60 	strh	w0, [x19,#182]
	SKB_GSO_CB(skb)->encap_level = 0;
ffff8000113a87b8:	b9004e7f 	str	wzr, [x19,#76]
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113a87bc:	7900f262 	strh	w2, [x19,#120]
	segs = skb_mac_gso_segment(skb, features);
ffff8000113a87c0:	aa1303e0 	mov	x0, x19
ffff8000113a87c4:	aa1403e1 	mov	x1, x20
ffff8000113a87c8:	94000000 	bl	ffff8000113a863c <skb_mac_gso_segment>
			ffff8000113a87c8: R_AARCH64_CALL26	skb_mac_gso_segment
	if (segs != skb && unlikely(skb_needs_check(skb, tx_path) && !IS_ERR(segs)))
ffff8000113a87cc:	eb13001f 	cmp	x0, x19
ffff8000113a87d0:	54000520 	b.eq	ffff8000113a8874 <__skb_gso_segment+0x118>
		return skb->ip_summed != CHECKSUM_PARTIAL &&
ffff8000113a87d4:	39420261 	ldrb	w1, [x19,#128]
	if (tx_path)
ffff8000113a87d8:	35000415 	cbnz	w21, ffff8000113a8858 <__skb_gso_segment+0xfc>
	return skb->ip_summed == CHECKSUM_NONE;
ffff8000113a87dc:	d3451821 	ubfx	x1, x1, #5, #2
ffff8000113a87e0:	6b1f003f 	cmp	w1, wzr
ffff8000113a87e4:	1a9f17e1 	cset	w1, eq
ffff8000113a87e8:	aa0003f4 	mov	x20, x0
	if (segs != skb && unlikely(skb_needs_check(skb, tx_path) && !IS_ERR(segs)))
ffff8000113a87ec:	350005c1 	cbnz	w1, ffff8000113a88a4 <__skb_gso_segment+0x148>
}
ffff8000113a87f0:	aa1403e0 	mov	x0, x20
ffff8000113a87f4:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a87f8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a87fc:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a8800:	d65f03c0 	ret
	return skb->ip_summed == CHECKSUM_NONE;
ffff8000113a8804:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a8808:	6b1f001f 	cmp	w0, wzr
ffff8000113a880c:	1a9f17e0 	cset	w0, eq
	if (unlikely(skb_needs_check(skb, tx_path))) {
ffff8000113a8810:	34fffc20 	cbz	w0, ffff8000113a8794 <__skb_gso_segment+0x38>
ffff8000113a8814:	1400001e 	b	ffff8000113a888c <__skb_gso_segment+0x130>
		struct net_device *dev = skb->dev;
ffff8000113a8818:	f9400a60 	ldr	x0, [x19,#16]
static inline bool skb_gso_ok(struct sk_buff *skb, netdev_features_t features)
ffff8000113a881c:	f9406261 	ldr	x1, [x19,#192]
	return skb->head + skb->end;
ffff8000113a8820:	b940be62 	ldr	w2, [x19,#188]
		partial_features |= dev->features & dev->gso_partial_features;
ffff8000113a8824:	f9407c03 	ldr	x3, [x0,#248]
ffff8000113a8828:	f9406400 	ldr	x0, [x0,#200]
ffff8000113a882c:	8b020022 	add	x2, x1, x2
ffff8000113a8830:	8a000063 	and	x3, x3, x0
	netdev_features_t feature = (netdev_features_t)gso_type << NETIF_F_GSO_SHIFT;
ffff8000113a8834:	b9801840 	ldrsw	x0, [x2,#24]
ffff8000113a8838:	b26f0063 	orr	x3, x3, #0x20000
ffff8000113a883c:	d370bc00 	lsl	x0, x0, #16
		if (!skb_gso_ok(skb, features | partial_features))
ffff8000113a8840:	aa140063 	orr	x3, x3, x20
	return (features & feature) == feature;
ffff8000113a8844:	8a030004 	and	x4, x0, x3
	return net_gso_ok(features, skb_shinfo(skb)->gso_type) &&
ffff8000113a8848:	eb04001f 	cmp	x0, x4
ffff8000113a884c:	540000c0 	b.eq	ffff8000113a8864 <__skb_gso_segment+0x108>
			features &= ~NETIF_F_GSO_PARTIAL;
ffff8000113a8850:	9263fa94 	and	x20, x20, #0xffffffffefffffff
ffff8000113a8854:	17ffffd2 	b	ffff8000113a879c <__skb_gso_segment+0x40>
		return skb->ip_summed != CHECKSUM_PARTIAL &&
ffff8000113a8858:	d3451421 	ubfx	x1, x1, #5, #1
ffff8000113a885c:	52000021 	eor	w1, w1, #0x1
ffff8000113a8860:	17ffffe2 	b	ffff8000113a87e8 <__skb_gso_segment+0x8c>
ffff8000113a8864:	f9400440 	ldr	x0, [x2,#8]
ffff8000113a8868:	b4fff9a0 	cbz	x0, ffff8000113a879c <__skb_gso_segment+0x40>
	       (!skb_has_frag_list(skb) || (features & NETIF_F_FRAGLIST));
ffff8000113a886c:	3637ff23 	tbz	w3, #6, ffff8000113a8850 <__skb_gso_segment+0xf4>
ffff8000113a8870:	17ffffcb 	b	ffff8000113a879c <__skb_gso_segment+0x40>
ffff8000113a8874:	aa1303f4 	mov	x20, x19
}
ffff8000113a8878:	aa1403e0 	mov	x0, x20
ffff8000113a887c:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a8880:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8884:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a8888:	d65f03c0 	ret
		err = skb_cow_head(skb, 0);
ffff8000113a888c:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a8890:	aa1303e0 	mov	x0, x19
ffff8000113a8894:	97ffe13c 	bl	ffff8000113a0d84 <skb_cow_head>
		if (err < 0)
ffff8000113a8898:	36fff7e0 	tbz	w0, #31, ffff8000113a8794 <__skb_gso_segment+0x38>
			return ERR_PTR(err);
ffff8000113a889c:	93407c14 	sxtw	x20, w0
ffff8000113a88a0:	17ffffd4 	b	ffff8000113a87f0 <__skb_gso_segment+0x94>
	if (segs != skb && unlikely(skb_needs_check(skb, tx_path) && !IS_ERR(segs)))
ffff8000113a88a4:	b140041f 	cmn	x0, #0x1, lsl #12
ffff8000113a88a8:	54fffa48 	b.hi	ffff8000113a87f0 <__skb_gso_segment+0x94>
		skb_warn_bad_offload(skb);
ffff8000113a88ac:	aa1303e0 	mov	x0, x19
ffff8000113a88b0:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a88b0: R_AARCH64_CALL26	.text.unlikely+0xa4
ffff8000113a88b4:	17ffffcf 	b	ffff8000113a87f0 <__skb_gso_segment+0x94>

ffff8000113a88b8 <netif_skb_features>:
{
ffff8000113a88b8:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a88bc:	910003fd 	mov	x29, sp
ffff8000113a88c0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a88c4:	f90013f5 	str	x21, [sp,#32]
ffff8000113a88c8:	aa0003f3 	mov	x19, x0
ffff8000113a88cc:	aa1e03e0 	mov	x0, x30
ffff8000113a88d0:	94000000 	bl	0 <_mcount>
			ffff8000113a88d0: R_AARCH64_CALL26	_mcount
static inline bool skb_is_gso(const struct sk_buff *skb)
ffff8000113a88d4:	f9406262 	ldr	x2, [x19,#192]
	return skb->head + skb->end;
ffff8000113a88d8:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a88dc:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a88dc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a88e0:	f94002a4 	ldr	x4, [x21]
			ffff8000113a88e0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a88e4:	8b000040 	add	x0, x2, x0
	struct net_device *dev = skb->dev;
ffff8000113a88e8:	f9400a61 	ldr	x1, [x19,#16]
	if (skb_is_gso(skb))
ffff8000113a88ec:	79400803 	ldrh	w3, [x0,#4]
{
ffff8000113a88f0:	f9001fa4 	str	x4, [x29,#56]
	netdev_features_t features = dev->features;
ffff8000113a88f4:	f9406434 	ldr	x20, [x1,#200]
	if (skb_is_gso(skb))
ffff8000113a88f8:	34000a23 	cbz	w3, ffff8000113a8a3c <netif_skb_features+0x184>
	if (gso_segs > dev->gso_max_segs)
ffff8000113a88fc:	79507824 	ldrh	w4, [x1,#2108]
ffff8000113a8900:	79400c03 	ldrh	w3, [x0,#6]
	struct net_device *dev = skb->dev;
ffff8000113a8904:	f9407c25 	ldr	x5, [x1,#248]
	if (gso_segs > dev->gso_max_segs)
ffff8000113a8908:	6b03009f 	cmp	w4, w3
ffff8000113a890c:	54000c23 	b.cc	ffff8000113a8a90 <netif_skb_features+0x1d8>
	if (!(skb_shinfo(skb)->gso_type & SKB_GSO_PARTIAL))
ffff8000113a8910:	b9401800 	ldr	w0, [x0,#24]
ffff8000113a8914:	37600040 	tbnz	w0, #12, ffff8000113a891c <netif_skb_features+0x64>
		features &= ~dev->gso_partial_features;
ffff8000113a8918:	8a250294 	bic	x20, x20, x5
	if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) {
ffff8000113a891c:	36000900 	tbz	w0, #0, ffff8000113a8a3c <netif_skb_features+0x184>
		struct iphdr *iph = skb->encapsulation ?
ffff8000113a8920:	39420660 	ldrb	w0, [x19,#129]
ffff8000113a8924:	d3451400 	ubfx	x0, x0, #5, #1
				    inner_ip_hdr(skb) : ip_hdr(skb);
ffff8000113a8928:	34000ee0 	cbz	w0, ffff8000113a8b04 <netif_skb_features+0x24c>
	return skb->head + skb->inner_network_header;
ffff8000113a892c:	79415a63 	ldrh	w3, [x19,#172]
ffff8000113a8930:	8b030042 	add	x2, x2, x3
		if (!(iph->frag_off & htons(IP_DF)))
ffff8000113a8934:	79400c43 	ldrh	w3, [x2,#6]
			features &= ~NETIF_F_TSO_MANGLEID;
ffff8000113a8938:	926cfa82 	and	x2, x20, #0xfffffffffff7ffff
		if (!(iph->frag_off & htons(IP_DF)))
ffff8000113a893c:	121a0063 	and	w3, w3, #0x40
			features &= ~NETIF_F_TSO_MANGLEID;
ffff8000113a8940:	6b1f007f 	cmp	w3, wzr
ffff8000113a8944:	9a940054 	csel	x20, x2, x20, eq
	if (skb->encapsulation)
ffff8000113a8948:	34000060 	cbz	w0, ffff8000113a8954 <netif_skb_features+0x9c>
		features &= dev->hw_enc_features;
ffff8000113a894c:	f9407420 	ldr	x0, [x1,#232]
ffff8000113a8950:	8a000294 	and	x20, x20, x0
 * Returns true if the skb is tagged, regardless of whether it is hardware
 * accelerated or not.
 */
static inline bool skb_vlan_tagged(const struct sk_buff *skb)
{
	if (!skb_vlan_tag_present(skb) &&
ffff8000113a8954:	39420a60 	ldrb	w0, [x19,#130]
ffff8000113a8958:	12000000 	and	w0, w0, #0x1
ffff8000113a895c:	350000e0 	cbnz	w0, ffff8000113a8978 <netif_skb_features+0xc0>
	switch (ethertype) {
ffff8000113a8960:	79416262 	ldrh	w2, [x19,#176]
ffff8000113a8964:	7102045f 	cmp	w2, #0x81
ffff8000113a8968:	54000080 	b.eq	ffff8000113a8978 <netif_skb_features+0xc0>
ffff8000113a896c:	52951103 	mov	w3, #0xa888                	// #43144
ffff8000113a8970:	6b03005f 	cmp	w2, w3
ffff8000113a8974:	54000101 	b.ne	ffff8000113a8994 <netif_skb_features+0xdc>
						     dev->vlan_features |
ffff8000113a8978:	f9407023 	ldr	x3, [x1,#224]
		features = netdev_intersect_features(features,
ffff8000113a897c:	d2801002 	mov	x2, #0x80                  	// #128
ffff8000113a8980:	f2c40002 	movk	x2, #0x2000, lsl #32
ffff8000113a8984:	aa020062 	orr	x2, x3, x2
	if ((f1 ^ f2) & NETIF_F_HW_CSUM) {
ffff8000113a8988:	ca020284 	eor	x4, x20, x2
ffff8000113a898c:	37180664 	tbnz	w4, #3, ffff8000113a8a58 <netif_skb_features+0x1a0>
	return f1 & f2;
ffff8000113a8990:	8a020294 	and	x20, x20, x2
	if (dev->netdev_ops->ndo_features_check)
ffff8000113a8994:	f940f822 	ldr	x2, [x1,#496]
ffff8000113a8998:	f9401443 	ldr	x3, [x2,#40]
ffff8000113a899c:	b4000663 	cbz	x3, ffff8000113a8a68 <netif_skb_features+0x1b0>
		features &= dev->netdev_ops->ndo_features_check(skb, dev,
ffff8000113a89a0:	aa1403e2 	mov	x2, x20
ffff8000113a89a4:	aa1303e0 	mov	x0, x19
ffff8000113a89a8:	d63f0060 	blr	x3
ffff8000113a89ac:	8a140014 	and	x20, x0, x20
	type = skb_network_protocol(skb, &tmp);
ffff8000113a89b0:	9100d3a1 	add	x1, x29, #0x34
ffff8000113a89b4:	aa1303e0 	mov	x0, x19
ffff8000113a89b8:	94000000 	bl	ffff8000113a8510 <skb_network_protocol>
			ffff8000113a89b8: R_AARCH64_CALL26	skb_network_protocol
ffff8000113a89bc:	53003c00 	uxth	w0, w0
};

static inline bool eth_p_mpls(__be16 eth_type)
{
	return eth_type == htons(ETH_P_MPLS_UC) ||
		eth_type == htons(ETH_P_MPLS_MC);
ffff8000113a89c0:	52891101 	mov	w1, #0x4888                	// #18568
	if (eth_p_mpls(type))
ffff8000113a89c4:	6b01001f 	cmp	w0, w1
ffff8000113a89c8:	54000400 	b.eq	ffff8000113a8a48 <netif_skb_features+0x190>
	return eth_type == htons(ETH_P_MPLS_UC) ||
ffff8000113a89cc:	5288f101 	mov	w1, #0x4788                	// #18312
ffff8000113a89d0:	6b01001f 	cmp	w0, w1
ffff8000113a89d4:	540003a0 	b.eq	ffff8000113a8a48 <netif_skb_features+0x190>
	if (skb->ip_summed != CHECKSUM_NONE &&
ffff8000113a89d8:	39420261 	ldrb	w1, [x19,#128]
ffff8000113a89dc:	d3451821 	ubfx	x1, x1, #5, #2
ffff8000113a89e0:	340001c1 	cbz	w1, ffff8000113a8a18 <netif_skb_features+0x160>
	if (protocol == htons(ETH_P_FCOE))
ffff8000113a89e4:	711a241f 	cmp	w0, #0x689
ffff8000113a89e8:	54000640 	b.eq	ffff8000113a8ab0 <netif_skb_features+0x1f8>
	if (features & NETIF_F_HW_CSUM) {
ffff8000113a89ec:	37180174 	tbnz	w20, #3, ffff8000113a8a18 <netif_skb_features+0x160>
	switch (protocol) {
ffff8000113a89f0:	7100201f 	cmp	w0, #0x8
ffff8000113a89f4:	54000840 	b.eq	ffff8000113a8afc <netif_skb_features+0x244>
ffff8000113a89f8:	529bb0c1 	mov	w1, #0xdd86                	// #56710
ffff8000113a89fc:	6b01001f 	cmp	w0, w1
ffff8000113a8a00:	54000061 	b.ne	ffff8000113a8a0c <netif_skb_features+0x154>
		return !!(features & NETIF_F_IPV6_CSUM);
ffff8000113a8a04:	d3441280 	ubfx	x0, x20, #4, #1
ffff8000113a8a08:	35000080 	cbnz	w0, ffff8000113a8a18 <netif_skb_features+0x160>
		features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK);
ffff8000113a8a0c:	b25d73e0 	mov	x0, #0xfffffff800000000    	// #-34359738368
ffff8000113a8a10:	f29ffca0 	movk	x0, #0xffe5
ffff8000113a8a14:	8a000294 	and	x20, x20, x0
}
ffff8000113a8a18:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a8a1c:	f94002a1 	ldr	x1, [x21]
			ffff8000113a8a1c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a8a20:	aa1403e0 	mov	x0, x20
ffff8000113a8a24:	eb01005f 	cmp	x2, x1
ffff8000113a8a28:	54000741 	b.ne	ffff8000113a8b10 <netif_skb_features+0x258>
ffff8000113a8a2c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8a30:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a8a34:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a8a38:	d65f03c0 	ret
ffff8000113a8a3c:	39420660 	ldrb	w0, [x19,#129]
ffff8000113a8a40:	d3451400 	ubfx	x0, x0, #5, #1
ffff8000113a8a44:	17ffffc1 	b	ffff8000113a8948 <netif_skb_features+0x90>
		features &= skb->dev->mpls_features;
ffff8000113a8a48:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113a8a4c:	f9407821 	ldr	x1, [x1,#240]
ffff8000113a8a50:	8a010294 	and	x20, x20, x1
ffff8000113a8a54:	17ffffe1 	b	ffff8000113a89d8 <netif_skb_features+0x120>
		if (f1 & NETIF_F_HW_CSUM)
ffff8000113a8a58:	36180254 	tbz	w20, #3, ffff8000113a8aa0 <netif_skb_features+0x1e8>
			f1 |= (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
ffff8000113a8a5c:	d2800243 	mov	x3, #0x12                  	// #18
ffff8000113a8a60:	aa030294 	orr	x20, x20, x3
ffff8000113a8a64:	17ffffcb 	b	ffff8000113a8990 <netif_skb_features+0xd8>
 * Returns true if the skb is tagged with multiple vlan headers, regardless
 * of whether it is hardware accelerated or not.
 */
static inline bool skb_vlan_tagged_multi(struct sk_buff *skb)
{
	__be16 protocol = skb->protocol;
ffff8000113a8a68:	79416261 	ldrh	w1, [x19,#176]

	if (!skb_vlan_tag_present(skb)) {
ffff8000113a8a6c:	35000340 	cbnz	w0, ffff8000113a8ad4 <netif_skb_features+0x21c>
	switch (ethertype) {
ffff8000113a8a70:	7102043f 	cmp	w1, #0x81
ffff8000113a8a74:	54000220 	b.eq	ffff8000113a8ab8 <netif_skb_features+0x200>
ffff8000113a8a78:	52951100 	mov	w0, #0xa888                	// #43144
ffff8000113a8a7c:	6b00003f 	cmp	w1, w0
ffff8000113a8a80:	540001c0 	b.eq	ffff8000113a8ab8 <netif_skb_features+0x200>
{
ffff8000113a8a84:	aa1403e0 	mov	x0, x20
		features &= dflt_features_check(skb, dev, features);
ffff8000113a8a88:	8a140014 	and	x20, x0, x20
ffff8000113a8a8c:	17ffffc9 	b	ffff8000113a89b0 <netif_skb_features+0xf8>
ffff8000113a8a90:	39420660 	ldrb	w0, [x19,#129]
		return features & ~NETIF_F_GSO_MASK;
ffff8000113a8a94:	925db294 	and	x20, x20, #0xfffffff80000ffff
ffff8000113a8a98:	d3451400 	ubfx	x0, x0, #5, #1
ffff8000113a8a9c:	17ffffab 	b	ffff8000113a8948 <netif_skb_features+0x90>
			f2 |= (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
ffff8000113a8aa0:	d2801242 	mov	x2, #0x92                  	// #146
ffff8000113a8aa4:	f2c40002 	movk	x2, #0x2000, lsl #32
ffff8000113a8aa8:	aa020062 	orr	x2, x3, x2
ffff8000113a8aac:	17ffffb9 	b	ffff8000113a8990 <netif_skb_features+0xd8>
		return !!(features & NETIF_F_FCOE_CRC);
ffff8000113a8ab0:	d3638e80 	ubfx	x0, x20, #35, #1
ffff8000113a8ab4:	17ffffd5 	b	ffff8000113a8a08 <netif_skb_features+0x150>
		struct vlan_ethhdr *veh;

		if (likely(!eth_type_vlan(protocol)))
			return false;

		if (unlikely(!pskb_may_pull(skb, VLAN_ETH_HLEN)))
ffff8000113a8ab8:	aa1303e0 	mov	x0, x19
ffff8000113a8abc:	52800241 	mov	w1, #0x12                  	// #18
ffff8000113a8ac0:	97ffe09d 	bl	ffff8000113a0d34 <pskb_may_pull>
ffff8000113a8ac4:	53001c00 	uxtb	w0, w0
ffff8000113a8ac8:	34fffde0 	cbz	w0, ffff8000113a8a84 <netif_skb_features+0x1cc>
			return false;

		veh = (struct vlan_ethhdr *)skb->data;
		protocol = veh->h_vlan_encapsulated_proto;
ffff8000113a8acc:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a8ad0:	79402001 	ldrh	w1, [x0,#16]
	switch (ethertype) {
ffff8000113a8ad4:	7102043f 	cmp	w1, #0x81
ffff8000113a8ad8:	54000080 	b.eq	ffff8000113a8ae8 <netif_skb_features+0x230>
ffff8000113a8adc:	52951100 	mov	w0, #0xa888                	// #43144
ffff8000113a8ae0:	6b00003f 	cmp	w1, w0
ffff8000113a8ae4:	54fffd01 	b.ne	ffff8000113a8a84 <netif_skb_features+0x1cc>
		/* In the case of multi-tagged packets, use a direct mask
		 * instead of using netdev_interesect_features(), to make
		 * sure that only devices supporting NETIF_F_HW_CSUM will
		 * have checksum offloading support.
		 */
		features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM |
ffff8000113a8ae8:	d2801d20 	mov	x0, #0xe9                  	// #233
ffff8000113a8aec:	f2c40000 	movk	x0, #0x2000, lsl #32
ffff8000113a8af0:	8a000280 	and	x0, x20, x0
		features &= dflt_features_check(skb, dev, features);
ffff8000113a8af4:	8a140014 	and	x20, x0, x20
ffff8000113a8af8:	17ffffae 	b	ffff8000113a89b0 <netif_skb_features+0xf8>
		return !!(features & NETIF_F_IP_CSUM);
ffff8000113a8afc:	d3410680 	ubfx	x0, x20, #1, #1
ffff8000113a8b00:	17ffffc2 	b	ffff8000113a8a08 <netif_skb_features+0x150>
	return skb->head + skb->network_header;
ffff8000113a8b04:	79416a63 	ldrh	w3, [x19,#180]
ffff8000113a8b08:	8b030042 	add	x2, x2, x3
ffff8000113a8b0c:	17ffff8a 	b	ffff8000113a8934 <netif_skb_features+0x7c>
}
ffff8000113a8b10:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a8b10: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113a8b14 <validate_xmit_skb>:
{
ffff8000113a8b14:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a8b18:	910003fd 	mov	x29, sp
ffff8000113a8b1c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8b20:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a8b24:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a8b28:	aa0003f3 	mov	x19, x0
ffff8000113a8b2c:	aa1e03e0 	mov	x0, x30
ffff8000113a8b30:	aa0103f7 	mov	x23, x1
ffff8000113a8b34:	aa0203f6 	mov	x22, x2
ffff8000113a8b38:	94000000 	bl	0 <_mcount>
			ffff8000113a8b38: R_AARCH64_CALL26	_mcount
	features = netif_skb_features(skb);
ffff8000113a8b3c:	aa1303e0 	mov	x0, x19
ffff8000113a8b40:	94000000 	bl	ffff8000113a88b8 <netif_skb_features>
			ffff8000113a8b40: R_AARCH64_CALL26	netif_skb_features
ffff8000113a8b44:	aa0003f4 	mov	x20, x0
	if (skb_vlan_tag_present(skb) &&
ffff8000113a8b48:	39420a60 	ldrb	w0, [x19,#130]
ffff8000113a8b4c:	36000620 	tbz	w0, #0, ffff8000113a8c10 <validate_xmit_skb+0xfc>
	    !vlan_hw_offload_capable(features, skb->vlan_proto))
ffff8000113a8b50:	79413275 	ldrh	w21, [x19,#152]
	if (proto == htons(ETH_P_8021Q) && features & NETIF_F_HW_VLAN_CTAG_TX)
ffff8000113a8b54:	710206bf 	cmp	w21, #0x81
ffff8000113a8b58:	54001020 	b.eq	ffff8000113a8d5c <validate_xmit_skb+0x248>
	if (proto == htons(ETH_P_8021AD) && features & NETIF_F_HW_VLAN_STAG_TX)
ffff8000113a8b5c:	52951100 	mov	w0, #0xa888                	// #43144
ffff8000113a8b60:	6b0002bf 	cmp	w21, w0
ffff8000113a8b64:	540013a0 	b.eq	ffff8000113a8dd8 <validate_xmit_skb+0x2c4>
	if (!skb->cloned)
ffff8000113a8b68:	3941fa60 	ldrb	w0, [x19,#126]
	skb = vlan_insert_tag_set_proto(skb, skb->vlan_proto,
ffff8000113a8b6c:	79413678 	ldrh	w24, [x19,#154]
ffff8000113a8b70:	12000000 	and	w0, w0, #0x1
ffff8000113a8b74:	34001240 	cbz	w0, ffff8000113a8dbc <validate_xmit_skb+0x2a8>
static inline int skb_header_cloned(const struct sk_buff *skb)
ffff8000113a8b78:	f9406260 	ldr	x0, [x19,#192]
	return skb->head + skb->end;
ffff8000113a8b7c:	b940be61 	ldr	w1, [x19,#188]
	return dataref != 1;
ffff8000113a8b80:	aa0003e2 	mov	x2, x0
	return skb->head + skb->end;
ffff8000113a8b84:	8b010000 	add	x0, x0, x1
ffff8000113a8b88:	b9402000 	ldr	w0, [x0,#32]
	return skb->data - skb->head;
ffff8000113a8b8c:	f9406663 	ldr	x3, [x19,#200]
	dataref = (dataref & SKB_DATAREF_MASK) - (dataref >> SKB_DATAREF_SHIFT);
ffff8000113a8b90:	12003c01 	and	w1, w0, #0xffff
ffff8000113a8b94:	4b804020 	sub	w0, w1, w0, asr #16
	return dataref != 1;
ffff8000113a8b98:	7100041f 	cmp	w0, #0x1
	return skb->data - skb->head;
ffff8000113a8b9c:	cb020062 	sub	x2, x3, x2
	return dataref != 1;
ffff8000113a8ba0:	1a9f07e0 	cset	w0, ne
	if (headroom > skb_headroom(skb))
ffff8000113a8ba4:	71000c5f 	cmp	w2, #0x3
	int delta = 0;
ffff8000113a8ba8:	52800001 	mov	w1, #0x0                   	// #0
	if (headroom > skb_headroom(skb))
ffff8000113a8bac:	54000068 	b.hi	ffff8000113a8bb8 <validate_xmit_skb+0xa4>
		delta = headroom - skb_headroom(skb);
ffff8000113a8bb0:	52800081 	mov	w1, #0x4                   	// #4
ffff8000113a8bb4:	4b020021 	sub	w1, w1, w2
	if (delta || cloned)
ffff8000113a8bb8:	2a000020 	orr	w0, w1, w0
ffff8000113a8bbc:	35000ea0 	cbnz	w0, ffff8000113a8d90 <validate_xmit_skb+0x27c>
	skb_push(skb, VLAN_HLEN);
ffff8000113a8bc0:	52800081 	mov	w1, #0x4                   	// #4
ffff8000113a8bc4:	aa1303e0 	mov	x0, x19
ffff8000113a8bc8:	94000000 	bl	0 <skb_push>
			ffff8000113a8bc8: R_AARCH64_CALL26	skb_push
		memmove(skb->data, skb->data + VLAN_HLEN, mac_len - ETH_TLEN);
ffff8000113a8bcc:	f9406660 	ldr	x0, [x19,#200]
	return __builtin_memmove(p, q, size);
ffff8000113a8bd0:	d2800182 	mov	x2, #0xc                   	// #12
ffff8000113a8bd4:	91001001 	add	x1, x0, #0x4
ffff8000113a8bd8:	94000000 	bl	0 <memmove>
			ffff8000113a8bd8: R_AARCH64_CALL26	memmove
	skb->mac_header -= VLAN_HLEN;
ffff8000113a8bdc:	79416e61 	ldrh	w1, [x19,#182]
	veth = (struct vlan_ethhdr *)(skb->data + mac_len - ETH_HLEN);
ffff8000113a8be0:	f9406660 	ldr	x0, [x19,#200]
	skb->mac_header -= VLAN_HLEN;
ffff8000113a8be4:	51001021 	sub	w1, w1, #0x4
ffff8000113a8be8:	79016e61 	strh	w1, [x19,#182]
static inline __attribute_const__ __u16 __fswab16(__u16 val)
{
#if defined (__arch_swab16)
	return __arch_swab16(val);
#else
	return ___constant_swab16(val);
ffff8000113a8bec:	53087f01 	lsr	w1, w24, #8
ffff8000113a8bf0:	2a182038 	orr	w24, w1, w24, lsl #8
		veth->h_vlan_proto = vlan_proto;
ffff8000113a8bf4:	79001815 	strh	w21, [x0,#12]
	veth->h_vlan_TCI = htons(vlan_tci);
ffff8000113a8bf8:	79001c18 	strh	w24, [x0,#14]
	if (skb)
ffff8000113a8bfc:	b4000a13 	cbz	x19, ffff8000113a8d3c <validate_xmit_skb+0x228>
	skb->vlan_present = 0;
ffff8000113a8c00:	39420a60 	ldrb	w0, [x19,#130]
		skb->protocol = vlan_proto;
ffff8000113a8c04:	79016275 	strh	w21, [x19,#176]
	skb->vlan_present = 0;
ffff8000113a8c08:	121f7800 	and	w0, w0, #0xfffffffe
ffff8000113a8c0c:	39020a60 	strb	w0, [x19,#130]
	if (unlikely(!skb))
ffff8000113a8c10:	b4000973 	cbz	x19, ffff8000113a8d3c <validate_xmit_skb+0x228>
 */
static inline struct sk_buff *sk_validate_xmit_skb(struct sk_buff *skb,
						   struct net_device *dev)
{
#ifdef CONFIG_SOCK_VALIDATE_XMIT
	struct sock *sk = skb->sk;
ffff8000113a8c14:	f9400e60 	ldr	x0, [x19,#24]

	if (sk && sk_fullsock(sk) && sk->sk_validate_xmit_skb) {
ffff8000113a8c18:	b4000580 	cbz	x0, ffff8000113a8cc8 <validate_xmit_skb+0x1b4>
	return (1 << sk->sk_state) & ~(TCPF_TIME_WAIT | TCPF_NEW_SYN_RECV);
ffff8000113a8c1c:	39404801 	ldrb	w1, [x0,#18]
ffff8000113a8c20:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a8c24:	1ac12042 	lsl	w2, w2, w1
ffff8000113a8c28:	12820801 	mov	w1, #0xffffefbf            	// #-4161
	if (sk && sk_fullsock(sk) && sk->sk_validate_xmit_skb) {
ffff8000113a8c2c:	6a01005f 	tst	w2, w1
ffff8000113a8c30:	540004c0 	b.eq	ffff8000113a8cc8 <validate_xmit_skb+0x1b4>
ffff8000113a8c34:	f9416403 	ldr	x3, [x0,#712]
ffff8000113a8c38:	b4000483 	cbz	x3, ffff8000113a8cc8 <validate_xmit_skb+0x1b4>
		skb = sk->sk_validate_xmit_skb(sk, dev, skb);
ffff8000113a8c3c:	aa1303e2 	mov	x2, x19
ffff8000113a8c40:	aa1703e1 	mov	x1, x23
ffff8000113a8c44:	d63f0060 	blr	x3
ffff8000113a8c48:	aa0003f3 	mov	x19, x0
	if (unlikely(!skb))
ffff8000113a8c4c:	b4000780 	cbz	x0, ffff8000113a8d3c <validate_xmit_skb+0x228>
	return skb->head + skb->end;
ffff8000113a8c50:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a8c54:	f9406261 	ldr	x1, [x19,#192]
ffff8000113a8c58:	8b000020 	add	x0, x1, x0
	return skb_is_gso(skb) && (!skb_gso_ok(skb, features) ||
ffff8000113a8c5c:	79400803 	ldrh	w3, [x0,#4]
ffff8000113a8c60:	34000423 	cbz	w3, ffff8000113a8ce4 <validate_xmit_skb+0x1d0>
	netdev_features_t feature = (netdev_features_t)gso_type << NETIF_F_GSO_SHIFT;
ffff8000113a8c64:	b9801801 	ldrsw	x1, [x0,#24]
ffff8000113a8c68:	d370bc21 	lsl	x1, x1, #16
	return (features & feature) == feature;
ffff8000113a8c6c:	8a010282 	and	x2, x20, x1
	return net_gso_ok(features, skb_shinfo(skb)->gso_type) &&
ffff8000113a8c70:	eb02003f 	cmp	x1, x2
ffff8000113a8c74:	54000b60 	b.eq	ffff8000113a8de0 <validate_xmit_skb+0x2cc>
	return __skb_gso_segment(skb, features, true);
ffff8000113a8c78:	aa1303e0 	mov	x0, x19
ffff8000113a8c7c:	aa1403e1 	mov	x1, x20
ffff8000113a8c80:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a8c84:	94000000 	bl	ffff8000113a875c <__skb_gso_segment>
			ffff8000113a8c84: R_AARCH64_CALL26	__skb_gso_segment
		if (IS_ERR(segs)) {
ffff8000113a8c88:	b140041f 	cmn	x0, #0x1, lsl #12
ffff8000113a8c8c:	aa0003f5 	mov	x21, x0
ffff8000113a8c90:	54000528 	b.hi	ffff8000113a8d34 <validate_xmit_skb+0x220>
		} else if (segs) {
ffff8000113a8c94:	b4000095 	cbz	x21, ffff8000113a8ca4 <validate_xmit_skb+0x190>
			consume_skb(skb);
ffff8000113a8c98:	aa1303e0 	mov	x0, x19
ffff8000113a8c9c:	94000000 	bl	0 <consume_skb>
			ffff8000113a8c9c: R_AARCH64_CALL26	consume_skb
ffff8000113a8ca0:	aa1503f3 	mov	x19, x21
	skb = validate_xmit_xfrm(skb, features, again);
ffff8000113a8ca4:	aa1303e0 	mov	x0, x19
ffff8000113a8ca8:	aa1403e1 	mov	x1, x20
ffff8000113a8cac:	aa1603e2 	mov	x2, x22
ffff8000113a8cb0:	94000000 	bl	0 <validate_xmit_xfrm>
			ffff8000113a8cb0: R_AARCH64_CALL26	validate_xmit_xfrm
}
ffff8000113a8cb4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8cb8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8cbc:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a8cc0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a8cc4:	d65f03c0 	ret
#ifdef CONFIG_TLS_DEVICE
	} else if (unlikely(skb->decrypted)) {
ffff8000113a8cc8:	39421260 	ldrb	w0, [x19,#132]
ffff8000113a8ccc:	37080960 	tbnz	w0, #1, ffff8000113a8df8 <validate_xmit_skb+0x2e4>
ffff8000113a8cd0:	b940be60 	ldr	w0, [x19,#188]
ffff8000113a8cd4:	f9406261 	ldr	x1, [x19,#192]
ffff8000113a8cd8:	8b000020 	add	x0, x1, x0
	return skb_is_gso(skb) && (!skb_gso_ok(skb, features) ||
ffff8000113a8cdc:	79400803 	ldrh	w3, [x0,#4]
ffff8000113a8ce0:	35fffc23 	cbnz	w3, ffff8000113a8c64 <validate_xmit_skb+0x150>
static inline bool skb_needs_linearize(struct sk_buff *skb,
ffff8000113a8ce4:	b9407661 	ldr	w1, [x19,#116]
	return skb_is_nonlinear(skb) &&
ffff8000113a8ce8:	340000e1 	cbz	w1, ffff8000113a8d04 <validate_xmit_skb+0x1f0>
ffff8000113a8cec:	f9400402 	ldr	x2, [x0,#8]
ffff8000113a8cf0:	b4000042 	cbz	x2, ffff8000113a8cf8 <validate_xmit_skb+0x1e4>
	       ((skb_has_frag_list(skb) && !(features & NETIF_F_FRAGLIST)) ||
ffff8000113a8cf4:	363003f4 	tbz	w20, #6, ffff8000113a8d70 <validate_xmit_skb+0x25c>
ffff8000113a8cf8:	39400800 	ldrb	w0, [x0,#2]
ffff8000113a8cfc:	34000040 	cbz	w0, ffff8000113a8d04 <validate_xmit_skb+0x1f0>
		(skb_shinfo(skb)->nr_frags && !(features & NETIF_F_SG)));
ffff8000113a8d00:	36000394 	tbz	w20, #0, ffff8000113a8d70 <validate_xmit_skb+0x25c>
		if (skb->ip_summed == CHECKSUM_PARTIAL) {
ffff8000113a8d04:	39420260 	ldrb	w0, [x19,#128]
ffff8000113a8d08:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a8d0c:	71000c1f 	cmp	w0, #0x3
ffff8000113a8d10:	54fffca1 	b.ne	ffff8000113a8ca4 <validate_xmit_skb+0x190>
			if (skb->encapsulation)
ffff8000113a8d14:	39420660 	ldrb	w0, [x19,#129]
ffff8000113a8d18:	37280260 	tbnz	w0, #5, ffff8000113a8d64 <validate_xmit_skb+0x250>
	skb->transport_header += offset;
ffff8000113a8d1c:	79411260 	ldrh	w0, [x19,#136]
ffff8000113a8d20:	79016660 	strh	w0, [x19,#178]
			if (skb_csum_hwoffload_help(skb, features))
ffff8000113a8d24:	aa1303e0 	mov	x0, x19
ffff8000113a8d28:	aa1403e1 	mov	x1, x20
ffff8000113a8d2c:	94000000 	bl	ffff8000113a84a0 <skb_csum_hwoffload_help>
			ffff8000113a8d2c: R_AARCH64_CALL26	skb_csum_hwoffload_help
ffff8000113a8d30:	34fffba0 	cbz	w0, ffff8000113a8ca4 <validate_xmit_skb+0x190>
	kfree_skb(skb);
ffff8000113a8d34:	aa1303e0 	mov	x0, x19
ffff8000113a8d38:	94000000 	bl	0 <kfree_skb>
			ffff8000113a8d38: R_AARCH64_CALL26	kfree_skb
ATOMIC64_OPS(add, add, I)
ffff8000113a8d3c:	910722e2 	add	x2, x23, #0x1c8
ffff8000113a8d40:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113a8d44:	c85f7c40 	ldxr	x0, [x2]
ffff8000113a8d48:	91000400 	add	x0, x0, #0x1
ffff8000113a8d4c:	c8017c40 	stxr	w1, x0, [x2]
ffff8000113a8d50:	35ffffa1 	cbnz	w1, ffff8000113a8d44 <validate_xmit_skb+0x230>
	return NULL;
ffff8000113a8d54:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a8d58:	17ffffd7 	b	ffff8000113a8cb4 <validate_xmit_skb+0x1a0>
	if (proto == htons(ETH_P_8021Q) && features & NETIF_F_HW_VLAN_CTAG_TX)
ffff8000113a8d5c:	373ff5b4 	tbnz	w20, #7, ffff8000113a8c10 <validate_xmit_skb+0xfc>
ffff8000113a8d60:	17ffff82 	b	ffff8000113a8b68 <validate_xmit_skb+0x54>
	skb->inner_transport_header += offset;
ffff8000113a8d64:	79411260 	ldrh	w0, [x19,#136]
ffff8000113a8d68:	79015660 	strh	w0, [x19,#170]
ffff8000113a8d6c:	17ffffee 	b	ffff8000113a8d24 <validate_xmit_skb+0x210>
	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
ffff8000113a8d70:	aa1303e0 	mov	x0, x19
ffff8000113a8d74:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113a8d74: R_AARCH64_CALL26	__pskb_pull_tail
ffff8000113a8d78:	b4fffde0 	cbz	x0, ffff8000113a8d34 <validate_xmit_skb+0x220>
		if (skb->ip_summed == CHECKSUM_PARTIAL) {
ffff8000113a8d7c:	39420260 	ldrb	w0, [x19,#128]
ffff8000113a8d80:	d3451800 	ubfx	x0, x0, #5, #2
ffff8000113a8d84:	71000c1f 	cmp	w0, #0x3
ffff8000113a8d88:	54fff8e1 	b.ne	ffff8000113a8ca4 <validate_xmit_skb+0x190>
ffff8000113a8d8c:	17ffffe2 	b	ffff8000113a8d14 <validate_xmit_skb+0x200>
		return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD), 0,
ffff8000113a8d90:	1100fc21 	add	w1, w1, #0x3f
ffff8000113a8d94:	121a6421 	and	w1, w1, #0xffffffc0
ffff8000113a8d98:	aa1303e0 	mov	x0, x19
ffff8000113a8d9c:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113a8da0:	52814403 	mov	w3, #0xa20                 	// #2592
ffff8000113a8da4:	94000000 	bl	0 <pskb_expand_head>
			ffff8000113a8da4: R_AARCH64_CALL26	pskb_expand_head
	if (skb_cow_head(skb, VLAN_HLEN) < 0)
ffff8000113a8da8:	36fff0c0 	tbz	w0, #31, ffff8000113a8bc0 <validate_xmit_skb+0xac>
	__dev_kfree_skb_any(skb, SKB_REASON_DROPPED);
ffff8000113a8dac:	aa1303e0 	mov	x0, x19
ffff8000113a8db0:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a8db4:	94000000 	bl	ffff8000113a59b0 <__dev_kfree_skb_any>
			ffff8000113a8db4: R_AARCH64_CALL26	__dev_kfree_skb_any
ffff8000113a8db8:	17ffffe1 	b	ffff8000113a8d3c <validate_xmit_skb+0x228>
ffff8000113a8dbc:	f9406262 	ldr	x2, [x19,#192]
	return skb->data - skb->head;
ffff8000113a8dc0:	f9406663 	ldr	x3, [x19,#200]
	int delta = 0;
ffff8000113a8dc4:	52800001 	mov	w1, #0x0                   	// #0
	return skb->data - skb->head;
ffff8000113a8dc8:	cb020062 	sub	x2, x3, x2
	if (headroom > skb_headroom(skb))
ffff8000113a8dcc:	71000c5f 	cmp	w2, #0x3
ffff8000113a8dd0:	54ffef48 	b.hi	ffff8000113a8bb8 <validate_xmit_skb+0xa4>
ffff8000113a8dd4:	17ffff77 	b	ffff8000113a8bb0 <validate_xmit_skb+0x9c>
	if (proto == htons(ETH_P_8021AD) && features & NETIF_F_HW_VLAN_STAG_TX)
ffff8000113a8dd8:	b76ff1d4 	tbnz	x20, #45, ffff8000113a8c10 <validate_xmit_skb+0xfc>
ffff8000113a8ddc:	17ffff63 	b	ffff8000113a8b68 <validate_xmit_skb+0x54>
	return net_gso_ok(features, skb_shinfo(skb)->gso_type) &&
ffff8000113a8de0:	f9400401 	ldr	x1, [x0,#8]
ffff8000113a8de4:	b4000041 	cbz	x1, ffff8000113a8dec <validate_xmit_skb+0x2d8>
	       (!skb_has_frag_list(skb) || (features & NETIF_F_FRAGLIST));
ffff8000113a8de8:	3637f494 	tbz	w20, #6, ffff8000113a8c78 <validate_xmit_skb+0x164>
		unlikely((skb->ip_summed != CHECKSUM_PARTIAL) &&
ffff8000113a8dec:	39420261 	ldrb	w1, [x19,#128]
	return skb_is_gso(skb) && (!skb_gso_ok(skb, features) ||
ffff8000113a8df0:	372ff7a1 	tbnz	w1, #5, ffff8000113a8ce4 <validate_xmit_skb+0x1d0>
ffff8000113a8df4:	17ffffa1 	b	ffff8000113a8c78 <validate_xmit_skb+0x164>
		pr_warn_ratelimited("unencrypted skb with no associated socket - dropping\n");
ffff8000113a8df8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8df8: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113a8dfc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8dfc: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113a8e00:	91000000 	add	x0, x0, #0x0
			ffff8000113a8e00: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113a8e04:	91000021 	add	x1, x1, #0x0
			ffff8000113a8e04: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113a8e08:	91034000 	add	x0, x0, #0xd0
ffff8000113a8e0c:	9101a021 	add	x1, x1, #0x68
ffff8000113a8e10:	94000000 	bl	0 <___ratelimit>
			ffff8000113a8e10: R_AARCH64_CALL26	___ratelimit
ffff8000113a8e14:	34fff900 	cbz	w0, ffff8000113a8d34 <validate_xmit_skb+0x220>
ffff8000113a8e18:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8e18: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x618
ffff8000113a8e1c:	91000000 	add	x0, x0, #0x0
			ffff8000113a8e1c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x618
ffff8000113a8e20:	94000000 	bl	0 <printk>
			ffff8000113a8e20: R_AARCH64_CALL26	printk
ffff8000113a8e24:	17ffffc4 	b	ffff8000113a8d34 <validate_xmit_skb+0x220>

ffff8000113a8e28 <validate_xmit_skb_list>:
{
ffff8000113a8e28:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a8e2c:	910003fd 	mov	x29, sp
ffff8000113a8e30:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8e34:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a8e38:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a8e3c:	aa0003f3 	mov	x19, x0
ffff8000113a8e40:	aa1e03e0 	mov	x0, x30
ffff8000113a8e44:	aa0103f7 	mov	x23, x1
ffff8000113a8e48:	aa0203f8 	mov	x24, x2
ffff8000113a8e4c:	94000000 	bl	0 <_mcount>
			ffff8000113a8e4c: R_AARCH64_CALL26	_mcount
	for (; skb != NULL; skb = next) {
ffff8000113a8e50:	b4000273 	cbz	x19, ffff8000113a8e9c <validate_xmit_skb_list+0x74>
	struct sk_buff *next, *head = NULL, *tail;
ffff8000113a8e54:	d2800016 	mov	x22, #0x0                   	// #0
		next = skb->next;
ffff8000113a8e58:	f9400274 	ldr	x20, [x19]
		skb->prev = skb;
ffff8000113a8e5c:	f9000673 	str	x19, [x19,#8]
	skb->next = NULL;
ffff8000113a8e60:	f900027f 	str	xzr, [x19]
		skb = validate_xmit_skb(skb, dev, again);
ffff8000113a8e64:	aa1303e0 	mov	x0, x19
ffff8000113a8e68:	aa1703e1 	mov	x1, x23
ffff8000113a8e6c:	aa1803e2 	mov	x2, x24
ffff8000113a8e70:	97ffff29 	bl	ffff8000113a8b14 <validate_xmit_skb>
		if (!skb)
ffff8000113a8e74:	b4000080 	cbz	x0, ffff8000113a8e84 <validate_xmit_skb_list+0x5c>
		if (!head)
ffff8000113a8e78:	b40000d6 	cbz	x22, ffff8000113a8e90 <validate_xmit_skb_list+0x68>
			tail->next = skb;
ffff8000113a8e7c:	f90002a0 	str	x0, [x21]
		tail = skb->prev;
ffff8000113a8e80:	f9400415 	ldr	x21, [x0,#8]
	for (; skb != NULL; skb = next) {
ffff8000113a8e84:	b40000f4 	cbz	x20, ffff8000113a8ea0 <validate_xmit_skb_list+0x78>
ffff8000113a8e88:	aa1403f3 	mov	x19, x20
ffff8000113a8e8c:	17fffff3 	b	ffff8000113a8e58 <validate_xmit_skb_list+0x30>
ffff8000113a8e90:	aa0003f6 	mov	x22, x0
		tail = skb->prev;
ffff8000113a8e94:	f9400415 	ldr	x21, [x0,#8]
ffff8000113a8e98:	17fffffb 	b	ffff8000113a8e84 <validate_xmit_skb_list+0x5c>
	struct sk_buff *next, *head = NULL, *tail;
ffff8000113a8e9c:	aa1303f6 	mov	x22, x19
}
ffff8000113a8ea0:	aa1603e0 	mov	x0, x22
ffff8000113a8ea4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8ea8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8eac:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a8eb0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a8eb4:	d65f03c0 	ret

ffff8000113a8eb8 <dev_direct_xmit>:
{
ffff8000113a8eb8:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113a8ebc:	910003fd 	mov	x29, sp
ffff8000113a8ec0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a8ec4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a8ec8:	f9001bf7 	str	x23, [sp,#48]
ffff8000113a8ecc:	aa0003f4 	mov	x20, x0
ffff8000113a8ed0:	aa1e03e0 	mov	x0, x30
ffff8000113a8ed4:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113a8ed4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a8ed8:	53003c36 	uxth	w22, w1
ffff8000113a8edc:	94000000 	bl	0 <_mcount>
			ffff8000113a8edc: R_AARCH64_CALL26	_mcount
ffff8000113a8ee0:	f94002a0 	ldr	x0, [x21]
			ffff8000113a8ee0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct net_device *dev = skb->dev;
ffff8000113a8ee4:	f9400a93 	ldr	x19, [x20,#16]
{
ffff8000113a8ee8:	f90027a0 	str	x0, [x29,#72]
ffff8000113a8eec:	f9402260 	ldr	x0, [x19,#64]
	bool again = false;
ffff8000113a8ef0:	39011fbf 	strb	wzr, [x29,#71]
	if (unlikely(!netif_running(dev) ||
ffff8000113a8ef4:	36000c00 	tbz	w0, #0, ffff8000113a9074 <dev_direct_xmit+0x1bc>
ffff8000113a8ef8:	f9402260 	ldr	x0, [x19,#64]
ffff8000113a8efc:	37100bc0 	tbnz	w0, #2, ffff8000113a9074 <dev_direct_xmit+0x1bc>
	skb = validate_xmit_skb_list(skb, dev, &again);
ffff8000113a8f00:	aa1403e0 	mov	x0, x20
ffff8000113a8f04:	aa1303e1 	mov	x1, x19
ffff8000113a8f08:	91011fa2 	add	x2, x29, #0x47
ffff8000113a8f0c:	94000000 	bl	ffff8000113a8e28 <validate_xmit_skb_list>
			ffff8000113a8f0c: R_AARCH64_CALL26	validate_xmit_skb_list
	if (skb != orig_skb)
ffff8000113a8f10:	eb00029f 	cmp	x20, x0
ffff8000113a8f14:	54000260 	b.eq	ffff8000113a8f60 <dev_direct_xmit+0xa8>
ffff8000113a8f18:	91072263 	add	x3, x19, #0x1c8
ffff8000113a8f1c:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a8f20:	c85f7c61 	ldxr	x1, [x3]
ffff8000113a8f24:	91000421 	add	x1, x1, #0x1
ffff8000113a8f28:	c8027c61 	stxr	w2, x1, [x3]
ffff8000113a8f2c:	35ffffa2 	cbnz	w2, ffff8000113a8f20 <dev_direct_xmit+0x68>
	return NET_XMIT_DROP;
ffff8000113a8f30:	52800033 	mov	w19, #0x1                   	// #1
	kfree_skb_list(skb);
ffff8000113a8f34:	94000000 	bl	0 <kfree_skb_list>
			ffff8000113a8f34: R_AARCH64_CALL26	kfree_skb_list
}
ffff8000113a8f38:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113a8f3c:	f94002a1 	ldr	x1, [x21]
			ffff8000113a8f3c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a8f40:	2a1303e0 	mov	w0, w19
ffff8000113a8f44:	eb01005f 	cmp	x2, x1
ffff8000113a8f48:	540009a1 	b.ne	ffff8000113a907c <dev_direct_xmit+0x1c4>
ffff8000113a8f4c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a8f50:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a8f54:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113a8f58:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113a8f5c:	d65f03c0 	ret
	skb->queue_mapping = queue_mapping;
ffff8000113a8f60:	7900fa96 	strh	w22, [x20,#124]
ffff8000113a8f64:	d5384100 	mrs	x0, sp_el0
ffff8000113a8f68:	b9401801 	ldr	w1, [x0,#24]
	return &dev->_tx[index];
ffff8000113a8f6c:	f941e262 	ldr	x2, [x19,#960]
ffff8000113a8f70:	52802803 	mov	w3, #0x140                 	// #320
ffff8000113a8f74:	9ba37ed6 	umull	x22, w22, w3
ffff8000113a8f78:	11080021 	add	w1, w1, #0x200
ffff8000113a8f7c:	8b160056 	add	x22, x2, x22
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a8f80:	b9001801 	str	w1, [x0,#24]
	HARD_TX_LOCK(dev, txq, smp_processor_id());
ffff8000113a8f84:	f9406662 	ldr	x2, [x19,#200]
ffff8000113a8f88:	92740042 	and	x2, x2, #0x1000
ffff8000113a8f8c:	b4000562 	cbz	x2, ffff8000113a9038 <dev_direct_xmit+0x180>
	return dev_queue->state & QUEUE_STATE_DRV_XOFF_OR_FROZEN;
ffff8000113a8f90:	f9404ac1 	ldr	x1, [x22,#144]
ffff8000113a8f94:	d28000a0 	mov	x0, #0x5                   	// #5
ffff8000113a8f98:	8a000020 	and	x0, x1, x0
	int ret = NETDEV_TX_BUSY;
ffff8000113a8f9c:	52800217 	mov	w23, #0x10                  	// #16
	if (!netif_xmit_frozen_or_drv_stopped(txq))
ffff8000113a8fa0:	b4000260 	cbz	x0, ffff8000113a8fec <dev_direct_xmit+0x134>
	HARD_TX_UNLOCK(dev, txq);
ffff8000113a8fa4:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a8fa8:	92740000 	and	x0, x0, #0x1000
ffff8000113a8fac:	b4000160 	cbz	x0, ffff8000113a8fd8 <dev_direct_xmit+0x120>
ffff8000113a8fb0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8fb0: R_AARCH64_ADR_PREL_PG_HI21	.text+0xac34
ffff8000113a8fb4:	91000000 	add	x0, x0, #0x0
			ffff8000113a8fb4: R_AARCH64_ADD_ABS_LO12_NC	.text+0xac34
ffff8000113a8fb8:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a8fbc:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a8fbc: R_AARCH64_CALL26	__local_bh_enable_ip
	if (likely(rc < NET_XMIT_MASK))
ffff8000113a8fc0:	71003aff 	cmp	w23, #0xe
ffff8000113a8fc4:	2a1703f3 	mov	w19, w23
ffff8000113a8fc8:	54fffb8d 	b.le	ffff8000113a8f38 <dev_direct_xmit+0x80>
		kfree_skb(skb);
ffff8000113a8fcc:	aa1403e0 	mov	x0, x20
ffff8000113a8fd0:	94000000 	bl	0 <kfree_skb>
			ffff8000113a8fd0: R_AARCH64_CALL26	kfree_skb
ffff8000113a8fd4:	17ffffd9 	b	ffff8000113a8f38 <dev_direct_xmit+0x80>
	txq->xmit_lock_owner = -1;
ffff8000113a8fd8:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113a8fdc:	b90086c1 	str	w1, [x22,#132]
	smp_store_release(&lock->locked, 0);
ffff8000113a8fe0:	910202d6 	add	x22, x22, #0x80
ffff8000113a8fe4:	089ffec0 	stlrb	w0, [x22]
	preempt_enable();
ffff8000113a8fe8:	17fffff2 	b	ffff8000113a8fb0 <dev_direct_xmit+0xf8>
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a8fec:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a8fec: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113a8ff0:	f940fa62 	ldr	x2, [x19,#496]
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a8ff4:	91000021 	add	x1, x1, #0x0
			ffff8000113a8ff4: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a8ff8:	9101e821 	add	x1, x1, #0x7a
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a8ffc:	d538d083 	mrs	x3, tpidr_el1
ffff8000113a9000:	38216860 	strb	w0, [x3,x1]
	return ops->ndo_start_xmit(skb, dev);
ffff8000113a9004:	f9401042 	ldr	x2, [x2,#32]
ffff8000113a9008:	aa1403e0 	mov	x0, x20
ffff8000113a900c:	aa1303e1 	mov	x1, x19
ffff8000113a9010:	d63f0040 	blr	x2
	if (rc == NETDEV_TX_OK)
ffff8000113a9014:	350000e0 	cbnz	w0, ffff8000113a9030 <dev_direct_xmit+0x178>
	if (txq->xmit_lock_owner != -1)
ffff8000113a9018:	b94086c1 	ldr	w1, [x22,#132]
ffff8000113a901c:	3100043f 	cmn	w1, #0x1
ffff8000113a9020:	54000080 	b.eq	ffff8000113a9030 <dev_direct_xmit+0x178>
		txq->trans_start = jiffies;
ffff8000113a9024:	90000001 	adrp	x1, 0 <jiffies>
			ffff8000113a9024: R_AARCH64_ADR_PREL_PG_HI21	jiffies
ffff8000113a9028:	f9400021 	ldr	x1, [x1]
			ffff8000113a9028: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113a902c:	f90046c1 	str	x1, [x22,#136]
	return ops->ndo_start_xmit(skb, dev);
ffff8000113a9030:	2a0003f7 	mov	w23, w0
ffff8000113a9034:	17ffffdc 	b	ffff8000113a8fa4 <dev_direct_xmit+0xec>
	HARD_TX_LOCK(dev, txq, smp_processor_id());
ffff8000113a9038:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113a9038: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a903c:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a9040:	91000000 	add	x0, x0, #0x0
			ffff8000113a9040: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a9044:	b8606837 	ldr	w23, [x1,x0]
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a9048:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a904c:	910202c0 	add	x0, x22, #0x80
ffff8000113a9050:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a9054:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a9058:	4a020024 	eor	w4, w1, w2
ffff8000113a905c:	35000064 	cbnz	w4, ffff8000113a9068 <dev_direct_xmit+0x1b0>
ffff8000113a9060:	88047c03 	stxr	w4, w3, [x0]
ffff8000113a9064:	35ffff84 	cbnz	w4, ffff8000113a9054 <dev_direct_xmit+0x19c>
	if (unlikely(r != o))
ffff8000113a9068:	350000c1 	cbnz	w1, ffff8000113a9080 <dev_direct_xmit+0x1c8>
	txq->xmit_lock_owner = cpu;
ffff8000113a906c:	b90086d7 	str	w23, [x22,#132]
ffff8000113a9070:	17ffffc8 	b	ffff8000113a8f90 <dev_direct_xmit+0xd8>
ffff8000113a9074:	aa1403e0 	mov	x0, x20
ffff8000113a9078:	17ffffa8 	b	ffff8000113a8f18 <dev_direct_xmit+0x60>
}
ffff8000113a907c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a907c: R_AARCH64_CALL26	__stack_chk_fail
	queued_spin_lock_slowpath(lock, val);
ffff8000113a9080:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a9080: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a9084:	b90086d7 	str	w23, [x22,#132]
ffff8000113a9088:	17ffffc2 	b	ffff8000113a8f90 <dev_direct_xmit+0xd8>

ffff8000113a908c <dev_hard_start_xmit>:
{
ffff8000113a908c:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113a9090:	910003fd 	mov	x29, sp
ffff8000113a9094:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a9098:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a909c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a90a0:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a90a4:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a90a8:	aa0003f3 	mov	x19, x0
ffff8000113a90ac:	aa1e03e0 	mov	x0, x30
ffff8000113a90b0:	aa0103f4 	mov	x20, x1
ffff8000113a90b4:	aa0203f9 	mov	x25, x2
ffff8000113a90b8:	f9003ba3 	str	x3, [x29,#112]
ffff8000113a90bc:	94000000 	bl	0 <_mcount>
			ffff8000113a90bc: R_AARCH64_CALL26	_mcount
	while (skb) {
ffff8000113a90c0:	b4000a33 	cbz	x19, ffff8000113a9204 <dev_hard_start_xmit+0x178>
	__READ_ONCE_SIZE;
ffff8000113a90c4:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a90c4: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113a90c8:	9100035a 	add	x26, x26, #0x0
			ffff8000113a90c8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113a90cc:	9120035a 	add	x26, x26, #0x800
		struct sk_buff *next = skb->next;
ffff8000113a90d0:	f9400277 	ldr	x23, [x19]
TRACE_EVENT(net_dev_start_xmit,
ffff8000113a90d4:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113a90d4: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
	skb->next = NULL;
ffff8000113a90d8:	f900027f 	str	xzr, [x19]
ffff8000113a90dc:	91000000 	add	x0, x0, #0x0
			ffff8000113a90dc: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a90e0:	f9003fa0 	str	x0, [x29,#120]
TRACE_EVENT(net_dev_xmit,
ffff8000113a90e4:	f90037a0 	str	x0, [x29,#104]
ffff8000113a90e8:	f9400340 	ldr	x0, [x26]
		rc = xmit_one(skb, dev, txq, next != NULL);
ffff8000113a90ec:	eb1f02ff 	cmp	x23, xzr
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a90f0:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a90f0: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a90f4:	9100037b 	add	x27, x27, #0x0
			ffff8000113a90f4: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a90f8:	1a9f07f8 	cset	w24, ne
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff8000113a90fc:	eb00035f 	cmp	x26, x0
ffff8000113a9100:	9101eb7b 	add	x27, x27, #0x7a
ffff8000113a9104:	54000760 	b.eq	ffff8000113a91f0 <dev_hard_start_xmit+0x164>
		dev_queue_xmit_nit(skb, dev);
ffff8000113a9108:	aa1303e0 	mov	x0, x19
ffff8000113a910c:	aa1403e1 	mov	x1, x20
ffff8000113a9110:	94000000 	bl	ffff8000113a4ea0 <dev_queue_xmit_nit>
			ffff8000113a9110: R_AARCH64_CALL26	dev_queue_xmit_nit
ffff8000113a9114:	90000000 	adrp	x0, 0 <__tracepoint_net_dev_start_xmit>
			ffff8000113a9114: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_net_dev_start_xmit
ffff8000113a9118:	91000001 	add	x1, x0, #0x0
			ffff8000113a9118: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_net_dev_start_xmit
ffff8000113a911c:	b9400820 	ldr	w0, [x1,#8]
	len = skb->len;
ffff8000113a9120:	b9407276 	ldr	w22, [x19,#112]
	if (unlikely(static_key_count(key) > 0))
ffff8000113a9124:	6b1f001f 	cmp	w0, wzr
		"Q" (*(const unsigned long *)current_stack_pointer));
ffff8000113a9128:	910003e0 	mov	x0, sp
ffff8000113a912c:	54000aac 	b.gt	ffff8000113a9280 <dev_hard_start_xmit+0x1f4>
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113a9130:	f940fa81 	ldr	x1, [x20,#496]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113a9134:	d538d080 	mrs	x0, tpidr_el1
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a9138:	383b6818 	strb	w24, [x0,x27]
	return ops->ndo_start_xmit(skb, dev);
ffff8000113a913c:	f9401022 	ldr	x2, [x1,#32]
ffff8000113a9140:	aa1303e0 	mov	x0, x19
ffff8000113a9144:	aa1403e1 	mov	x1, x20
ffff8000113a9148:	d63f0040 	blr	x2
ffff8000113a914c:	2a0003f5 	mov	w21, w0
	if (rc == NETDEV_TX_OK)
ffff8000113a9150:	350000e0 	cbnz	w0, ffff8000113a916c <dev_hard_start_xmit+0xe0>
	if (txq->xmit_lock_owner != -1)
ffff8000113a9154:	b9408720 	ldr	w0, [x25,#132]
ffff8000113a9158:	3100041f 	cmn	w0, #0x1
ffff8000113a915c:	54000080 	b.eq	ffff8000113a916c <dev_hard_start_xmit+0xe0>
		txq->trans_start = jiffies;
ffff8000113a9160:	90000000 	adrp	x0, 0 <jiffies>
			ffff8000113a9160: R_AARCH64_ADR_PREL_PG_HI21	jiffies
ffff8000113a9164:	f9400000 	ldr	x0, [x0]
			ffff8000113a9164: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113a9168:	f9004720 	str	x0, [x25,#136]
ffff8000113a916c:	90000001 	adrp	x1, 0 <__tracepoint_net_dev_xmit>
			ffff8000113a916c: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_net_dev_xmit
ffff8000113a9170:	91000020 	add	x0, x1, #0x0
			ffff8000113a9170: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_net_dev_xmit
ffff8000113a9174:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a9178:	6b1f003f 	cmp	w1, wzr
ffff8000113a917c:	5400050c 	b.gt	ffff8000113a921c <dev_hard_start_xmit+0x190>
	if (likely(rc < NET_XMIT_MASK))
ffff8000113a9180:	71003abf 	cmp	w21, #0xe
ffff8000113a9184:	5400046c 	b.gt	ffff8000113a9210 <dev_hard_start_xmit+0x184>
ffff8000113a9188:	f9404b20 	ldr	x0, [x25,#144]
		if (netif_tx_queue_stopped(txq) && skb) {
ffff8000113a918c:	36000200 	tbz	w0, #0, ffff8000113a91cc <dev_hard_start_xmit+0x140>
			rc = NETDEV_TX_BUSY;
ffff8000113a9190:	6b1f031f 	cmp	w24, wzr
ffff8000113a9194:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113a9198:	1a8002b5 	csel	w21, w21, w0, eq
ffff8000113a919c:	6b1f031f 	cmp	w24, wzr
ffff8000113a91a0:	9a9f12f7 	csel	x23, x23, xzr, ne
	*ret = rc;
ffff8000113a91a4:	f9403ba2 	ldr	x2, [x29,#112]
}
ffff8000113a91a8:	aa1703e0 	mov	x0, x23
	*ret = rc;
ffff8000113a91ac:	b9000055 	str	w21, [x2]
}
ffff8000113a91b0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a91b4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a91b8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a91bc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a91c0:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113a91c4:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113a91c8:	d65f03c0 	ret
	while (skb) {
ffff8000113a91cc:	340008b8 	cbz	w24, ffff8000113a92e0 <dev_hard_start_xmit+0x254>
		struct sk_buff *next = skb->next;
ffff8000113a91d0:	aa1703f3 	mov	x19, x23
ffff8000113a91d4:	f9400277 	ldr	x23, [x19]
ffff8000113a91d8:	f900027f 	str	xzr, [x19]
ffff8000113a91dc:	f9400340 	ldr	x0, [x26]
		rc = xmit_one(skb, dev, txq, next != NULL);
ffff8000113a91e0:	eb1f02ff 	cmp	x23, xzr
ffff8000113a91e4:	1a9f07f8 	cset	w24, ne
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff8000113a91e8:	eb00035f 	cmp	x26, x0
ffff8000113a91ec:	54fff8e1 	b.ne	ffff8000113a9108 <dev_hard_start_xmit+0x7c>
ffff8000113a91f0:	aa1403e0 	mov	x0, x20
ffff8000113a91f4:	f8488c01 	ldr	x1, [x0,#136]!
ffff8000113a91f8:	eb01001f 	cmp	x0, x1
ffff8000113a91fc:	54fff861 	b.ne	ffff8000113a9108 <dev_hard_start_xmit+0x7c>
ffff8000113a9200:	17ffffc5 	b	ffff8000113a9114 <dev_hard_start_xmit+0x88>
	while (skb) {
ffff8000113a9204:	aa1303f7 	mov	x23, x19
	int rc = NETDEV_TX_OK;
ffff8000113a9208:	2a1303f5 	mov	w21, w19
ffff8000113a920c:	17ffffe6 	b	ffff8000113a91a4 <dev_hard_start_xmit+0x118>
			skb->next = next;
ffff8000113a9210:	f9000277 	str	x23, [x19]
			goto out;
ffff8000113a9214:	aa1303f7 	mov	x23, x19
ffff8000113a9218:	17ffffe3 	b	ffff8000113a91a4 <dev_hard_start_xmit+0x118>
ffff8000113a921c:	f94037a2 	ldr	x2, [x29,#104]
ffff8000113a9220:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a9224:	b8626821 	ldr	w1, [x1,x2]
ffff8000113a9228:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a9228: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a922c:	1100fc23 	add	w3, w1, #0x3f
ffff8000113a9230:	6b1f003f 	cmp	w1, wzr
ffff8000113a9234:	1a81b063 	csel	w3, w3, w1, lt
ffff8000113a9238:	13067c63 	asr	w3, w3, #6
ffff8000113a923c:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a9240:	91000042 	add	x2, x2, #0x0
			ffff8000113a9240: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a9244:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a9248:	9ac12441 	lsr	x1, x2, x1
ffff8000113a924c:	3607f9a1 	tbz	w1, #0, ffff8000113a9180 <dev_hard_start_xmit+0xf4>
ffff8000113a9250:	f940101c 	ldr	x28, [x0,#32]
ffff8000113a9254:	b400015c 	cbz	x28, ffff8000113a927c <dev_hard_start_xmit+0x1f0>
ffff8000113a9258:	f9400386 	ldr	x6, [x28]
ffff8000113a925c:	f9400780 	ldr	x0, [x28,#8]
ffff8000113a9260:	aa1303e1 	mov	x1, x19
ffff8000113a9264:	2a1503e2 	mov	w2, w21
ffff8000113a9268:	aa1403e3 	mov	x3, x20
ffff8000113a926c:	2a1603e4 	mov	w4, w22
ffff8000113a9270:	d63f00c0 	blr	x6
ffff8000113a9274:	f8418f86 	ldr	x6, [x28,#24]!
ffff8000113a9278:	b5ffff26 	cbnz	x6, ffff8000113a925c <dev_hard_start_xmit+0x1d0>
ffff8000113a927c:	17ffffc1 	b	ffff8000113a9180 <dev_hard_start_xmit+0xf4>
TRACE_EVENT(net_dev_start_xmit,
ffff8000113a9280:	f9403fa3 	ldr	x3, [x29,#120]
ffff8000113a9284:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a9288:	b8636842 	ldr	w2, [x2,x3]
ffff8000113a928c:	90000003 	adrp	x3, 0 <__cpu_online_mask>
			ffff8000113a928c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a9290:	1100fc44 	add	w4, w2, #0x3f
ffff8000113a9294:	6b1f005f 	cmp	w2, wzr
ffff8000113a9298:	1a82b084 	csel	w4, w4, w2, lt
ffff8000113a929c:	13067c84 	asr	w4, w4, #6
ffff8000113a92a0:	937d7c84 	sbfiz	x4, x4, #3, #32
ffff8000113a92a4:	91000063 	add	x3, x3, #0x0
			ffff8000113a92a4: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a92a8:	f8636883 	ldr	x3, [x4,x3]
ffff8000113a92ac:	9ac22462 	lsr	x2, x3, x2
ffff8000113a92b0:	3607f402 	tbz	w2, #0, ffff8000113a9130 <dev_hard_start_xmit+0xa4>
ffff8000113a92b4:	f9401035 	ldr	x21, [x1,#32]
ffff8000113a92b8:	b4000115 	cbz	x21, ffff8000113a92d8 <dev_hard_start_xmit+0x24c>
ffff8000113a92bc:	f94002a3 	ldr	x3, [x21]
ffff8000113a92c0:	f94006a0 	ldr	x0, [x21,#8]
ffff8000113a92c4:	aa1303e1 	mov	x1, x19
ffff8000113a92c8:	aa1403e2 	mov	x2, x20
ffff8000113a92cc:	d63f0060 	blr	x3
ffff8000113a92d0:	f8418ea3 	ldr	x3, [x21,#24]!
ffff8000113a92d4:	b5ffff63 	cbnz	x3, ffff8000113a92c0 <dev_hard_start_xmit+0x234>
ffff8000113a92d8:	910003e0 	mov	x0, sp
ffff8000113a92dc:	17ffff95 	b	ffff8000113a9130 <dev_hard_start_xmit+0xa4>
ffff8000113a92e0:	d2800017 	mov	x23, #0x0                   	// #0
ffff8000113a92e4:	17ffffb0 	b	ffff8000113a91a4 <dev_hard_start_xmit+0x118>

ffff8000113a92e8 <netdev_core_pick_tx>:
{
ffff8000113a92e8:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a92ec:	910003fd 	mov	x29, sp
ffff8000113a92f0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a92f4:	f90013f5 	str	x21, [sp,#32]
ffff8000113a92f8:	aa0003f3 	mov	x19, x0
ffff8000113a92fc:	aa1e03e0 	mov	x0, x30
ffff8000113a9300:	aa0103f4 	mov	x20, x1
ffff8000113a9304:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a9308:	94000000 	bl	0 <_mcount>
			ffff8000113a9308: R_AARCH64_CALL26	_mcount
	u32 sender_cpu = skb->sender_cpu - 1;
ffff8000113a930c:	b9409e80 	ldr	w0, [x20,#156]
	if (sender_cpu >= (u32)NR_CPUS)
ffff8000113a9310:	f9401fa2 	ldr	x2, [x29,#56]
	u32 sender_cpu = skb->sender_cpu - 1;
ffff8000113a9314:	51000400 	sub	w0, w0, #0x1
	if (sender_cpu >= (u32)NR_CPUS)
ffff8000113a9318:	713ffc1f 	cmp	w0, #0xfff
ffff8000113a931c:	540000e9 	b.ls	ffff8000113a9338 <netdev_core_pick_tx+0x50>
		skb->sender_cpu = raw_smp_processor_id() + 1;
ffff8000113a9320:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113a9320: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a9324:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a9328:	91000000 	add	x0, x0, #0x0
			ffff8000113a9328: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a932c:	b8606820 	ldr	w0, [x1,x0]
ffff8000113a9330:	11000400 	add	w0, w0, #0x1
ffff8000113a9334:	b9009e80 	str	w0, [x20,#156]
	if (dev->real_num_tx_queues != 1) {
ffff8000113a9338:	b943ce60 	ldr	w0, [x19,#972]
ffff8000113a933c:	7100041f 	cmp	w0, #0x1
ffff8000113a9340:	540002c0 	b.eq	ffff8000113a9398 <netdev_core_pick_tx+0xb0>
		if (ops->ndo_select_queue)
ffff8000113a9344:	f940fa60 	ldr	x0, [x19,#496]
			queue_index = ops->ndo_select_queue(dev, skb, sb_dev);
ffff8000113a9348:	aa1403e1 	mov	x1, x20
		if (ops->ndo_select_queue)
ffff8000113a934c:	f9401803 	ldr	x3, [x0,#48]
			queue_index = ops->ndo_select_queue(dev, skb, sb_dev);
ffff8000113a9350:	aa1303e0 	mov	x0, x19
		if (ops->ndo_select_queue)
ffff8000113a9354:	b4000343 	cbz	x3, ffff8000113a93bc <netdev_core_pick_tx+0xd4>
			queue_index = ops->ndo_select_queue(dev, skb, sb_dev);
ffff8000113a9358:	d63f0060 	blr	x3
ffff8000113a935c:	53003c02 	uxth	w2, w0
	if (unlikely(queue_index >= dev->real_num_tx_queues)) {
ffff8000113a9360:	b943ce60 	ldr	w0, [x19,#972]
	return queue_index;
ffff8000113a9364:	2a0203f5 	mov	w21, w2
	if (unlikely(queue_index >= dev->real_num_tx_queues)) {
ffff8000113a9368:	6b00005f 	cmp	w2, w0
ffff8000113a936c:	540002e2 	b.cs	ffff8000113a93c8 <netdev_core_pick_tx+0xe0>
ffff8000113a9370:	2a1503e1 	mov	w1, w21
	skb->queue_mapping = queue_mapping;
ffff8000113a9374:	7900fa81 	strh	w1, [x20,#124]
	return &dev->_tx[index];
ffff8000113a9378:	f941e261 	ldr	x1, [x19,#960]
ffff8000113a937c:	52802800 	mov	w0, #0x140                 	// #320
}
ffff8000113a9380:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a9384:	9ba07ea0 	umull	x0, w21, w0
ffff8000113a9388:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a938c:	8b000020 	add	x0, x1, x0
ffff8000113a9390:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a9394:	d65f03c0 	ret
ffff8000113a9398:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a939c:	2a0003e1 	mov	w1, w0
ffff8000113a93a0:	7900fa81 	strh	w1, [x20,#124]
ffff8000113a93a4:	f941e261 	ldr	x1, [x19,#960]
ffff8000113a93a8:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113a93ac:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a93b0:	8b000020 	add	x0, x1, x0
ffff8000113a93b4:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a93b8:	d65f03c0 	ret
			queue_index = netdev_pick_tx(dev, skb, sb_dev);
ffff8000113a93bc:	94000000 	bl	ffff8000113a248c <netdev_pick_tx>
			ffff8000113a93bc: R_AARCH64_CALL26	netdev_pick_tx
ffff8000113a93c0:	53003c02 	uxth	w2, w0
ffff8000113a93c4:	17ffffe7 	b	ffff8000113a9360 <netdev_core_pick_tx+0x78>
		net_warn_ratelimited("%s selects TX queue %d, but real number of TX queues is %d\n",
ffff8000113a93c8:	f9001fa2 	str	x2, [x29,#56]
ffff8000113a93cc:	94000000 	bl	0 <net_ratelimit>
			ffff8000113a93cc: R_AARCH64_CALL26	net_ratelimit
		return 0;
ffff8000113a93d0:	52800015 	mov	w21, #0x0                   	// #0
		net_warn_ratelimited("%s selects TX queue %d, but real number of TX queues is %d\n",
ffff8000113a93d4:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113a93d8:	34fffcc0 	cbz	w0, ffff8000113a9370 <netdev_core_pick_tx+0x88>
ffff8000113a93dc:	b943ce63 	ldr	w3, [x19,#972]
ffff8000113a93e0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a93e0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x650
ffff8000113a93e4:	aa1303e1 	mov	x1, x19
ffff8000113a93e8:	91000000 	add	x0, x0, #0x0
			ffff8000113a93e8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x650
ffff8000113a93ec:	94000000 	bl	0 <printk>
			ffff8000113a93ec: R_AARCH64_CALL26	printk
ffff8000113a93f0:	17ffffe0 	b	ffff8000113a9370 <netdev_core_pick_tx+0x88>

ffff8000113a93f4 <__dev_queue_xmit>:
{
ffff8000113a93f4:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff8000113a93f8:	910003fd 	mov	x29, sp
ffff8000113a93fc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a9400:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a9404:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a9408:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a940c:	f9002bfb 	str	x27, [sp,#80]
ffff8000113a9410:	aa0003f3 	mov	x19, x0
ffff8000113a9414:	aa1e03e0 	mov	x0, x30
ffff8000113a9418:	aa0103f4 	mov	x20, x1
ffff8000113a941c:	94000000 	bl	0 <_mcount>
			ffff8000113a941c: R_AARCH64_CALL26	_mcount
	skb->mac_header = skb->data - skb->head;
ffff8000113a9420:	f9406260 	ldr	x0, [x19,#192]
ffff8000113a9424:	f9406663 	ldr	x3, [x19,#200]
	return skb->head + skb->end;
ffff8000113a9428:	b940be62 	ldr	w2, [x19,#188]
	skb->mac_header = skb->data - skb->head;
ffff8000113a942c:	cb000063 	sub	x3, x3, x0
ffff8000113a9430:	90000017 	adrp	x23, 0 <__stack_chk_guard>
			ffff8000113a9430: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	int rc = -ENOMEM;
ffff8000113a9434:	12800164 	mov	w4, #0xfffffff4            	// #-12
{
ffff8000113a9438:	f94002e1 	ldr	x1, [x23]
			ffff8000113a9438: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	int rc = -ENOMEM;
ffff8000113a943c:	b9007fa4 	str	w4, [x29,#124]
ffff8000113a9440:	79016e63 	strh	w3, [x19,#182]
	if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_SCHED_TSTAMP))
ffff8000113a9444:	8b020000 	add	x0, x0, x2
ffff8000113a9448:	39400c00 	ldrb	w0, [x0,#3]
{
ffff8000113a944c:	f9004fa1 	str	x1, [x29,#152]
	bool again = false;
ffff8000113a9450:	3901efbf 	strb	wzr, [x29,#123]
	struct net_device *dev = skb->dev;
ffff8000113a9454:	f9400a76 	ldr	x22, [x19,#16]
	if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_SCHED_TSTAMP))
ffff8000113a9458:	37303e20 	tbnz	w0, #6, ffff8000113a9c1c <__dev_queue_xmit+0x828>
ffff8000113a945c:	d5384100 	mrs	x0, sp_el0
ffff8000113a9460:	b9401801 	ldr	w1, [x0,#24]
ffff8000113a9464:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113a9468:	b9001801 	str	w1, [x0,#24]
	if (skb->priority)
ffff8000113a946c:	b9408e60 	ldr	w0, [x19,#140]
ffff8000113a9470:	35000280 	cbnz	w0, ffff8000113a94c0 <__dev_queue_xmit+0xcc>
	map = rcu_dereference_bh(skb->dev->priomap);
ffff8000113a9474:	f9400a60 	ldr	x0, [x19,#16]
	__READ_ONCE_SIZE;
ffff8000113a9478:	f9445001 	ldr	x1, [x0,#2208]
	if (!map)
ffff8000113a947c:	b4000221 	cbz	x1, ffff8000113a94c0 <__dev_queue_xmit+0xcc>
static void skb_update_prio(struct sk_buff *skb)
ffff8000113a9480:	f9400e60 	ldr	x0, [x19,#24]
 * Some places want to reach the listener in this case.
 */
static inline struct sock *sk_to_full_sk(struct sock *sk)
{
#ifdef CONFIG_INET
	if (sk && sk->sk_state == TCP_NEW_SYN_RECV)
ffff8000113a9484:	b40001e0 	cbz	x0, ffff8000113a94c0 <__dev_queue_xmit+0xcc>
ffff8000113a9488:	39404802 	ldrb	w2, [x0,#18]
ffff8000113a948c:	53001c42 	uxtb	w2, w2
ffff8000113a9490:	7100305f 	cmp	w2, #0xc
ffff8000113a9494:	54002bc0 	b.eq	ffff8000113a9a0c <__dev_queue_xmit+0x618>
 * classid.  Such races are short-lived and the result isn't critical.
 */
static inline u16 sock_cgroup_prioidx(const struct sock_cgroup_data *skcd)
{
	/* fallback to 1 which is always the ID of the root cgroup */
	return (skcd->is_data & 1) ? skcd->prioidx : 1;
ffff8000113a9498:	394a4003 	ldrb	w3, [x0,#656]
ffff8000113a949c:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a94a0:	36000043 	tbz	w3, #0, ffff8000113a94a8 <__dev_queue_xmit+0xb4>
ffff8000113a94a4:	79452402 	ldrh	w2, [x0,#658]
	if (prioidx < map->priomap_len)
ffff8000113a94a8:	b9401020 	ldr	w0, [x1,#16]
ffff8000113a94ac:	6b02001f 	cmp	w0, w2
ffff8000113a94b0:	54000089 	b.ls	ffff8000113a94c0 <__dev_queue_xmit+0xcc>
		skb->priority = map->priomap[prioidx];
ffff8000113a94b4:	8b222821 	add	x1, x1, w2, uxth #2
ffff8000113a94b8:	b9401420 	ldr	w0, [x1,#20]
ffff8000113a94bc:	b9008e60 	str	w0, [x19,#140]
static void qdisc_pkt_len_init(struct sk_buff *skb)
ffff8000113a94c0:	f9406262 	ldr	x2, [x19,#192]
	return skb->head + skb->end;
ffff8000113a94c4:	b940be75 	ldr	w21, [x19,#188]
	qdisc_skb_cb(skb)->pkt_len = skb->len;
ffff8000113a94c8:	b9407260 	ldr	w0, [x19,#112]
ffff8000113a94cc:	8b150055 	add	x21, x2, x21
ffff8000113a94d0:	b9002a60 	str	w0, [x19,#40]
	if (shinfo->gso_size && skb_transport_header_was_set(skb)) {
ffff8000113a94d4:	79400aa1 	ldrh	w1, [x21,#4]
	qdisc_skb_cb(skb)->pkt_len = skb->len;
ffff8000113a94d8:	9100a27a 	add	x26, x19, #0x28
	if (shinfo->gso_size && skb_transport_header_was_set(skb)) {
ffff8000113a94dc:	340005c1 	cbz	w1, ffff8000113a9594 <__dev_queue_xmit+0x1a0>
static void qdisc_pkt_len_init(struct sk_buff *skb)
ffff8000113a94e0:	79416661 	ldrh	w1, [x19,#178]
	if (shinfo->gso_size && skb_transport_header_was_set(skb)) {
ffff8000113a94e4:	529fffe3 	mov	w3, #0xffff                	// #65535
ffff8000113a94e8:	6b03003f 	cmp	w1, w3
ffff8000113a94ec:	54000540 	b.eq	ffff8000113a9594 <__dev_queue_xmit+0x1a0>
	return skb->head + skb->mac_header;
ffff8000113a94f0:	79416e79 	ldrh	w25, [x19,#182]
	return skb->head + skb->transport_header;
ffff8000113a94f4:	8b212041 	add	x1, x2, w1, uxth
		if (likely(shinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6))) {
ffff8000113a94f8:	b9401aa3 	ldr	w3, [x21,#24]
	return skb->head + skb->mac_header;
ffff8000113a94fc:	8b190042 	add	x2, x2, x25
		hdr_len = skb_transport_header(skb) - skb_mac_header(skb);
ffff8000113a9500:	cb020039 	sub	x25, x1, x2
		if (likely(shinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6))) {
ffff8000113a9504:	52800222 	mov	w2, #0x11                  	// #17
ffff8000113a9508:	6a02007f 	tst	w3, w2
	return skb_transport_header(skb) - skb->data;
ffff8000113a950c:	f9406662 	ldr	x2, [x19,#200]
		u16 gso_segs = shinfo->gso_segs;
ffff8000113a9510:	79400ebb 	ldrh	w27, [x21,#6]
		hdr_len = skb_transport_header(skb) - skb_mac_header(skb);
ffff8000113a9514:	2a1903f8 	mov	w24, w25
	return skb->len - skb->data_len;
ffff8000113a9518:	b9407664 	ldr	w4, [x19,#116]
	return skb_transport_header(skb) - skb->data;
ffff8000113a951c:	cb020021 	sub	x1, x1, x2
		if (likely(shinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6))) {
ffff8000113a9520:	54003ea0 	b.eq	ffff8000113a9cf4 <__dev_queue_xmit+0x900>
	return skb->len - skb->data_len;
ffff8000113a9524:	4b040004 	sub	w4, w0, w4
	if (hlen - offset >= len)
ffff8000113a9528:	4b010084 	sub	w4, w4, w1
ffff8000113a952c:	71004c9f 	cmp	w4, #0x13
ffff8000113a9530:	5400268c 	b.gt	ffff8000113a9a00 <__dev_queue_xmit+0x60c>
	if (!skb ||
ffff8000113a9534:	b4000193 	cbz	x19, ffff8000113a9564 <__dev_queue_xmit+0x170>
	    skb_copy_bits(skb, offset, buffer, len) < 0)
ffff8000113a9538:	52800283 	mov	w3, #0x14                  	// #20
ffff8000113a953c:	aa1303e0 	mov	x0, x19
ffff8000113a9540:	910203a2 	add	x2, x29, #0x80
ffff8000113a9544:	94000000 	bl	0 <skb_copy_bits>
			ffff8000113a9544: R_AARCH64_CALL26	skb_copy_bits
ffff8000113a9548:	b9401aa3 	ldr	w3, [x21,#24]
	if (!skb ||
ffff8000113a954c:	37f83140 	tbnz	w0, #31, ffff8000113a9b74 <__dev_queue_xmit+0x780>
ffff8000113a9550:	b9400340 	ldr	w0, [x26]
	return buffer;
ffff8000113a9554:	910203a1 	add	x1, x29, #0x80
	return (struct tcphdr *)skb_transport_header(skb);
}

static inline unsigned int __tcp_hdrlen(const struct tcphdr *th)
{
	return th->doff * 4;
ffff8000113a9558:	39403038 	ldrb	w24, [x1,#12]
ffff8000113a955c:	d3441f18 	ubfx	x24, x24, #4, #4
				hdr_len += __tcp_hdrlen(th);
ffff8000113a9560:	0b180b38 	add	w24, w25, w24, lsl #2
		if (shinfo->gso_type & SKB_GSO_DODGY)
ffff8000113a9564:	36080103 	tbz	w3, #1, ffff8000113a9584 <__dev_queue_xmit+0x190>
			gso_segs = DIV_ROUND_UP(skb->len - hdr_len,
ffff8000113a9568:	b940727b 	ldr	w27, [x19,#112]
ffff8000113a956c:	79400aa1 	ldrh	w1, [x21,#4]
ffff8000113a9570:	5100077b 	sub	w27, w27, #0x1
ffff8000113a9574:	0b01037b 	add	w27, w27, w1
ffff8000113a9578:	4b18037b 	sub	w27, w27, w24
ffff8000113a957c:	1ac10b7b 	udiv	w27, w27, w1
ffff8000113a9580:	53003f7b 	uxth	w27, w27
		qdisc_skb_cb(skb)->pkt_len += (gso_segs - 1) * hdr_len;
ffff8000113a9584:	5100077b 	sub	w27, w27, #0x1
ffff8000113a9588:	1b187f78 	mul	w24, w27, w24
ffff8000113a958c:	0b000300 	add	w0, w24, w0
ffff8000113a9590:	b9002a60 	str	w0, [x19,#40]
	skb->tc_at_ingress = 0;
ffff8000113a9594:	39420e60 	ldrb	w0, [x19,#131]
ffff8000113a9598:	12197800 	and	w0, w0, #0xffffffbf
ffff8000113a959c:	39020e60 	strb	w0, [x19,#131]
ffff8000113a95a0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a95a0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113a95a4:	91000000 	add	x0, x0, #0x0
			ffff8000113a95a4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113a95a8:	b9434000 	ldr	w0, [x0,#832]
	if (static_branch_unlikely(&egress_needed_key)) {
ffff8000113a95ac:	6b1f001f 	cmp	w0, wzr
ffff8000113a95b0:	5400312c 	b.gt	ffff8000113a9bd4 <__dev_queue_xmit+0x7e0>
	if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
ffff8000113a95b4:	b9422ec0 	ldr	w0, [x22,#556]
ffff8000113a95b8:	36280aa0 	tbz	w0, #5, ffff8000113a970c <__dev_queue_xmit+0x318>
	if (skb->_skb_refdst) {
ffff8000113a95bc:	f9402e60 	ldr	x0, [x19,#88]
ffff8000113a95c0:	b4000060 	cbz	x0, ffff8000113a95cc <__dev_queue_xmit+0x1d8>
	if (!(refdst & SKB_DST_NOREF))
ffff8000113a95c4:	36001b80 	tbz	w0, #0, ffff8000113a9934 <__dev_queue_xmit+0x540>
		skb->_skb_refdst = 0UL;
ffff8000113a95c8:	f9002e7f 	str	xzr, [x19,#88]
	txq = netdev_core_pick_tx(dev, skb, sb_dev);
ffff8000113a95cc:	aa1303e1 	mov	x1, x19
ffff8000113a95d0:	aa1403e2 	mov	x2, x20
ffff8000113a95d4:	aa1603e0 	mov	x0, x22
ffff8000113a95d8:	94000000 	bl	ffff8000113a92e8 <netdev_core_pick_tx>
			ffff8000113a95d8: R_AARCH64_CALL26	netdev_core_pick_tx
ffff8000113a95dc:	aa0003f8 	mov	x24, x0
ffff8000113a95e0:	90000000 	adrp	x0, 0 <__tracepoint_net_dev_queue>
			ffff8000113a95e0: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_net_dev_queue
ffff8000113a95e4:	91000000 	add	x0, x0, #0x0
			ffff8000113a95e4: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_net_dev_queue
ffff8000113a95e8:	f9400714 	ldr	x20, [x24,#8]
ffff8000113a95ec:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a95f0:	6b1f003f 	cmp	w1, wzr
ffff8000113a95f4:	54002c6c 	b.gt	ffff8000113a9b80 <__dev_queue_xmit+0x78c>
	if (q->enqueue) {
ffff8000113a95f8:	f9400280 	ldr	x0, [x20]
ffff8000113a95fc:	b4000f40 	cbz	x0, ffff8000113a97e4 <__dev_queue_xmit+0x3f0>
	struct sk_buff *to_free = NULL;
ffff8000113a9600:	f90043bf 	str	xzr, [x29,#128]
ffff8000113a9604:	f9401281 	ldr	x1, [x20,#32]
					   const struct Qdisc *sch)
{
#ifdef CONFIG_NET_SCHED
	struct qdisc_size_table *stab = rcu_dereference_bh(sch->stab);

	if (stab)
ffff8000113a9608:	b4000061 	cbz	x1, ffff8000113a9614 <__dev_queue_xmit+0x220>
		__qdisc_calculate_pkt_len(skb, stab);
ffff8000113a960c:	aa1303e0 	mov	x0, x19
ffff8000113a9610:	94000000 	bl	0 <__qdisc_calculate_pkt_len>
			ffff8000113a9610: R_AARCH64_CALL26	__qdisc_calculate_pkt_len
	if (q->flags & TCQ_F_NOLOCK) {
ffff8000113a9614:	b9401280 	ldr	w0, [x20,#16]
ffff8000113a9618:	37400a20 	tbnz	w0, #8, ffff8000113a975c <__dev_queue_xmit+0x368>
ffff8000113a961c:	b940c280 	ldr	w0, [x20,#192]
	smp_rmb();
ffff8000113a9620:	d50339bf 	dmb	ishld
	return (raw_read_seqcount(&qdisc->running) & 1) ? true : false;
ffff8000113a9624:	12000000 	and	w0, w0, #0x1
	if (unlikely(contended))
ffff8000113a9628:	2a0003f9 	mov	w25, w0
ffff8000113a962c:	53001c15 	uxtb	w21, w0
ffff8000113a9630:	b5003859 	cbnz	x25, ffff8000113a9d38 <__dev_queue_xmit+0x944>
	spinlock_t *root_lock = qdisc_lock(q);
ffff8000113a9634:	9102b284 	add	x4, x20, #0xac
ffff8000113a9638:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a963c:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a9640:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113a9644:	885ffc81 	ldaxr	w1, [x4]
ffff8000113a9648:	4a020020 	eor	w0, w1, w2
ffff8000113a964c:	35000060 	cbnz	w0, ffff8000113a9658 <__dev_queue_xmit+0x264>
ffff8000113a9650:	88007c83 	stxr	w0, w3, [x4]
ffff8000113a9654:	35ffff80 	cbnz	w0, ffff8000113a9644 <__dev_queue_xmit+0x250>
ffff8000113a9658:	35003881 	cbnz	w1, ffff8000113a9d68 <__dev_queue_xmit+0x974>
ffff8000113a965c:	f9406e81 	ldr	x1, [x20,#216]
	if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) {
ffff8000113a9660:	37083181 	tbnz	w1, #1, ffff8000113a9c90 <__dev_queue_xmit+0x89c>
	} else if ((q->flags & TCQ_F_CAN_BYPASS) && !qdisc_qlen(q) &&
ffff8000113a9664:	b9401281 	ldr	w1, [x20,#16]
ffff8000113a9668:	36100061 	tbz	w1, #2, ffff8000113a9674 <__dev_queue_xmit+0x280>
ffff8000113a966c:	b940aa82 	ldr	w2, [x20,#168]
ffff8000113a9670:	340016a2 	cbz	w2, ffff8000113a9944 <__dev_queue_xmit+0x550>
		rc = q->enqueue(skb, q, &to_free) & NET_XMIT_MASK;
ffff8000113a9674:	f9400283 	ldr	x3, [x20]
ffff8000113a9678:	aa1403e1 	mov	x1, x20
ffff8000113a967c:	aa1303e0 	mov	x0, x19
ffff8000113a9680:	910203a2 	add	x2, x29, #0x80
ffff8000113a9684:	d63f0060 	blr	x3
	if (qdisc->flags & TCQ_F_NOLOCK) {
ffff8000113a9688:	b9401281 	ldr	w1, [x20,#16]
ffff8000113a968c:	12000c16 	and	w22, w0, #0xf
ffff8000113a9690:	37401381 	tbnz	w1, #8, ffff8000113a9900 <__dev_queue_xmit+0x50c>
ffff8000113a9694:	b940c280 	ldr	w0, [x20,#192]
ffff8000113a9698:	d50339bf 	dmb	ishld
	} else if (qdisc_is_running(qdisc)) {
ffff8000113a969c:	370001c0 	tbnz	w0, #0, ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
	s->sequence++;
ffff8000113a96a0:	b940c280 	ldr	w0, [x20,#192]
ffff8000113a96a4:	11000400 	add	w0, w0, #0x1
ffff8000113a96a8:	b900c280 	str	w0, [x20,#192]
	smp_wmb();
ffff8000113a96ac:	d5033abf 	dmb	ishst
			if (unlikely(contended)) {
ffff8000113a96b0:	b5003199 	cbnz	x25, ffff8000113a9ce0 <__dev_queue_xmit+0x8ec>
			__qdisc_run(q);
ffff8000113a96b4:	aa1403e0 	mov	x0, x20
ffff8000113a96b8:	94000000 	bl	0 <__qdisc_run>
			ffff8000113a96b8: R_AARCH64_CALL26	__qdisc_run
	smp_wmb();
ffff8000113a96bc:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113a96c0:	b940c281 	ldr	w1, [x20,#192]
	if (qdisc->flags & TCQ_F_NOLOCK)
ffff8000113a96c4:	b9401280 	ldr	w0, [x20,#16]
ffff8000113a96c8:	11000421 	add	w1, w1, #0x1
ffff8000113a96cc:	b900c281 	str	w1, [x20,#192]
ffff8000113a96d0:	37401ac0 	tbnz	w0, #8, ffff8000113a9a28 <__dev_queue_xmit+0x634>
	smp_store_release(&lock->locked, 0);
ffff8000113a96d4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a96d8:	9102b283 	add	x3, x20, #0xac
ffff8000113a96dc:	089ffc60 	stlrb	w0, [x3]
	if (unlikely(to_free))
ffff8000113a96e0:	f94043a0 	ldr	x0, [x29,#128]
ffff8000113a96e4:	b5002fa0 	cbnz	x0, ffff8000113a9cd8 <__dev_queue_xmit+0x8e4>
	return rc;
ffff8000113a96e8:	2a1603f3 	mov	w19, w22
	if (unlikely(contended))
ffff8000113a96ec:	35002ef5 	cbnz	w21, ffff8000113a9cc8 <__dev_queue_xmit+0x8d4>
		rc = __dev_xmit_skb(skb, q, dev, txq);
ffff8000113a96f0:	b9007fb3 	str	w19, [x29,#124]
ffff8000113a96f4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a96f4: R_AARCH64_ADR_PREL_PG_HI21	.text+0xb378
ffff8000113a96f8:	91000000 	add	x0, x0, #0x0
			ffff8000113a96f8: R_AARCH64_ADD_ABS_LO12_NC	.text+0xb378
ffff8000113a96fc:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a9700:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a9700: R_AARCH64_CALL26	__local_bh_enable_ip
	return rc;
ffff8000113a9704:	b9407fa0 	ldr	w0, [x29,#124]
ffff8000113a9708:	14000066 	b	ffff8000113a98a0 <__dev_queue_xmit+0x4ac>
static inline bool skb_dst_force(struct sk_buff *skb)
ffff8000113a970c:	f9402e67 	ldr	x7, [x19,#88]
	return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb);
ffff8000113a9710:	3607f5e7 	tbz	w7, #0, ffff8000113a95cc <__dev_queue_xmit+0x1d8>
	return (struct dst_entry *)(skb->_skb_refdst & SKB_DST_PTRMASK);
ffff8000113a9714:	927ff8e7 	and	x7, x7, #0xfffffffffffffffe
	return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb);
ffff8000113a9718:	b4fff5a7 	cbz	x7, ffff8000113a95cc <__dev_queue_xmit+0x1d8>
ffff8000113a971c:	b94040e0 	ldr	w0, [x7,#64]
		if (unlikely(c == u))
ffff8000113a9720:	340005c0 	cbz	w0, ffff8000113a97d8 <__dev_queue_xmit+0x3e4>
ffff8000113a9724:	910100e3 	add	x3, x7, #0x40
ffff8000113a9728:	2a0003e1 	mov	w1, w0
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a972c:	11000402 	add	w2, w0, #0x1
ffff8000113a9730:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a9734:	885f7c66 	ldxr	w6, [x3]
ffff8000113a9738:	4a0100c4 	eor	w4, w6, w1
ffff8000113a973c:	35000084 	cbnz	w4, ffff8000113a974c <__dev_queue_xmit+0x358>
ffff8000113a9740:	8804fc62 	stlxr	w4, w2, [x3]
ffff8000113a9744:	35ffff84 	cbnz	w4, ffff8000113a9734 <__dev_queue_xmit+0x340>
ffff8000113a9748:	d5033bbf 	dmb	ish
	if (unlikely(r != o))
ffff8000113a974c:	6b06001f 	cmp	w0, w6
ffff8000113a9750:	54001921 	b.ne	ffff8000113a9a74 <__dev_queue_xmit+0x680>
		skb->_skb_refdst = (unsigned long)dst;
ffff8000113a9754:	f9002e67 	str	x7, [x19,#88]
ffff8000113a9758:	17ffff9d 	b	ffff8000113a95cc <__dev_queue_xmit+0x1d8>
		rc = q->enqueue(skb, q, &to_free) & NET_XMIT_MASK;
ffff8000113a975c:	f9400283 	ldr	x3, [x20]
ffff8000113a9760:	aa1303e0 	mov	x0, x19
ffff8000113a9764:	aa1403e1 	mov	x1, x20
ffff8000113a9768:	910203a2 	add	x2, x29, #0x80
ffff8000113a976c:	d63f0060 	blr	x3
	if (qdisc->flags & TCQ_F_NOLOCK) {
ffff8000113a9770:	b9401281 	ldr	w1, [x20,#16]
ffff8000113a9774:	12000c13 	and	w19, w0, #0xf
ffff8000113a9778:	37400aa1 	tbnz	w1, #8, ffff8000113a98cc <__dev_queue_xmit+0x4d8>
ffff8000113a977c:	b940c280 	ldr	w0, [x20,#192]
	smp_rmb();
ffff8000113a9780:	d50339bf 	dmb	ishld
	} else if (qdisc_is_running(qdisc)) {
ffff8000113a9784:	37000220 	tbnz	w0, #0, ffff8000113a97c8 <__dev_queue_xmit+0x3d4>
	s->sequence++;
ffff8000113a9788:	b940c280 	ldr	w0, [x20,#192]
ffff8000113a978c:	11000400 	add	w0, w0, #0x1
ffff8000113a9790:	b900c280 	str	w0, [x20,#192]
	smp_wmb();
ffff8000113a9794:	d5033abf 	dmb	ishst
		if (!(q->flags & TCQ_F_NOLOCK) ||
ffff8000113a9798:	b9401280 	ldr	w0, [x20,#16]
ffff8000113a979c:	36400060 	tbz	w0, #8, ffff8000113a97a8 <__dev_queue_xmit+0x3b4>
ffff8000113a97a0:	f9406e80 	ldr	x0, [x20,#216]
ffff8000113a97a4:	37080060 	tbnz	w0, #1, ffff8000113a97b0 <__dev_queue_xmit+0x3bc>
			__qdisc_run(q);
ffff8000113a97a8:	aa1403e0 	mov	x0, x20
ffff8000113a97ac:	94000000 	bl	0 <__qdisc_run>
			ffff8000113a97ac: R_AARCH64_CALL26	__qdisc_run
	smp_wmb();
ffff8000113a97b0:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113a97b4:	b940c281 	ldr	w1, [x20,#192]
	if (qdisc->flags & TCQ_F_NOLOCK)
ffff8000113a97b8:	b9401280 	ldr	w0, [x20,#16]
ffff8000113a97bc:	11000421 	add	w1, w1, #0x1
ffff8000113a97c0:	b900c281 	str	w1, [x20,#192]
ffff8000113a97c4:	374012a0 	tbnz	w0, #8, ffff8000113a9a18 <__dev_queue_xmit+0x624>
		if (unlikely(to_free))
ffff8000113a97c8:	f94043a0 	ldr	x0, [x29,#128]
ffff8000113a97cc:	b4fff920 	cbz	x0, ffff8000113a96f0 <__dev_queue_xmit+0x2fc>
			kfree_skb_list(to_free);
ffff8000113a97d0:	94000000 	bl	0 <kfree_skb_list>
			ffff8000113a97d0: R_AARCH64_CALL26	kfree_skb_list
ffff8000113a97d4:	17ffffc7 	b	ffff8000113a96f0 <__dev_queue_xmit+0x2fc>
ffff8000113a97d8:	d2800007 	mov	x7, #0x0                   	// #0
ffff8000113a97dc:	f9002e67 	str	x7, [x19,#88]
ffff8000113a97e0:	17ffff7b 	b	ffff8000113a95cc <__dev_queue_xmit+0x1d8>
	if (dev->flags & IFF_UP) {
ffff8000113a97e4:	b9422ac0 	ldr	w0, [x22,#552]
ffff8000113a97e8:	360003e0 	tbz	w0, #0, ffff8000113a9864 <__dev_queue_xmit+0x470>
		int cpu = smp_processor_id(); /* ok because BHs are off */
ffff8000113a97ec:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113a97ec: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a97f0:	91000000 	add	x0, x0, #0x0
			ffff8000113a97f0: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a97f4:	d538d081 	mrs	x1, tpidr_el1
		if (txq->xmit_lock_owner != cpu) {
ffff8000113a97f8:	b9408702 	ldr	w2, [x24,#132]
		int cpu = smp_processor_id(); /* ok because BHs are off */
ffff8000113a97fc:	b8606834 	ldr	w20, [x1,x0]
		if (txq->xmit_lock_owner != cpu) {
ffff8000113a9800:	6b14005f 	cmp	w2, w20
ffff8000113a9804:	54001aa0 	b.eq	ffff8000113a9b58 <__dev_queue_xmit+0x764>
	return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >
ffff8000113a9808:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9808: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113a980c:	910002a0 	add	x0, x21, #0x0
			ffff8000113a980c: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a9810:	9101e000 	add	x0, x0, #0x78
			if (dev_xmit_recursion())
ffff8000113a9814:	78616800 	ldrh	w0, [x0,x1]
ffff8000113a9818:	7100281f 	cmp	w0, #0xa
ffff8000113a981c:	540019e8 	b.hi	ffff8000113a9b58 <__dev_queue_xmit+0x764>
			skb = validate_xmit_skb(skb, dev, &again);
ffff8000113a9820:	aa1303e0 	mov	x0, x19
ffff8000113a9824:	aa1603e1 	mov	x1, x22
ffff8000113a9828:	9101efa2 	add	x2, x29, #0x7b
ffff8000113a982c:	97fffcba 	bl	ffff8000113a8b14 <validate_xmit_skb>
ffff8000113a9830:	aa0003f3 	mov	x19, x0
			if (!skb)
ffff8000113a9834:	b4fff600 	cbz	x0, ffff8000113a96f4 <__dev_queue_xmit+0x300>
			HARD_TX_LOCK(dev, txq, cpu);
ffff8000113a9838:	f94066c2 	ldr	x2, [x22,#200]
ffff8000113a983c:	92740042 	and	x2, x2, #0x1000
ffff8000113a9840:	b40016c2 	cbz	x2, ffff8000113a9b18 <__dev_queue_xmit+0x724>
	return dev_queue->state & QUEUE_STATE_ANY_XOFF;
ffff8000113a9844:	f9404b00 	ldr	x0, [x24,#144]
ffff8000113a9848:	92400400 	and	x0, x0, #0x3
			if (!netif_xmit_stopped(txq)) {
ffff8000113a984c:	b4001300 	cbz	x0, ffff8000113a9aac <__dev_queue_xmit+0x6b8>
			HARD_TX_UNLOCK(dev, txq);
ffff8000113a9850:	f94066c0 	ldr	x0, [x22,#200]
ffff8000113a9854:	92740000 	and	x0, x0, #0x1000
ffff8000113a9858:	b4001760 	cbz	x0, ffff8000113a9b44 <__dev_queue_xmit+0x750>
			net_crit_ratelimited("Virtual device %s asks to queue packet!\n",
ffff8000113a985c:	94000000 	bl	0 <net_ratelimit>
			ffff8000113a985c: R_AARCH64_CALL26	net_ratelimit
ffff8000113a9860:	350022a0 	cbnz	w0, ffff8000113a9cb4 <__dev_queue_xmit+0x8c0>
ffff8000113a9864:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9864: R_AARCH64_ADR_PREL_PG_HI21	.text+0xb4e8
	rc = -ENETDOWN;
ffff8000113a9868:	12800c62 	mov	w2, #0xffffff9c            	// #-100
ffff8000113a986c:	91000000 	add	x0, x0, #0x0
			ffff8000113a986c: R_AARCH64_ADD_ABS_LO12_NC	.text+0xb4e8
ffff8000113a9870:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113a9874:	b9007fa2 	str	w2, [x29,#124]
ffff8000113a9878:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113a9878: R_AARCH64_CALL26	__local_bh_enable_ip
ATOMIC64_OPS(add, add, I)
ffff8000113a987c:	910722c7 	add	x7, x22, #0x1c8
ffff8000113a9880:	f98000f1 	prfm	pstl1strm, [x7]
ffff8000113a9884:	c85f7ce0 	ldxr	x0, [x7]
ffff8000113a9888:	91000400 	add	x0, x0, #0x1
ffff8000113a988c:	c8017ce0 	stxr	w1, x0, [x7]
ffff8000113a9890:	35ffffa1 	cbnz	w1, ffff8000113a9884 <__dev_queue_xmit+0x490>
	kfree_skb_list(skb);
ffff8000113a9894:	aa1303e0 	mov	x0, x19
ffff8000113a9898:	94000000 	bl	0 <kfree_skb_list>
			ffff8000113a9898: R_AARCH64_CALL26	kfree_skb_list
	return rc;
ffff8000113a989c:	b9407fa0 	ldr	w0, [x29,#124]
}
ffff8000113a98a0:	f9404fa2 	ldr	x2, [x29,#152]
ffff8000113a98a4:	f94002e1 	ldr	x1, [x23]
			ffff8000113a98a4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a98a8:	eb01005f 	cmp	x2, x1
ffff8000113a98ac:	54001681 	b.ne	ffff8000113a9b7c <__dev_queue_xmit+0x788>
ffff8000113a98b0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a98b4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a98b8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a98bc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113a98c0:	f9402bfb 	ldr	x27, [sp,#80]
ffff8000113a98c4:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff8000113a98c8:	d65f03c0 	ret
ffff8000113a98cc:	b9410682 	ldr	w2, [x20,#260]
	if (unlikely(val))
ffff8000113a98d0:	35000162 	cbnz	w2, ffff8000113a98fc <__dev_queue_xmit+0x508>
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a98d4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a98d8:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a98dc:	91041288 	add	x8, x20, #0x104
ffff8000113a98e0:	f9800111 	prfm	pstl1strm, [x8]
ffff8000113a98e4:	885ffd03 	ldaxr	w3, [x8]
ffff8000113a98e8:	4a000064 	eor	w4, w3, w0
ffff8000113a98ec:	35000064 	cbnz	w4, ffff8000113a98f8 <__dev_queue_xmit+0x504>
ffff8000113a98f0:	88047d01 	stxr	w4, w1, [x8]
ffff8000113a98f4:	35ffff84 	cbnz	w4, ffff8000113a98e4 <__dev_queue_xmit+0x4f0>
	if (do_raw_spin_trylock(lock)) {
ffff8000113a98f8:	340007c3 	cbz	w3, ffff8000113a99f0 <__dev_queue_xmit+0x5fc>
	preempt_enable();
ffff8000113a98fc:	17ffffb3 	b	ffff8000113a97c8 <__dev_queue_xmit+0x3d4>
ffff8000113a9900:	b9410682 	ldr	w2, [x20,#260]
ffff8000113a9904:	35000162 	cbnz	w2, ffff8000113a9930 <__dev_queue_xmit+0x53c>
ffff8000113a9908:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a990c:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a9910:	91041285 	add	x5, x20, #0x104
ffff8000113a9914:	f98000b1 	prfm	pstl1strm, [x5]
ffff8000113a9918:	885ffca3 	ldaxr	w3, [x5]
ffff8000113a991c:	4a000064 	eor	w4, w3, w0
ffff8000113a9920:	35000064 	cbnz	w4, ffff8000113a992c <__dev_queue_xmit+0x538>
ffff8000113a9924:	88047ca1 	stxr	w4, w1, [x5]
ffff8000113a9928:	35ffff84 	cbnz	w4, ffff8000113a9918 <__dev_queue_xmit+0x524>
	if (do_raw_spin_trylock(lock)) {
ffff8000113a992c:	34000663 	cbz	w3, ffff8000113a99f8 <__dev_queue_xmit+0x604>
	preempt_enable();
ffff8000113a9930:	17ffff69 	b	ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
		dst_release((struct dst_entry *)(refdst & SKB_DST_PTRMASK));
ffff8000113a9934:	927ff800 	and	x0, x0, #0xfffffffffffffffe
ffff8000113a9938:	94000000 	bl	0 <dst_release>
			ffff8000113a9938: R_AARCH64_CALL26	dst_release
		skb->_skb_refdst = 0UL;
ffff8000113a993c:	f9002e7f 	str	xzr, [x19,#88]
ffff8000113a9940:	17ffff23 	b	ffff8000113a95cc <__dev_queue_xmit+0x1d8>
	if (qdisc->flags & TCQ_F_NOLOCK) {
ffff8000113a9944:	374007a1 	tbnz	w1, #8, ffff8000113a9a38 <__dev_queue_xmit+0x644>
ffff8000113a9948:	b940c280 	ldr	w0, [x20,#192]
	smp_rmb();
ffff8000113a994c:	d50339bf 	dmb	ishld
	} else if (qdisc_is_running(qdisc)) {
ffff8000113a9950:	3707e920 	tbnz	w0, #0, ffff8000113a9674 <__dev_queue_xmit+0x280>
	s->sequence++;
ffff8000113a9954:	b940c280 	ldr	w0, [x20,#192]
ffff8000113a9958:	11000400 	add	w0, w0, #0x1
ffff8000113a995c:	b900c280 	str	w0, [x20,#192]
	smp_wmb();
ffff8000113a9960:	d5033abf 	dmb	ishst
	return skb->head + skb->end;
ffff8000113a9964:	f9406261 	ldr	x1, [x19,#192]
ffff8000113a9968:	b940be60 	ldr	w0, [x19,#188]
}

static inline void bstats_update(struct gnet_stats_basic_packed *bstats,
				 const struct sk_buff *skb)
{
	_bstats_update(bstats,
ffff8000113a996c:	b9402a63 	ldr	w3, [x19,#40]
ffff8000113a9970:	8b000020 	add	x0, x1, x0
ffff8000113a9974:	79400802 	ldrh	w2, [x0,#4]
ffff8000113a9978:	d2800021 	mov	x1, #0x1                   	// #1
ffff8000113a997c:	34000042 	cbz	w2, ffff8000113a9984 <__dev_queue_xmit+0x590>
ffff8000113a9980:	79400c01 	ldrh	w1, [x0,#6]
	bstats->bytes += bytes;
ffff8000113a9984:	f9405a82 	ldr	x2, [x20,#176]
	bstats->packets += packets;
ffff8000113a9988:	f9405e80 	ldr	x0, [x20,#184]
	bstats->bytes += bytes;
ffff8000113a998c:	8b030043 	add	x3, x2, x3
	bstats->packets += packets;
ffff8000113a9990:	8b010001 	add	x1, x0, x1
	bstats->bytes += bytes;
ffff8000113a9994:	f9005a83 	str	x3, [x20,#176]
	bstats->packets += packets;
ffff8000113a9998:	f9005e81 	str	x1, [x20,#184]
		if (sch_direct_xmit(skb, q, dev, txq, root_lock, true)) {
ffff8000113a999c:	aa1303e0 	mov	x0, x19
ffff8000113a99a0:	aa1403e1 	mov	x1, x20
ffff8000113a99a4:	aa1603e2 	mov	x2, x22
ffff8000113a99a8:	aa1803e3 	mov	x3, x24
ffff8000113a99ac:	52800025 	mov	w5, #0x1                   	// #1
ffff8000113a99b0:	94000000 	bl	0 <sch_direct_xmit>
			ffff8000113a99b0: R_AARCH64_CALL26	sch_direct_xmit
ffff8000113a99b4:	53001c00 	uxtb	w0, w0
ffff8000113a99b8:	34000080 	cbz	w0, ffff8000113a99c8 <__dev_queue_xmit+0x5d4>
			if (unlikely(contended)) {
ffff8000113a99bc:	b5001619 	cbnz	x25, ffff8000113a9c7c <__dev_queue_xmit+0x888>
			__qdisc_run(q);
ffff8000113a99c0:	aa1403e0 	mov	x0, x20
ffff8000113a99c4:	94000000 	bl	0 <__qdisc_run>
			ffff8000113a99c4: R_AARCH64_CALL26	__qdisc_run
	smp_wmb();
ffff8000113a99c8:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113a99cc:	b940c281 	ldr	w1, [x20,#192]
	if (qdisc->flags & TCQ_F_NOLOCK)
ffff8000113a99d0:	b9401280 	ldr	w0, [x20,#16]
ffff8000113a99d4:	11000421 	add	w1, w1, #0x1
ffff8000113a99d8:	b900c281 	str	w1, [x20,#192]
		rc = NET_XMIT_SUCCESS;
ffff8000113a99dc:	52800016 	mov	w22, #0x0                   	// #0
ffff8000113a99e0:	3647e7a0 	tbz	w0, #8, ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
	smp_store_release(&lock->locked, 0);
ffff8000113a99e4:	91041283 	add	x3, x20, #0x104
ffff8000113a99e8:	089ffc76 	stlrb	w22, [x3]
ffff8000113a99ec:	17ffff3a 	b	ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
	case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
ffff8000113a99f0:	39042282 	strb	w2, [x20,#264]
ffff8000113a99f4:	17ffff65 	b	ffff8000113a9788 <__dev_queue_xmit+0x394>
ffff8000113a99f8:	39042282 	strb	w2, [x20,#264]
ffff8000113a99fc:	17ffff29 	b	ffff8000113a96a0 <__dev_queue_xmit+0x2ac>
		return data + offset;
ffff8000113a9a00:	8b21c041 	add	x1, x2, w1, sxtw
			if (likely(th))
ffff8000113a9a04:	b5ffdaa1 	cbnz	x1, ffff8000113a9558 <__dev_queue_xmit+0x164>
ffff8000113a9a08:	17fffed7 	b	ffff8000113a9564 <__dev_queue_xmit+0x170>
		sk = inet_reqsk(sk)->rsk_listener;
ffff8000113a9a0c:	f9403000 	ldr	x0, [x0,#96]
	if (!sk)
ffff8000113a9a10:	b5ffd440 	cbnz	x0, ffff8000113a9498 <__dev_queue_xmit+0xa4>
ffff8000113a9a14:	17fffeab 	b	ffff8000113a94c0 <__dev_queue_xmit+0xcc>
ffff8000113a9a18:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a9a1c:	91041294 	add	x20, x20, #0x104
ffff8000113a9a20:	089ffe80 	stlrb	w0, [x20]
ffff8000113a9a24:	17ffff69 	b	ffff8000113a97c8 <__dev_queue_xmit+0x3d4>
ffff8000113a9a28:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a9a2c:	91041282 	add	x2, x20, #0x104
ffff8000113a9a30:	089ffc40 	stlrb	w0, [x2]
ffff8000113a9a34:	17ffff28 	b	ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
	__READ_ONCE_SIZE;
ffff8000113a9a38:	b9410682 	ldr	w2, [x20,#260]
	if (unlikely(val))
ffff8000113a9a3c:	35000162 	cbnz	w2, ffff8000113a9a68 <__dev_queue_xmit+0x674>
ffff8000113a9a40:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113a9a44:	d2800000 	mov	x0, #0x0                   	// #0
ffff8000113a9a48:	91041286 	add	x6, x20, #0x104
ffff8000113a9a4c:	f98000d1 	prfm	pstl1strm, [x6]
ffff8000113a9a50:	885ffcc3 	ldaxr	w3, [x6]
ffff8000113a9a54:	4a000065 	eor	w5, w3, w0
ffff8000113a9a58:	35000065 	cbnz	w5, ffff8000113a9a64 <__dev_queue_xmit+0x670>
ffff8000113a9a5c:	88057cc1 	stxr	w5, w1, [x6]
ffff8000113a9a60:	35ffff85 	cbnz	w5, ffff8000113a9a50 <__dev_queue_xmit+0x65c>
	if (do_raw_spin_trylock(lock)) {
ffff8000113a9a64:	34000043 	cbz	w3, ffff8000113a9a6c <__dev_queue_xmit+0x678>
	preempt_enable();
ffff8000113a9a68:	17ffff03 	b	ffff8000113a9674 <__dev_queue_xmit+0x280>
	case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
ffff8000113a9a6c:	39042282 	strb	w2, [x20,#264]
ffff8000113a9a70:	17ffffb9 	b	ffff8000113a9954 <__dev_queue_xmit+0x560>
		if (unlikely(c == u))
ffff8000113a9a74:	34ffeb26 	cbz	w6, ffff8000113a97d8 <__dev_queue_xmit+0x3e4>
ffff8000113a9a78:	2a0603e4 	mov	w4, w6
	} while (!atomic_try_cmpxchg(v, &c, c + a));
ffff8000113a9a7c:	110004c5 	add	w5, w6, #0x1
__CMPXCHG_CASE(w,  ,  mb_, 32, dmb ish,  , l, "memory", K)
ffff8000113a9a80:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113a9a84:	885f7c60 	ldxr	w0, [x3]
ffff8000113a9a88:	4a040001 	eor	w1, w0, w4
ffff8000113a9a8c:	35000081 	cbnz	w1, ffff8000113a9a9c <__dev_queue_xmit+0x6a8>
ffff8000113a9a90:	8801fc65 	stlxr	w1, w5, [x3]
ffff8000113a9a94:	35ffff81 	cbnz	w1, ffff8000113a9a84 <__dev_queue_xmit+0x690>
ffff8000113a9a98:	d5033bbf 	dmb	ish
	if (unlikely(r != o))
ffff8000113a9a9c:	6b06001f 	cmp	w0, w6
ffff8000113a9aa0:	54ffe5a0 	b.eq	ffff8000113a9754 <__dev_queue_xmit+0x360>
ffff8000113a9aa4:	2a0003e6 	mov	w6, w0
ffff8000113a9aa8:	17fffff3 	b	ffff8000113a9a74 <__dev_queue_xmit+0x680>
	__this_cpu_inc(softnet_data.xmit.recursion);
ffff8000113a9aac:	910002b5 	add	x21, x21, #0x0
			ffff8000113a9aac: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a9ab0:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a9ab4:	9101e2b5 	add	x21, x21, #0x78
ffff8000113a9ab8:	78756822 	ldrh	w2, [x1,x21]
				skb = dev_hard_start_xmit(skb, dev, txq, &rc);
ffff8000113a9abc:	aa1303e0 	mov	x0, x19
ffff8000113a9ac0:	11000442 	add	w2, w2, #0x1
ffff8000113a9ac4:	78356822 	strh	w2, [x1,x21]
ffff8000113a9ac8:	9101f3a3 	add	x3, x29, #0x7c
ffff8000113a9acc:	aa1603e1 	mov	x1, x22
ffff8000113a9ad0:	aa1803e2 	mov	x2, x24
ffff8000113a9ad4:	94000000 	bl	ffff8000113a908c <dev_hard_start_xmit>
			ffff8000113a9ad4: R_AARCH64_CALL26	dev_hard_start_xmit
ffff8000113a9ad8:	aa0003f3 	mov	x19, x0
ffff8000113a9adc:	d538d080 	mrs	x0, tpidr_el1
	__this_cpu_dec(softnet_data.xmit.recursion);
ffff8000113a9ae0:	78756801 	ldrh	w1, [x0,x21]
ffff8000113a9ae4:	51000421 	sub	w1, w1, #0x1
ffff8000113a9ae8:	78356801 	strh	w1, [x0,x21]
	if (likely(rc < NET_XMIT_MASK))
ffff8000113a9aec:	b9407fa0 	ldr	w0, [x29,#124]
ffff8000113a9af0:	7100381f 	cmp	w0, #0xe
ffff8000113a9af4:	54ffeaec 	b.gt	ffff8000113a9850 <__dev_queue_xmit+0x45c>
					HARD_TX_UNLOCK(dev, txq);
ffff8000113a9af8:	f94066c0 	ldr	x0, [x22,#200]
ffff8000113a9afc:	92740000 	and	x0, x0, #0x1000
ffff8000113a9b00:	b5ffdfa0 	cbnz	x0, ffff8000113a96f4 <__dev_queue_xmit+0x300>
	txq->xmit_lock_owner = -1;
ffff8000113a9b04:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113a9b08:	b9008701 	str	w1, [x24,#132]
	smp_store_release(&lock->locked, 0);
ffff8000113a9b0c:	91020318 	add	x24, x24, #0x80
ffff8000113a9b10:	089fff00 	stlrb	w0, [x24]
	preempt_enable();
ffff8000113a9b14:	17fffef8 	b	ffff8000113a96f4 <__dev_queue_xmit+0x300>
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113a9b18:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a9b1c:	91020300 	add	x0, x24, #0x80
ffff8000113a9b20:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a9b24:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a9b28:	4a020024 	eor	w4, w1, w2
ffff8000113a9b2c:	35000064 	cbnz	w4, ffff8000113a9b38 <__dev_queue_xmit+0x744>
ffff8000113a9b30:	88047c03 	stxr	w4, w3, [x0]
ffff8000113a9b34:	35ffff84 	cbnz	w4, ffff8000113a9b24 <__dev_queue_xmit+0x730>
	if (unlikely(r != o))
ffff8000113a9b38:	350009c1 	cbnz	w1, ffff8000113a9c70 <__dev_queue_xmit+0x87c>
	txq->xmit_lock_owner = cpu;
ffff8000113a9b3c:	b9008714 	str	w20, [x24,#132]
ffff8000113a9b40:	17ffff41 	b	ffff8000113a9844 <__dev_queue_xmit+0x450>
	txq->xmit_lock_owner = -1;
ffff8000113a9b44:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113a9b48:	b9008701 	str	w1, [x24,#132]
ffff8000113a9b4c:	91020318 	add	x24, x24, #0x80
ffff8000113a9b50:	089fff00 	stlrb	w0, [x24]
ffff8000113a9b54:	17ffff42 	b	ffff8000113a985c <__dev_queue_xmit+0x468>
			net_crit_ratelimited("Dead loop on virtual device %s, fix it urgently!\n",
ffff8000113a9b58:	94000000 	bl	0 <net_ratelimit>
			ffff8000113a9b58: R_AARCH64_CALL26	net_ratelimit
ffff8000113a9b5c:	34ffe840 	cbz	w0, ffff8000113a9864 <__dev_queue_xmit+0x470>
ffff8000113a9b60:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9b60: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x6c0
ffff8000113a9b64:	aa1603e1 	mov	x1, x22
ffff8000113a9b68:	91000000 	add	x0, x0, #0x0
			ffff8000113a9b68: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x6c0
ffff8000113a9b6c:	94000000 	bl	0 <printk>
			ffff8000113a9b6c: R_AARCH64_CALL26	printk
ffff8000113a9b70:	17ffff3d 	b	ffff8000113a9864 <__dev_queue_xmit+0x470>
ffff8000113a9b74:	b9400340 	ldr	w0, [x26]
ffff8000113a9b78:	17fffe7b 	b	ffff8000113a9564 <__dev_queue_xmit+0x170>
}
ffff8000113a9b7c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113a9b7c: R_AARCH64_CALL26	__stack_chk_fail
DEFINE_EVENT(net_dev_template, net_dev_queue,
ffff8000113a9b80:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113a9b80: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113a9b84:	d538d082 	mrs	x2, tpidr_el1
ffff8000113a9b88:	91000021 	add	x1, x1, #0x0
			ffff8000113a9b88: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a9b8c:	b8616841 	ldr	w1, [x2,x1]
ffff8000113a9b90:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a9b94:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a9b98:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a9b98: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a9b9c:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a9ba0:	91000042 	add	x2, x2, #0x0
			ffff8000113a9ba0: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a9ba4:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a9ba8:	9ac12441 	lsr	x1, x2, x1
ffff8000113a9bac:	3607d261 	tbz	w1, #0, ffff8000113a95f8 <__dev_queue_xmit+0x204>
	__READ_ONCE_SIZE;
ffff8000113a9bb0:	f9401015 	ldr	x21, [x0,#32]
ffff8000113a9bb4:	b40000f5 	cbz	x21, ffff8000113a9bd0 <__dev_queue_xmit+0x7dc>
ffff8000113a9bb8:	f94002a4 	ldr	x4, [x21]
ffff8000113a9bbc:	f94006a0 	ldr	x0, [x21,#8]
ffff8000113a9bc0:	aa1303e1 	mov	x1, x19
ffff8000113a9bc4:	d63f0080 	blr	x4
ffff8000113a9bc8:	f8418ea4 	ldr	x4, [x21,#24]!
ffff8000113a9bcc:	b5ffff84 	cbnz	x4, ffff8000113a9bbc <__dev_queue_xmit+0x7c8>
ffff8000113a9bd0:	17fffe8a 	b	ffff8000113a95f8 <__dev_queue_xmit+0x204>
ffff8000113a9bd4:	f941fed5 	ldr	x21, [x22,#1016]
	if (!miniq)
ffff8000113a9bd8:	b4000335 	cbz	x21, ffff8000113a9c3c <__dev_queue_xmit+0x848>
	mini_qdisc_bstats_cpu_update(miniq, skb);
ffff8000113a9bdc:	f9400aa0 	ldr	x0, [x21,#16]
ffff8000113a9be0:	aa1303e1 	mov	x1, x19
ffff8000113a9be4:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9be4: R_AARCH64_CALL26	.text.unlikely
	switch (tcf_classify(skb, miniq->filter_list, &cl_res, false)) {
ffff8000113a9be8:	f94002a1 	ldr	x1, [x21]
ffff8000113a9bec:	aa1303e0 	mov	x0, x19
ffff8000113a9bf0:	910203a2 	add	x2, x29, #0x80
ffff8000113a9bf4:	52800003 	mov	w3, #0x0                   	// #0
ffff8000113a9bf8:	94000000 	bl	0 <tcf_classify>
			ffff8000113a9bf8: R_AARCH64_CALL26	tcf_classify
ffff8000113a9bfc:	7100201f 	cmp	w0, #0x8
ffff8000113a9c00:	540001e8 	b.hi	ffff8000113a9c3c <__dev_queue_xmit+0x848>
ffff8000113a9c04:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9c04: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x8
ffff8000113a9c08:	91000021 	add	x1, x1, #0x0
			ffff8000113a9c08: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x8
ffff8000113a9c0c:	38604822 	ldrb	w2, [x1,w0,uxtw]
ffff8000113a9c10:	10000063 	adr	x3, ffff8000113a9c1c <__dev_queue_xmit+0x828>
ffff8000113a9c14:	8b228862 	add	x2, x3, w2, sxtb #2
ffff8000113a9c18:	d61f0040 	br	x2
		__skb_tstamp_tx(skb, NULL, skb->sk, SCM_TSTAMP_SCHED);
ffff8000113a9c1c:	f9400e62 	ldr	x2, [x19,#24]
ffff8000113a9c20:	aa1303e0 	mov	x0, x19
ffff8000113a9c24:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a9c28:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a9c2c:	94000000 	bl	0 <__skb_tstamp_tx>
			ffff8000113a9c2c: R_AARCH64_CALL26	__skb_tstamp_tx
ffff8000113a9c30:	17fffe0b 	b	ffff8000113a945c <__dev_queue_xmit+0x68>
		skb->tc_index = TC_H_MIN(cl_res.classid);
ffff8000113a9c34:	b9408ba0 	ldr	w0, [x29,#136]
ffff8000113a9c38:	79010e60 	strh	w0, [x19,#134]
		if (!skb)
ffff8000113a9c3c:	b5ffcbd3 	cbnz	x19, ffff8000113a95b4 <__dev_queue_xmit+0x1c0>
ffff8000113a9c40:	17fffead 	b	ffff8000113a96f4 <__dev_queue_xmit+0x300>
		consume_skb(skb);
ffff8000113a9c44:	aa1303e0 	mov	x0, x19
		*ret = NET_XMIT_SUCCESS;
ffff8000113a9c48:	b9007fbf 	str	wzr, [x29,#124]
		consume_skb(skb);
ffff8000113a9c4c:	94000000 	bl	0 <consume_skb>
			ffff8000113a9c4c: R_AARCH64_CALL26	consume_skb
ffff8000113a9c50:	17fffea9 	b	ffff8000113a96f4 <__dev_queue_xmit+0x300>
		mini_qdisc_qstats_cpu_drop(miniq);
ffff8000113a9c54:	910062a0 	add	x0, x21, #0x18
ffff8000113a9c58:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9c58: R_AARCH64_CALL26	.text.unlikely+0x64
		*ret = NET_XMIT_DROP;
ffff8000113a9c5c:	52800021 	mov	w1, #0x1                   	// #1
		kfree_skb(skb);
ffff8000113a9c60:	aa1303e0 	mov	x0, x19
		*ret = NET_XMIT_DROP;
ffff8000113a9c64:	b9007fa1 	str	w1, [x29,#124]
		kfree_skb(skb);
ffff8000113a9c68:	94000000 	bl	0 <kfree_skb>
			ffff8000113a9c68: R_AARCH64_CALL26	kfree_skb
ffff8000113a9c6c:	17fffea2 	b	ffff8000113a96f4 <__dev_queue_xmit+0x300>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a9c70:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a9c70: R_AARCH64_CALL26	queued_spin_lock_slowpath
	txq->xmit_lock_owner = cpu;
ffff8000113a9c74:	b9008714 	str	w20, [x24,#132]
ffff8000113a9c78:	17fffef3 	b	ffff8000113a9844 <__dev_queue_xmit+0x450>
	smp_store_release(&lock->locked, 0);
ffff8000113a9c7c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a9c80:	91040281 	add	x1, x20, #0x100
ffff8000113a9c84:	089ffc20 	stlrb	w0, [x1]
				contended = false;
ffff8000113a9c88:	52800015 	mov	w21, #0x0                   	// #0
ffff8000113a9c8c:	17ffff4d 	b	ffff8000113a99c0 <__dev_queue_xmit+0x5cc>
/* Instead of calling kfree_skb() while root qdisc lock is held,
 * queue the skb for future freeing at end of __dev_xmit_skb()
 */
static inline void __qdisc_drop(struct sk_buff *skb, struct sk_buff **to_free)
{
	skb->next = *to_free;
ffff8000113a9c90:	f94043a0 	ldr	x0, [x29,#128]
		rc = NET_XMIT_DROP;
ffff8000113a9c94:	52800036 	mov	w22, #0x1                   	// #1
ffff8000113a9c98:	f9000260 	str	x0, [x19]
	*to_free = skb;
ffff8000113a9c9c:	f90043b3 	str	x19, [x29,#128]
ffff8000113a9ca0:	17fffe8d 	b	ffff8000113a96d4 <__dev_queue_xmit+0x2e0>
		skb_do_redirect(skb);
ffff8000113a9ca4:	aa1303e0 	mov	x0, x19
ffff8000113a9ca8:	94000000 	bl	0 <skb_do_redirect>
			ffff8000113a9ca8: R_AARCH64_CALL26	skb_do_redirect
		*ret = NET_XMIT_SUCCESS;
ffff8000113a9cac:	b9007fbf 	str	wzr, [x29,#124]
ffff8000113a9cb0:	17fffe91 	b	ffff8000113a96f4 <__dev_queue_xmit+0x300>
			net_crit_ratelimited("Virtual device %s asks to queue packet!\n",
ffff8000113a9cb4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9cb4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x690
ffff8000113a9cb8:	aa1603e1 	mov	x1, x22
ffff8000113a9cbc:	91000000 	add	x0, x0, #0x0
			ffff8000113a9cbc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x690
ffff8000113a9cc0:	94000000 	bl	0 <printk>
			ffff8000113a9cc0: R_AARCH64_CALL26	printk
ffff8000113a9cc4:	17fffee8 	b	ffff8000113a9864 <__dev_queue_xmit+0x470>
ffff8000113a9cc8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a9ccc:	91040294 	add	x20, x20, #0x100
ffff8000113a9cd0:	089ffe80 	stlrb	w0, [x20]
ffff8000113a9cd4:	17fffe87 	b	ffff8000113a96f0 <__dev_queue_xmit+0x2fc>
		kfree_skb_list(to_free);
ffff8000113a9cd8:	94000000 	bl	0 <kfree_skb_list>
			ffff8000113a9cd8: R_AARCH64_CALL26	kfree_skb_list
ffff8000113a9cdc:	17fffe83 	b	ffff8000113a96e8 <__dev_queue_xmit+0x2f4>
ffff8000113a9ce0:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113a9ce4:	91040288 	add	x8, x20, #0x100
ffff8000113a9ce8:	089ffd00 	stlrb	w0, [x8]
				contended = false;
ffff8000113a9cec:	52800015 	mov	w21, #0x0                   	// #0
ffff8000113a9cf0:	17fffe71 	b	ffff8000113a96b4 <__dev_queue_xmit+0x2c0>
	return skb->len - skb->data_len;
ffff8000113a9cf4:	4b040000 	sub	w0, w0, w4
	if (hlen - offset >= len)
ffff8000113a9cf8:	4b010000 	sub	w0, w0, w1
ffff8000113a9cfc:	71001c1f 	cmp	w0, #0x7
ffff8000113a9d00:	5400016c 	b.gt	ffff8000113a9d2c <__dev_queue_xmit+0x938>
	if (!skb ||
ffff8000113a9d04:	b4000113 	cbz	x19, ffff8000113a9d24 <__dev_queue_xmit+0x930>
	    skb_copy_bits(skb, offset, buffer, len) < 0)
ffff8000113a9d08:	52800103 	mov	w3, #0x8                   	// #8
ffff8000113a9d0c:	aa1303e0 	mov	x0, x19
ffff8000113a9d10:	910203a2 	add	x2, x29, #0x80
ffff8000113a9d14:	94000000 	bl	0 <skb_copy_bits>
			ffff8000113a9d14: R_AARCH64_CALL26	skb_copy_bits
ffff8000113a9d18:	b9401aa3 	ldr	w3, [x21,#24]
	if (!skb ||
ffff8000113a9d1c:	37f80040 	tbnz	w0, #31, ffff8000113a9d24 <__dev_queue_xmit+0x930>
				hdr_len += sizeof(struct udphdr);
ffff8000113a9d20:	11002338 	add	w24, w25, #0x8
ffff8000113a9d24:	b9402a60 	ldr	w0, [x19,#40]
ffff8000113a9d28:	17fffe0f 	b	ffff8000113a9564 <__dev_queue_xmit+0x170>
		return data + offset;
ffff8000113a9d2c:	8b21c041 	add	x1, x2, w1, sxtw
			if (skb_header_pointer(skb, skb_transport_offset(skb),
ffff8000113a9d30:	b5ffff81 	cbnz	x1, ffff8000113a9d20 <__dev_queue_xmit+0x92c>
ffff8000113a9d34:	17fffffc 	b	ffff8000113a9d24 <__dev_queue_xmit+0x930>
ffff8000113a9d38:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113a9d3c:	91040280 	add	x0, x20, #0x100
ffff8000113a9d40:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a9d44:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a9d48:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a9d4c:	4a020024 	eor	w4, w1, w2
ffff8000113a9d50:	35000064 	cbnz	w4, ffff8000113a9d5c <__dev_queue_xmit+0x968>
ffff8000113a9d54:	88047c03 	stxr	w4, w3, [x0]
ffff8000113a9d58:	35ffff84 	cbnz	w4, ffff8000113a9d48 <__dev_queue_xmit+0x954>
ffff8000113a9d5c:	34ffc6c1 	cbz	w1, ffff8000113a9634 <__dev_queue_xmit+0x240>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a9d60:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a9d60: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a9d64:	17fffe34 	b	ffff8000113a9634 <__dev_queue_xmit+0x240>
ffff8000113a9d68:	aa0403e0 	mov	x0, x4
ffff8000113a9d6c:	f90037a4 	str	x4, [x29,#104]
ffff8000113a9d70:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a9d70: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113a9d74:	f94037a4 	ldr	x4, [x29,#104]
ffff8000113a9d78:	17fffe39 	b	ffff8000113a965c <__dev_queue_xmit+0x268>

ffff8000113a9d7c <dev_queue_xmit>:
{
ffff8000113a9d7c:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113a9d80:	910003fd 	mov	x29, sp
ffff8000113a9d84:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a9d88:	aa0003f3 	mov	x19, x0
ffff8000113a9d8c:	aa1e03e0 	mov	x0, x30
ffff8000113a9d90:	94000000 	bl	0 <_mcount>
			ffff8000113a9d90: R_AARCH64_CALL26	_mcount
	return __dev_queue_xmit(skb, NULL);
ffff8000113a9d94:	aa1303e0 	mov	x0, x19
ffff8000113a9d98:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113a9d9c:	97fffd96 	bl	ffff8000113a93f4 <__dev_queue_xmit>
}
ffff8000113a9da0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a9da4:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113a9da8:	d65f03c0 	ret

ffff8000113a9dac <dev_queue_xmit_accel>:
{
ffff8000113a9dac:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113a9db0:	910003fd 	mov	x29, sp
ffff8000113a9db4:	f9000bf3 	str	x19, [sp,#16]
ffff8000113a9db8:	aa0003f3 	mov	x19, x0
ffff8000113a9dbc:	aa1e03e0 	mov	x0, x30
ffff8000113a9dc0:	f90017a1 	str	x1, [x29,#40]
ffff8000113a9dc4:	94000000 	bl	0 <_mcount>
			ffff8000113a9dc4: R_AARCH64_CALL26	_mcount
	return __dev_queue_xmit(skb, sb_dev);
ffff8000113a9dc8:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113a9dcc:	aa1303e0 	mov	x0, x19
ffff8000113a9dd0:	97fffd89 	bl	ffff8000113a93f4 <__dev_queue_xmit>
}
ffff8000113a9dd4:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113a9dd8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113a9ddc:	d65f03c0 	ret

ffff8000113a9de0 <generic_xdp_tx>:
{
ffff8000113a9de0:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113a9de4:	910003fd 	mov	x29, sp
ffff8000113a9de8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a9dec:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a9df0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a9df4:	aa0003f5 	mov	x21, x0
ffff8000113a9df8:	aa1e03e0 	mov	x0, x30
ffff8000113a9dfc:	aa0103f6 	mov	x22, x1
ffff8000113a9e00:	94000000 	bl	0 <_mcount>
			ffff8000113a9e00: R_AARCH64_CALL26	_mcount
	struct net_device *dev = skb->dev;
ffff8000113a9e04:	f9400ab3 	ldr	x19, [x21,#16]
	txq = netdev_core_pick_tx(dev, skb, NULL);
ffff8000113a9e08:	aa1503e1 	mov	x1, x21
ffff8000113a9e0c:	aa1303e0 	mov	x0, x19
ffff8000113a9e10:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113a9e14:	94000000 	bl	ffff8000113a92e8 <netdev_core_pick_tx>
			ffff8000113a9e14: R_AARCH64_CALL26	netdev_core_pick_tx
	HARD_TX_LOCK(dev, txq, cpu);
ffff8000113a9e18:	f9406664 	ldr	x4, [x19,#200]
	cpu = smp_processor_id();
ffff8000113a9e1c:	90000017 	adrp	x23, 0 <cpu_number>
			ffff8000113a9e1c: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
	HARD_TX_LOCK(dev, txq, cpu);
ffff8000113a9e20:	92740084 	and	x4, x4, #0x1000
	txq = netdev_core_pick_tx(dev, skb, NULL);
ffff8000113a9e24:	aa0003f4 	mov	x20, x0
	cpu = smp_processor_id();
ffff8000113a9e28:	910002e3 	add	x3, x23, #0x0
			ffff8000113a9e28: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a9e2c:	d538d080 	mrs	x0, tpidr_el1
ffff8000113a9e30:	b8636818 	ldr	w24, [x0,x3]
	HARD_TX_LOCK(dev, txq, cpu);
ffff8000113a9e34:	b4000644 	cbz	x4, ffff8000113a9efc <generic_xdp_tx+0x11c>
	return dev_queue->state & QUEUE_STATE_ANY_XOFF;
ffff8000113a9e38:	f9404a80 	ldr	x0, [x20,#144]
ffff8000113a9e3c:	92400400 	and	x0, x0, #0x3
	if (!netif_xmit_stopped(txq)) {
ffff8000113a9e40:	b4000380 	cbz	x0, ffff8000113a9eb0 <generic_xdp_tx+0xd0>
	bool free_skb = true;
ffff8000113a9e44:	52800021 	mov	w1, #0x1                   	// #1
	HARD_TX_UNLOCK(dev, txq);
ffff8000113a9e48:	f9406660 	ldr	x0, [x19,#200]
ffff8000113a9e4c:	92740000 	and	x0, x0, #0x1000
ffff8000113a9e50:	b40000e0 	cbz	x0, ffff8000113a9e6c <generic_xdp_tx+0x8c>
	if (free_skb) {
ffff8000113a9e54:	35000161 	cbnz	w1, ffff8000113a9e80 <generic_xdp_tx+0xa0>
}
ffff8000113a9e58:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a9e5c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a9e60:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a9e64:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a9e68:	d65f03c0 	ret
	txq->xmit_lock_owner = -1;
ffff8000113a9e6c:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113a9e70:	b9008682 	str	w2, [x20,#132]
	smp_store_release(&lock->locked, 0);
ffff8000113a9e74:	91020294 	add	x20, x20, #0x80
ffff8000113a9e78:	089ffe80 	stlrb	w0, [x20]
	if (free_skb) {
ffff8000113a9e7c:	34fffee1 	cbz	w1, ffff8000113a9e58 <generic_xdp_tx+0x78>
ffff8000113a9e80:	90000000 	adrp	x0, 0 <__tracepoint_xdp_exception>
			ffff8000113a9e80: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_xdp_exception
ffff8000113a9e84:	91000000 	add	x0, x0, #0x0
			ffff8000113a9e84: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_xdp_exception
ffff8000113a9e88:	b9400801 	ldr	w1, [x0,#8]
ffff8000113a9e8c:	6b1f003f 	cmp	w1, wzr
ffff8000113a9e90:	540005ac 	b.gt	ffff8000113a9f44 <generic_xdp_tx+0x164>
		kfree_skb(skb);
ffff8000113a9e94:	aa1503e0 	mov	x0, x21
ffff8000113a9e98:	94000000 	bl	0 <kfree_skb>
			ffff8000113a9e98: R_AARCH64_CALL26	kfree_skb
}
ffff8000113a9e9c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a9ea0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a9ea4:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a9ea8:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113a9eac:	d65f03c0 	ret
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a9eb0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113a9eb0: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113a9eb4:	f940fa62 	ldr	x2, [x19,#496]
	__this_cpu_write(softnet_data.xmit.more, more);
ffff8000113a9eb8:	91000021 	add	x1, x1, #0x0
			ffff8000113a9eb8: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113a9ebc:	9101e821 	add	x1, x1, #0x7a
ffff8000113a9ec0:	d538d083 	mrs	x3, tpidr_el1
ffff8000113a9ec4:	38216860 	strb	w0, [x3,x1]
	return ops->ndo_start_xmit(skb, dev);
ffff8000113a9ec8:	f9401042 	ldr	x2, [x2,#32]
ffff8000113a9ecc:	aa1503e0 	mov	x0, x21
ffff8000113a9ed0:	aa1303e1 	mov	x1, x19
ffff8000113a9ed4:	d63f0040 	blr	x2
	if (rc == NETDEV_TX_OK)
ffff8000113a9ed8:	35000280 	cbnz	w0, ffff8000113a9f28 <generic_xdp_tx+0x148>
	if (txq->xmit_lock_owner != -1)
ffff8000113a9edc:	b9408680 	ldr	w0, [x20,#132]
ffff8000113a9ee0:	3100041f 	cmn	w0, #0x1
ffff8000113a9ee4:	54000080 	b.eq	ffff8000113a9ef4 <generic_xdp_tx+0x114>
		txq->trans_start = jiffies;
ffff8000113a9ee8:	90000000 	adrp	x0, 0 <jiffies>
			ffff8000113a9ee8: R_AARCH64_ADR_PREL_PG_HI21	jiffies
ffff8000113a9eec:	f9400000 	ldr	x0, [x0]
			ffff8000113a9eec: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113a9ef0:	f9004680 	str	x0, [x20,#136]
			free_skb = false;
ffff8000113a9ef4:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a9ef8:	17ffffd4 	b	ffff8000113a9e48 <generic_xdp_tx+0x68>
ffff8000113a9efc:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113a9f00:	91020280 	add	x0, x20, #0x80
ffff8000113a9f04:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113a9f08:	885ffc01 	ldaxr	w1, [x0]
ffff8000113a9f0c:	4a040023 	eor	w3, w1, w4
ffff8000113a9f10:	35000063 	cbnz	w3, ffff8000113a9f1c <generic_xdp_tx+0x13c>
ffff8000113a9f14:	88037c02 	stxr	w3, w2, [x0]
ffff8000113a9f18:	35ffff83 	cbnz	w3, ffff8000113a9f08 <generic_xdp_tx+0x128>
ffff8000113a9f1c:	350000e1 	cbnz	w1, ffff8000113a9f38 <generic_xdp_tx+0x158>
	txq->xmit_lock_owner = cpu;
ffff8000113a9f20:	b9008698 	str	w24, [x20,#132]
ffff8000113a9f24:	17ffffc5 	b	ffff8000113a9e38 <generic_xdp_tx+0x58>
	if (likely(rc < NET_XMIT_MASK))
ffff8000113a9f28:	7100381f 	cmp	w0, #0xe
ffff8000113a9f2c:	54fff8cc 	b.gt	ffff8000113a9e44 <generic_xdp_tx+0x64>
ffff8000113a9f30:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113a9f34:	17ffffc5 	b	ffff8000113a9e48 <generic_xdp_tx+0x68>
	queued_spin_lock_slowpath(lock, val);
ffff8000113a9f38:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113a9f38: R_AARCH64_CALL26	queued_spin_lock_slowpath
	txq->xmit_lock_owner = cpu;
ffff8000113a9f3c:	b9008698 	str	w24, [x20,#132]
ffff8000113a9f40:	17ffffbe 	b	ffff8000113a9e38 <generic_xdp_tx+0x58>
	{ XDP_##x, #x },
#define __XDP_ACT_SYM_TAB	\
	__XDP_ACT_MAP(__XDP_ACT_SYM_FN) { -1, NULL }
__XDP_ACT_MAP(__XDP_ACT_TP_FN)

TRACE_EVENT(xdp_exception,
ffff8000113a9f44:	910002f7 	add	x23, x23, #0x0
			ffff8000113a9f44: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113a9f48:	d538d081 	mrs	x1, tpidr_el1
ffff8000113a9f4c:	b8776821 	ldr	w1, [x1,x23]
ffff8000113a9f50:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113a9f54:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113a9f58:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113a9f58: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113a9f5c:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113a9f60:	91000042 	add	x2, x2, #0x0
			ffff8000113a9f60: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113a9f64:	f8626862 	ldr	x2, [x3,x2]
ffff8000113a9f68:	9ac12441 	lsr	x1, x2, x1
ffff8000113a9f6c:	3607f941 	tbz	w1, #0, ffff8000113a9e94 <generic_xdp_tx+0xb4>
ffff8000113a9f70:	f9401014 	ldr	x20, [x0,#32]
ffff8000113a9f74:	b4000134 	cbz	x20, ffff8000113a9f98 <generic_xdp_tx+0x1b8>
ffff8000113a9f78:	f9400284 	ldr	x4, [x20]
ffff8000113a9f7c:	f9400680 	ldr	x0, [x20,#8]
ffff8000113a9f80:	aa1303e1 	mov	x1, x19
ffff8000113a9f84:	aa1603e2 	mov	x2, x22
ffff8000113a9f88:	52800063 	mov	w3, #0x3                   	// #3
ffff8000113a9f8c:	d63f0080 	blr	x4
ffff8000113a9f90:	f8418e84 	ldr	x4, [x20,#24]!
ffff8000113a9f94:	b5ffff44 	cbnz	x4, ffff8000113a9f7c <generic_xdp_tx+0x19c>
ffff8000113a9f98:	17ffffbf 	b	ffff8000113a9e94 <generic_xdp_tx+0xb4>

ffff8000113a9f9c <do_xdp_generic.part.132>:
int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff *skb)
ffff8000113a9f9c:	a9b47bfd 	stp	x29, x30, [sp,#-192]!
ffff8000113a9fa0:	910003fd 	mov	x29, sp
ffff8000113a9fa4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113a9fa8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113a9fac:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113a9fb0:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113a9fb4:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113a9fb8:	aa0003f5 	mov	x21, x0
ffff8000113a9fbc:	aa1e03e0 	mov	x0, x30
ffff8000113a9fc0:	aa0103f3 	mov	x19, x1
ffff8000113a9fc4:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113a9fc4: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113a9fc8:	94000000 	bl	0 <_mcount>
			ffff8000113a9fc8: R_AARCH64_CALL26	_mcount
ffff8000113a9fcc:	f9400285 	ldr	x5, [x20]
			ffff8000113a9fcc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
}

static inline bool skb_is_redirected(const struct sk_buff *skb)
{
#ifdef CONFIG_NET_REDIRECT
	return skb->redirected;
ffff8000113a9fd0:	39420e64 	ldrb	w4, [x19,#131]
ffff8000113a9fd4:	f9005fa5 	str	x5, [x29,#184]
	if (skb_is_redirected(skb))
ffff8000113a9fd8:	363801a4 	tbz	w4, #7, ffff8000113aa00c <do_xdp_generic.part.132+0x70>
	return XDP_PASS;
ffff8000113a9fdc:	52800040 	mov	w0, #0x2                   	// #2
}
ffff8000113a9fe0:	f9405fa2 	ldr	x2, [x29,#184]
ffff8000113a9fe4:	f9400281 	ldr	x1, [x20]
			ffff8000113a9fe4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113a9fe8:	eb01005f 	cmp	x2, x1
ffff8000113a9fec:	54001b41 	b.ne	ffff8000113aa354 <do_xdp_generic.part.132+0x3b8>
ffff8000113a9ff0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113a9ff4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113a9ff8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113a9ffc:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113aa000:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113aa004:	a8cc7bfd 	ldp	x29, x30, [sp],#192
ffff8000113aa008:	d65f03c0 	ret
	return skb->cloned &&
ffff8000113aa00c:	3941fa60 	ldrb	w0, [x19,#126]
ffff8000113aa010:	360003e0 	tbz	w0, #0, ffff8000113aa08c <do_xdp_generic.part.132+0xf0>
static inline int skb_cloned(const struct sk_buff *skb)
ffff8000113aa014:	b940be64 	ldr	w4, [x19,#188]
ffff8000113aa018:	f9406263 	ldr	x3, [x19,#192]
	return skb->head + skb->end;
ffff8000113aa01c:	8b244060 	add	x0, x3, w4, uxtw
ffff8000113aa020:	b9402000 	ldr	w0, [x0,#32]
	       (atomic_read(&skb_shinfo(skb)->dataref) & SKB_DATAREF_MASK) != 1;
ffff8000113aa024:	12003c00 	and	w0, w0, #0xffff
	return skb->cloned &&
ffff8000113aa028:	7100041f 	cmp	w0, #0x1
ffff8000113aa02c:	54000320 	b.eq	ffff8000113aa090 <do_xdp_generic.part.132+0xf4>
ffff8000113aa030:	f9406661 	ldr	x1, [x19,#200]
ffff8000113aa034:	b9407660 	ldr	w0, [x19,#116]
ffff8000113aa038:	4b030021 	sub	w1, w1, w3
		int troom = skb->tail + skb->data_len - skb->end;
ffff8000113aa03c:	b940ba62 	ldr	w2, [x19,#184]
		int hroom = XDP_PACKET_HEADROOM - skb_headroom(skb);
ffff8000113aa040:	52802003 	mov	w3, #0x100                 	// #256
ffff8000113aa044:	4b010061 	sub	w1, w3, w1
		int troom = skb->tail + skb->data_len - skb->end;
ffff8000113aa048:	0b020000 	add	w0, w0, w2
		if (pskb_expand_head(skb,
ffff8000113aa04c:	6b1f003f 	cmp	w1, wzr
		int troom = skb->tail + skb->data_len - skb->end;
ffff8000113aa050:	4b040000 	sub	w0, w0, w4
		if (pskb_expand_head(skb,
ffff8000113aa054:	540010cd 	b.le	ffff8000113aa26c <do_xdp_generic.part.132+0x2d0>
				     hroom > 0 ? ALIGN(hroom, NET_SKB_PAD) : 0,
ffff8000113aa058:	1100fc21 	add	w1, w1, #0x3f
		if (pskb_expand_head(skb,
ffff8000113aa05c:	121a6421 	and	w1, w1, #0xffffffc0
ffff8000113aa060:	11020002 	add	w2, w0, #0x80
ffff8000113aa064:	6b1f001f 	cmp	w0, wzr
ffff8000113aa068:	1a9fc042 	csel	w2, w2, wzr, gt
ffff8000113aa06c:	aa1303e0 	mov	x0, x19
ffff8000113aa070:	52814403 	mov	w3, #0xa20                 	// #2592
ffff8000113aa074:	94000000 	bl	0 <pskb_expand_head>
			ffff8000113aa074: R_AARCH64_CALL26	pskb_expand_head
ffff8000113aa078:	340001e0 	cbz	w0, ffff8000113aa0b4 <do_xdp_generic.part.132+0x118>
	kfree_skb(skb);
ffff8000113aa07c:	aa1303e0 	mov	x0, x19
ffff8000113aa080:	94000000 	bl	0 <kfree_skb>
			ffff8000113aa080: R_AARCH64_CALL26	kfree_skb
	return XDP_DROP;
ffff8000113aa084:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113aa088:	17ffffd6 	b	ffff8000113a9fe0 <do_xdp_generic.part.132+0x44>
ffff8000113aa08c:	f9406263 	ldr	x3, [x19,#192]
static u32 netif_receive_generic_xdp(struct sk_buff *skb,
ffff8000113aa090:	b9407660 	ldr	w0, [x19,#116]
	if (skb_cloned(skb) || skb_is_nonlinear(skb) ||
ffff8000113aa094:	35000e40 	cbnz	w0, ffff8000113aa25c <do_xdp_generic.part.132+0x2c0>
static u32 netif_receive_generic_xdp(struct sk_buff *skb,
ffff8000113aa098:	f9406662 	ldr	x2, [x19,#200]
	return skb->data - skb->head;
ffff8000113aa09c:	cb030044 	sub	x4, x2, x3
	if (skb_cloned(skb) || skb_is_nonlinear(skb) ||
ffff8000113aa0a0:	7103fc9f 	cmp	w4, #0xff
ffff8000113aa0a4:	2a0403e1 	mov	w1, w4
ffff8000113aa0a8:	54000108 	b.hi	ffff8000113aa0c8 <do_xdp_generic.part.132+0x12c>
ffff8000113aa0ac:	b940be64 	ldr	w4, [x19,#188]
ffff8000113aa0b0:	17ffffe3 	b	ffff8000113aa03c <do_xdp_generic.part.132+0xa0>
static inline int skb_linearize(struct sk_buff *skb)
ffff8000113aa0b4:	b9407661 	ldr	w1, [x19,#116]
	return skb_is_nonlinear(skb) ? __skb_linearize(skb) : 0;
ffff8000113aa0b8:	35001301 	cbnz	w1, ffff8000113aa318 <do_xdp_generic.part.132+0x37c>
ffff8000113aa0bc:	f9406662 	ldr	x2, [x19,#200]
ffff8000113aa0c0:	f9406263 	ldr	x3, [x19,#192]
ffff8000113aa0c4:	cb030044 	sub	x4, x2, x3
	return skb->head + skb->mac_header;
ffff8000113aa0c8:	79416e78 	ldrh	w24, [x19,#182]
	return skb->len - skb->data_len;
ffff8000113aa0cc:	b940727c 	ldr	w28, [x19,#112]
	return skb->head + skb->mac_header;
ffff8000113aa0d0:	8b180063 	add	x3, x3, x24
	mac_len = skb->data - skb_mac_header(skb);
ffff8000113aa0d4:	cb030058 	sub	x24, x2, x3
ffff8000113aa0d8:	92407f19 	and	x25, x24, #0xffffffff
	xdp->data = skb->data - mac_len;
ffff8000113aa0dc:	cb1903f9 	neg	x25, x25
	return skb->len - skb->data_len;
ffff8000113aa0e0:	4b000380 	sub	w0, w28, w0
ffff8000113aa0e4:	8b190057 	add	x23, x2, x25
	hlen = skb_headlen(skb) + mac_len;
ffff8000113aa0e8:	0b18001c 	add	w28, w0, w24
	xdp->data_end = xdp->data + hlen;
ffff8000113aa0ec:	8b3cc2fc 	add	x28, x23, w28, sxtw
	xdp->data_hard_start = skb->data - skb_headroom(skb);
ffff8000113aa0f0:	cb244044 	sub	x4, x2, w4, uxtw
	struct net_device *dev = skb->dev;
ffff8000113aa0f4:	f9400a61 	ldr	x1, [x19,#16]
static struct netdev_rx_queue *netif_get_rxqueue(struct sk_buff *skb)
ffff8000113aa0f8:	7940fa60 	ldrh	w0, [x19,#124]
	xdp->data_meta = xdp->data;
ffff8000113aa0fc:	f9004fb7 	str	x23, [x29,#152]
	xdp->data_end = xdp->data + hlen;
ffff8000113aa100:	f9004bbc 	str	x28, [x29,#144]
	xdp->data_hard_start = skb->data - skb_headroom(skb);
ffff8000113aa104:	f90053a4 	str	x4, [x29,#160]
	xdp->data = skb->data - mac_len;
ffff8000113aa108:	f90047b7 	str	x23, [x29,#136]
{
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && BITS_PER_LONG == 64
#ifdef __BIG_ENDIAN
	return 0x01 & ((*(const u64 *)addr) >> 56);
#else
	return 0x01 & (*(const u64 *)addr);
ffff8000113aa10c:	f879685b 	ldr	x27, [x2,x25]
	orig_eth_type = eth->h_proto;
ffff8000113aa110:	79401afa 	ldrh	w26, [x23,#12]
	rxqueue = dev->_rx;
ffff8000113aa114:	f9419036 	ldr	x22, [x1,#800]
	if (skb_rx_queue_recorded(skb)) {
ffff8000113aa118:	35000ba0 	cbnz	w0, ffff8000113aa28c <do_xdp_generic.part.132+0x2f0>
ffff8000113aa11c:	90000000 	adrp	x0, 0 <bpf_stats_enabled_key>
			ffff8000113aa11c: R_AARCH64_ADR_PREL_PG_HI21	bpf_stats_enabled_key
ffff8000113aa120:	b9400000 	ldr	w0, [x0]
			ffff8000113aa120: R_AARCH64_LDST32_ABS_LO12_NC	bpf_stats_enabled_key
	xdp->rxq = &rxqueue->xdp_rxq;
ffff8000113aa124:	910202d6 	add	x22, x22, #0x80
ffff8000113aa128:	f9005bb6 	str	x22, [x29,#176]
	 * can be released while still running, or map elements could be
	 * freed early while still having concurrent users. XDP fastpath
	 * already takes rcu_read_lock() when fetching the program, so
	 * it's not necessary here anymore.
	 */
	return __BPF_PROG_RUN(prog, xdp, BPF_DISPATCHER_FUNC(xdp));
ffff8000113aa12c:	6b1f001f 	cmp	w0, wzr
ffff8000113aa130:	5400114c 	b.gt	ffff8000113aa358 <do_xdp_generic.part.132+0x3bc>
ffff8000113aa134:	f9401aa2 	ldr	x2, [x21,#48]
ffff8000113aa138:	910223a0 	add	x0, x29, #0x88
ffff8000113aa13c:	9100e2a1 	add	x1, x21, #0x38
ffff8000113aa140:	94000000 	bl	0 <bpf_dispatcher_xdp_func>
			ffff8000113aa140: R_AARCH64_CALL26	bpf_dispatcher_xdp_func
ffff8000113aa144:	2a0003f6 	mov	w22, w0
	off = xdp->data - orig_data;
ffff8000113aa148:	f94047a0 	ldr	x0, [x29,#136]
ffff8000113aa14c:	cb170017 	sub	x23, x0, x23
	if (off) {
ffff8000113aa150:	6b1f02ff 	cmp	w23, wzr
ffff8000113aa154:	540001e0 	b.eq	ffff8000113aa190 <do_xdp_generic.part.132+0x1f4>
		if (off > 0)
ffff8000113aa158:	54000eac 	b.gt	ffff8000113aa32c <do_xdp_generic.part.132+0x390>
	skb->data -= len;
ffff8000113aa15c:	f9406661 	ldr	x1, [x19,#200]
	skb->len  += len;
ffff8000113aa160:	b9407263 	ldr	w3, [x19,#112]
			__skb_push(skb, -off);
ffff8000113aa164:	4b1703e2 	neg	w2, w23
	skb->data -= len;
ffff8000113aa168:	cb22c021 	sub	x1, x1, w2, sxtw
	skb->len  += len;
ffff8000113aa16c:	0b020062 	add	w2, w3, w2
	skb->data -= len;
ffff8000113aa170:	f9006661 	str	x1, [x19,#200]
	skb->len  += len;
ffff8000113aa174:	b9007262 	str	w2, [x19,#112]
		skb->mac_header += off;
ffff8000113aa178:	79416e63 	ldrh	w3, [x19,#182]
	skb->network_header = skb->data - skb->head;
ffff8000113aa17c:	f9406262 	ldr	x2, [x19,#192]
ffff8000113aa180:	0b0302f7 	add	w23, w23, w3
ffff8000113aa184:	cb020021 	sub	x1, x1, x2
ffff8000113aa188:	79016e77 	strh	w23, [x19,#182]
ffff8000113aa18c:	79016a61 	strh	w1, [x19,#180]
	off = orig_data_end - xdp->data_end;
ffff8000113aa190:	f9404ba1 	ldr	x1, [x29,#144]
ffff8000113aa194:	cb01039c 	sub	x28, x28, x1
	if (off != 0) {
ffff8000113aa198:	3400015c 	cbz	w28, ffff8000113aa1c0 <do_xdp_generic.part.132+0x224>
	skb->tail = skb->data - skb->head;
ffff8000113aa19c:	f9406664 	ldr	x4, [x19,#200]
ffff8000113aa1a0:	f9406263 	ldr	x3, [x19,#192]
		skb->len -= off;
ffff8000113aa1a4:	b9407262 	ldr	w2, [x19,#112]
		skb_set_tail_pointer(skb, xdp->data_end - xdp->data);
ffff8000113aa1a8:	cb000021 	sub	x1, x1, x0
ffff8000113aa1ac:	cb030083 	sub	x3, x4, x3
	skb->tail += offset;
ffff8000113aa1b0:	0b030021 	add	w1, w1, w3
		skb->len -= off;
ffff8000113aa1b4:	4b1c005c 	sub	w28, w2, w28
ffff8000113aa1b8:	b900ba61 	str	w1, [x19,#184]
ffff8000113aa1bc:	b900727c 	str	w28, [x19,#112]
	if ((orig_eth_type != eth->h_proto) ||
ffff8000113aa1c0:	79401801 	ldrh	w1, [x0,#12]
ffff8000113aa1c4:	6b1a003f 	cmp	w1, w26
ffff8000113aa1c8:	54000720 	b.eq	ffff8000113aa2ac <do_xdp_generic.part.132+0x310>
	skb->data -= len;
ffff8000113aa1cc:	f9406662 	ldr	x2, [x19,#200]
	skb->len  += len;
ffff8000113aa1d0:	b9407260 	ldr	w0, [x19,#112]
	skb->data -= len;
ffff8000113aa1d4:	d1003842 	sub	x2, x2, #0xe
	skb->len  += len;
ffff8000113aa1d8:	11003800 	add	w0, w0, #0xe
		skb->protocol = eth_type_trans(skb, skb->dev);
ffff8000113aa1dc:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113aa1e0:	b9007260 	str	w0, [x19,#112]
	skb->data -= len;
ffff8000113aa1e4:	f9006662 	str	x2, [x19,#200]
ffff8000113aa1e8:	aa1303e0 	mov	x0, x19
ffff8000113aa1ec:	94000000 	bl	0 <eth_type_trans>
			ffff8000113aa1ec: R_AARCH64_CALL26	eth_type_trans
ffff8000113aa1f0:	79016260 	strh	w0, [x19,#176]
	switch (act) {
ffff8000113aa1f4:	710012df 	cmp	w22, #0x4
ffff8000113aa1f8:	540003e9 	b.ls	ffff8000113aa274 <do_xdp_generic.part.132+0x2d8>
		bpf_warn_invalid_xdp_action(act);
ffff8000113aa1fc:	2a1603e0 	mov	w0, w22
ffff8000113aa200:	94000000 	bl	0 <bpf_warn_invalid_xdp_action>
			ffff8000113aa200: R_AARCH64_CALL26	bpf_warn_invalid_xdp_action
ffff8000113aa204:	90000000 	adrp	x0, 0 <__tracepoint_xdp_exception>
			ffff8000113aa204: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_xdp_exception
ffff8000113aa208:	91000000 	add	x0, x0, #0x0
			ffff8000113aa208: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_xdp_exception
ffff8000113aa20c:	b9400801 	ldr	w1, [x0,#8]
		trace_xdp_exception(skb->dev, xdp_prog, act);
ffff8000113aa210:	f9400a78 	ldr	x24, [x19,#16]
ffff8000113aa214:	6b1f003f 	cmp	w1, wzr
ffff8000113aa218:	54000f2c 	b.gt	ffff8000113aa3fc <do_xdp_generic.part.132+0x460>
		kfree_skb(skb);
ffff8000113aa21c:	aa1303e0 	mov	x0, x19
ffff8000113aa220:	94000000 	bl	0 <kfree_skb>
			ffff8000113aa220: R_AARCH64_CALL26	kfree_skb
		if (act != XDP_PASS) {
ffff8000113aa224:	71000adf 	cmp	w22, #0x2
ffff8000113aa228:	54ffeda0 	b.eq	ffff8000113a9fdc <do_xdp_generic.part.132+0x40>
			switch (act) {
ffff8000113aa22c:	71000edf 	cmp	w22, #0x3
ffff8000113aa230:	540006a0 	b.eq	ffff8000113aa304 <do_xdp_generic.part.132+0x368>
ffff8000113aa234:	710012df 	cmp	w22, #0x4
ffff8000113aa238:	54fff261 	b.ne	ffff8000113aa084 <do_xdp_generic.part.132+0xe8>
				err = xdp_do_generic_redirect(skb->dev, skb,
ffff8000113aa23c:	f9400a60 	ldr	x0, [x19,#16]
ffff8000113aa240:	aa1303e1 	mov	x1, x19
ffff8000113aa244:	910223a2 	add	x2, x29, #0x88
ffff8000113aa248:	aa1503e3 	mov	x3, x21
ffff8000113aa24c:	94000000 	bl	0 <xdp_do_generic_redirect>
			ffff8000113aa24c: R_AARCH64_CALL26	xdp_do_generic_redirect
				if (err)
ffff8000113aa250:	35fff160 	cbnz	w0, ffff8000113aa07c <do_xdp_generic.part.132+0xe0>
	return XDP_DROP;
ffff8000113aa254:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113aa258:	17ffff62 	b	ffff8000113a9fe0 <do_xdp_generic.part.132+0x44>
ffff8000113aa25c:	f9406661 	ldr	x1, [x19,#200]
ffff8000113aa260:	b940be64 	ldr	w4, [x19,#188]
ffff8000113aa264:	4b030021 	sub	w1, w1, w3
ffff8000113aa268:	17ffff75 	b	ffff8000113aa03c <do_xdp_generic.part.132+0xa0>
		if (pskb_expand_head(skb,
ffff8000113aa26c:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113aa270:	17ffff7c 	b	ffff8000113aa060 <do_xdp_generic.part.132+0xc4>
	switch (act) {
ffff8000113aa274:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa274: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x14
ffff8000113aa278:	91000000 	add	x0, x0, #0x0
			ffff8000113aa278: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x14
ffff8000113aa27c:	78765802 	ldrh	w2, [x0,w22,uxtw #1]
ffff8000113aa280:	10000061 	adr	x1, ffff8000113aa28c <do_xdp_generic.part.132+0x2f0>
ffff8000113aa284:	8b22a822 	add	x2, x1, w2, sxth #2
ffff8000113aa288:	d61f0040 	br	x2
	return skb->queue_mapping - 1;
ffff8000113aa28c:	51000400 	sub	w0, w0, #0x1
		if (unlikely(index >= dev->real_num_rx_queues)) {
ffff8000113aa290:	b9432c23 	ldr	w3, [x1,#812]
ffff8000113aa294:	53003c02 	uxth	w2, w0
ffff8000113aa298:	6b03005f 	cmp	w2, w3
ffff8000113aa29c:	54000962 	b.cs	ffff8000113aa3c8 <do_xdp_generic.part.132+0x42c>
		rxqueue += index;
ffff8000113aa2a0:	d3783c42 	ubfiz	x2, x2, #8, #16
ffff8000113aa2a4:	8b0202d6 	add	x22, x22, x2
ffff8000113aa2a8:	17ffff9d 	b	ffff8000113aa11c <do_xdp_generic.part.132+0x180>
ffff8000113aa2ac:	f9400000 	ldr	x0, [x0]
	if ((orig_eth_type != eth->h_proto) ||
ffff8000113aa2b0:	1200037b 	and	w27, w27, #0x1
ffff8000113aa2b4:	12000000 	and	w0, w0, #0x1
ffff8000113aa2b8:	6b00037f 	cmp	w27, w0
ffff8000113aa2bc:	54fff881 	b.ne	ffff8000113aa1cc <do_xdp_generic.part.132+0x230>
ffff8000113aa2c0:	17ffffcd 	b	ffff8000113aa1f4 <do_xdp_generic.part.132+0x258>
		metalen = xdp->data - xdp->data_meta;
ffff8000113aa2c4:	f9404fa0 	ldr	x0, [x29,#152]
ffff8000113aa2c8:	f94047a1 	ldr	x1, [x29,#136]
ffff8000113aa2cc:	cb000020 	sub	x0, x1, x0
		if (metalen)
ffff8000113aa2d0:	34ffe860 	cbz	w0, ffff8000113a9fdc <do_xdp_generic.part.132+0x40>
	return skb->head + skb->end;
ffff8000113aa2d4:	b940be61 	ldr	w1, [x19,#188]
	skb_shinfo(skb)->meta_len = meta_len;
ffff8000113aa2d8:	f9406262 	ldr	x2, [x19,#192]
ffff8000113aa2dc:	8b010041 	add	x1, x2, x1
			skb_metadata_set(skb, metalen);
ffff8000113aa2e0:	39000420 	strb	w0, [x1,#1]
ffff8000113aa2e4:	17ffff3e 	b	ffff8000113a9fdc <do_xdp_generic.part.132+0x40>
	skb->data -= len;
ffff8000113aa2e8:	f9406661 	ldr	x1, [x19,#200]
	skb->len  += len;
ffff8000113aa2ec:	b9407260 	ldr	w0, [x19,#112]
	skb->data -= len;
ffff8000113aa2f0:	8b190039 	add	x25, x1, x25
	skb->len  += len;
ffff8000113aa2f4:	0b180018 	add	w24, w0, w24
	skb->data -= len;
ffff8000113aa2f8:	f9006679 	str	x25, [x19,#200]
	skb->len  += len;
ffff8000113aa2fc:	b9007278 	str	w24, [x19,#112]
ffff8000113aa300:	17ffffcb 	b	ffff8000113aa22c <do_xdp_generic.part.132+0x290>
				generic_xdp_tx(skb, xdp_prog);
ffff8000113aa304:	aa1303e0 	mov	x0, x19
ffff8000113aa308:	aa1503e1 	mov	x1, x21
ffff8000113aa30c:	94000000 	bl	ffff8000113a9de0 <generic_xdp_tx>
			ffff8000113aa30c: R_AARCH64_CALL26	generic_xdp_tx
	return XDP_DROP;
ffff8000113aa310:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113aa314:	17ffff33 	b	ffff8000113a9fe0 <do_xdp_generic.part.132+0x44>
	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
ffff8000113aa318:	aa1303e0 	mov	x0, x19
ffff8000113aa31c:	94000000 	bl	0 <__pskb_pull_tail>
			ffff8000113aa31c: R_AARCH64_CALL26	__pskb_pull_tail
ffff8000113aa320:	b4ffeae0 	cbz	x0, ffff8000113aa07c <do_xdp_generic.part.132+0xe0>
ffff8000113aa324:	b9407660 	ldr	w0, [x19,#116]
ffff8000113aa328:	17ffff65 	b	ffff8000113aa0bc <do_xdp_generic.part.132+0x120>
	skb->len -= len;
ffff8000113aa32c:	b9407261 	ldr	w1, [x19,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113aa330:	b9407662 	ldr	w2, [x19,#116]
	skb->len -= len;
ffff8000113aa334:	4b170021 	sub	w1, w1, w23
ffff8000113aa338:	b9007261 	str	w1, [x19,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113aa33c:	6b02003f 	cmp	w1, w2
ffff8000113aa340:	540008c3 	b.cc	ffff8000113aa458 <do_xdp_generic.part.132+0x4bc>
	return skb->data += len;
ffff8000113aa344:	f9406661 	ldr	x1, [x19,#200]
ffff8000113aa348:	8b374021 	add	x1, x1, w23, uxtw
ffff8000113aa34c:	f9006661 	str	x1, [x19,#200]
ffff8000113aa350:	17ffff8a 	b	ffff8000113aa178 <do_xdp_generic.part.132+0x1dc>
}
ffff8000113aa354:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113aa354: R_AARCH64_CALL26	__stack_chk_fail
ffff8000113aa358:	94000000 	bl	0 <sched_clock>
			ffff8000113aa358: R_AARCH64_CALL26	sched_clock
ffff8000113aa35c:	f9401aa2 	ldr	x2, [x21,#48]
ffff8000113aa360:	aa0003e3 	mov	x3, x0
ffff8000113aa364:	9100e2a1 	add	x1, x21, #0x38
ffff8000113aa368:	910223a0 	add	x0, x29, #0x88
ffff8000113aa36c:	f90037a3 	str	x3, [x29,#104]
ffff8000113aa370:	94000000 	bl	0 <bpf_dispatcher_xdp_func>
			ffff8000113aa370: R_AARCH64_CALL26	bpf_dispatcher_xdp_func
ffff8000113aa374:	2a0003f6 	mov	w22, w0
ffff8000113aa378:	f94012a0 	ldr	x0, [x21,#32]
ffff8000113aa37c:	f940fc01 	ldr	x1, [x0,#504]
ffff8000113aa380:	f9003ba1 	str	x1, [x29,#112]
ffff8000113aa384:	97ffcffe 	bl	ffff80001139e37c <__my_cpu_offset>
ffff8000113aa388:	f9403ba1 	ldr	x1, [x29,#112]
ffff8000113aa38c:	f8616804 	ldr	x4, [x0,x1]
ffff8000113aa390:	8b010002 	add	x2, x0, x1
ffff8000113aa394:	91000484 	add	x4, x4, #0x1
ffff8000113aa398:	f8216804 	str	x4, [x0,x1]
ffff8000113aa39c:	f9400441 	ldr	x1, [x2,#8]
ffff8000113aa3a0:	f9003fa2 	str	x2, [x29,#120]
ffff8000113aa3a4:	f9003ba1 	str	x1, [x29,#112]
ffff8000113aa3a8:	94000000 	bl	0 <sched_clock>
			ffff8000113aa3a8: R_AARCH64_CALL26	sched_clock
ffff8000113aa3ac:	f9403ba1 	ldr	x1, [x29,#112]
ffff8000113aa3b0:	f94037a3 	ldr	x3, [x29,#104]
ffff8000113aa3b4:	8b010000 	add	x0, x0, x1
ffff8000113aa3b8:	f9403fa2 	ldr	x2, [x29,#120]
ffff8000113aa3bc:	cb030003 	sub	x3, x0, x3
ffff8000113aa3c0:	f9000443 	str	x3, [x2,#8]
ffff8000113aa3c4:	17ffff61 	b	ffff8000113aa148 <do_xdp_generic.part.132+0x1ac>
			WARN_ONCE(dev->real_num_rx_queues > 1,
ffff8000113aa3c8:	7100047f 	cmp	w3, #0x1
ffff8000113aa3cc:	54ffea89 	b.ls	ffff8000113aa11c <do_xdp_generic.part.132+0x180>
ffff8000113aa3d0:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa3d0: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113aa3d4:	91000084 	add	x4, x4, #0x0
			ffff8000113aa3d4: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113aa3d8:	39405480 	ldrb	w0, [x4,#21]
ffff8000113aa3dc:	35ffea00 	cbnz	w0, ffff8000113aa11c <do_xdp_generic.part.132+0x180>
ffff8000113aa3e0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa3e0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xe8
ffff8000113aa3e4:	52800025 	mov	w5, #0x1                   	// #1
ffff8000113aa3e8:	91000000 	add	x0, x0, #0x0
			ffff8000113aa3e8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xe8
ffff8000113aa3ec:	39005485 	strb	w5, [x4,#21]
ffff8000113aa3f0:	94000000 	bl	0 <__warn_printk>
			ffff8000113aa3f0: R_AARCH64_CALL26	__warn_printk
ffff8000113aa3f4:	d4210000 	brk	#0x800
ffff8000113aa3f8:	17ffff49 	b	ffff8000113aa11c <do_xdp_generic.part.132+0x180>
ffff8000113aa3fc:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113aa3fc: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113aa400:	d538d082 	mrs	x2, tpidr_el1
ffff8000113aa404:	91000021 	add	x1, x1, #0x0
			ffff8000113aa404: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113aa408:	b8616841 	ldr	w1, [x2,x1]
ffff8000113aa40c:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113aa410:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113aa414:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113aa414: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113aa418:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113aa41c:	91000042 	add	x2, x2, #0x0
			ffff8000113aa41c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113aa420:	f8626862 	ldr	x2, [x3,x2]
ffff8000113aa424:	9ac12441 	lsr	x1, x2, x1
ffff8000113aa428:	3607efa1 	tbz	w1, #0, ffff8000113aa21c <do_xdp_generic.part.132+0x280>
ffff8000113aa42c:	f9401017 	ldr	x23, [x0,#32]
ffff8000113aa430:	b4000137 	cbz	x23, ffff8000113aa454 <do_xdp_generic.part.132+0x4b8>
ffff8000113aa434:	f94002e4 	ldr	x4, [x23]
ffff8000113aa438:	f94006e0 	ldr	x0, [x23,#8]
ffff8000113aa43c:	aa1803e1 	mov	x1, x24
ffff8000113aa440:	aa1503e2 	mov	x2, x21
ffff8000113aa444:	2a1603e3 	mov	w3, w22
ffff8000113aa448:	d63f0080 	blr	x4
ffff8000113aa44c:	f8418ee4 	ldr	x4, [x23,#24]!
ffff8000113aa450:	b5ffff44 	cbnz	x4, ffff8000113aa438 <do_xdp_generic.part.132+0x49c>
ffff8000113aa454:	17ffff72 	b	ffff8000113aa21c <do_xdp_generic.part.132+0x280>
ffff8000113aa458:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa458: R_AARCH64_CALL26	.text.unlikely+0xa0

ffff8000113aa45c <do_xdp_generic>:
{
ffff8000113aa45c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113aa460:	910003fd 	mov	x29, sp
ffff8000113aa464:	f9000bf3 	str	x19, [sp,#16]
ffff8000113aa468:	aa0003f3 	mov	x19, x0
ffff8000113aa46c:	aa1e03e0 	mov	x0, x30
ffff8000113aa470:	f90017a1 	str	x1, [x29,#40]
ffff8000113aa474:	94000000 	bl	0 <_mcount>
			ffff8000113aa474: R_AARCH64_CALL26	_mcount
	return XDP_PASS;
ffff8000113aa478:	52800040 	mov	w0, #0x2                   	// #2
	if (xdp_prog) {
ffff8000113aa47c:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113aa480:	b4000073 	cbz	x19, ffff8000113aa48c <do_xdp_generic+0x30>
ffff8000113aa484:	aa1303e0 	mov	x0, x19
ffff8000113aa488:	97fffec5 	bl	ffff8000113a9f9c <do_xdp_generic.part.132>
}
ffff8000113aa48c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113aa490:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113aa494:	d65f03c0 	ret

ffff8000113aa498 <__netif_receive_skb_core>:
{
ffff8000113aa498:	a9b47bfd 	stp	x29, x30, [sp,#-192]!
ffff8000113aa49c:	910003fd 	mov	x29, sp
ffff8000113aa4a0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113aa4a4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113aa4a8:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113aa4ac:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113aa4b0:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113aa4b4:	f9003fa0 	str	x0, [x29,#120]
ffff8000113aa4b8:	aa1e03e0 	mov	x0, x30
ffff8000113aa4bc:	9000001a 	adrp	x26, 0 <__stack_chk_guard>
			ffff8000113aa4bc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113aa4c0:	53001c39 	uxtb	w25, w1
ffff8000113aa4c4:	f90037a2 	str	x2, [x29,#104]
ffff8000113aa4c8:	94000000 	bl	0 <_mcount>
			ffff8000113aa4c8: R_AARCH64_CALL26	_mcount
ffff8000113aa4cc:	f9400340 	ldr	x0, [x26]
			ffff8000113aa4cc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113aa4d0:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa4d0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113aa4d4:	f9005fa0 	str	x0, [x29,#184]
ffff8000113aa4d8:	910002e0 	add	x0, x23, #0x0
			ffff8000113aa4d8: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113aa4dc:	b9434800 	ldr	w0, [x0,#840]
ffff8000113aa4e0:	f9403fb4 	ldr	x20, [x29,#120]
	net_timestamp_check(!netdev_tstamp_prequeue, skb);
ffff8000113aa4e4:	6b1f001f 	cmp	w0, wzr
ffff8000113aa4e8:	5400438c 	b.gt	ffff8000113aad58 <__netif_receive_skb_core+0x8c0>
ffff8000113aa4ec:	90000001 	adrp	x1, 0 <__tracepoint_netif_receive_skb>
			ffff8000113aa4ec: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_receive_skb
ffff8000113aa4f0:	91000021 	add	x1, x1, #0x0
			ffff8000113aa4f0: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb
ffff8000113aa4f4:	b9400820 	ldr	w0, [x1,#8]
ffff8000113aa4f8:	6b1f001f 	cmp	w0, wzr
ffff8000113aa4fc:	54003fcc 	b.gt	ffff8000113aacf4 <__netif_receive_skb_core+0x85c>
ffff8000113aa500:	aa1403e0 	mov	x0, x20
	skb->network_header = skb->data - skb->head;
ffff8000113aa504:	f9406402 	ldr	x2, [x0,#200]
ffff8000113aa508:	f9406001 	ldr	x1, [x0,#192]
	if (!skb_transport_header_was_set(skb))
ffff8000113aa50c:	79416403 	ldrh	w3, [x0,#178]
ffff8000113aa510:	cb010041 	sub	x1, x2, x1
ffff8000113aa514:	53003c21 	uxth	w1, w1
ffff8000113aa518:	529fffe2 	mov	w2, #0xffff                	// #65535
ffff8000113aa51c:	79016801 	strh	w1, [x0,#180]
ffff8000113aa520:	6b02007f 	cmp	w3, w2
	orig_dev = skb->dev;
ffff8000113aa524:	f9400813 	ldr	x19, [x0,#16]
	if (!skb_transport_header_was_set(skb))
ffff8000113aa528:	54003260 	b.eq	ffff8000113aab74 <__netif_receive_skb_core+0x6dc>
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113aa52c:	79416c02 	ldrh	w2, [x0,#182]
ffff8000113aa530:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa530: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113aa534:	4b020021 	sub	w1, w1, w2
	__this_cpu_inc(softnet_data.processed);
ffff8000113aa538:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa538: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff8000113aa53c:	910002d6 	add	x22, x22, #0x0
			ffff8000113aa53c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113aa540:	910002b5 	add	x21, x21, #0x0
			ffff8000113aa540: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113aa544:	7900f001 	strh	w1, [x0,#120]
	int ret = NET_RX_DROP;
ffff8000113aa548:	52800034 	mov	w20, #0x1                   	// #1
	orig_dev = skb->dev;
ffff8000113aa54c:	aa1303e1 	mov	x1, x19
	bool deliver_exact = false;
ffff8000113aa550:	b90077bf 	str	wzr, [x29,#116]
ffff8000113aa554:	912002d6 	add	x22, x22, #0x800
	__this_cpu_inc(softnet_data.processed);
ffff8000113aa558:	9100a2b5 	add	x21, x21, #0x28
	skb->skb_iif = skb->dev->ifindex;
ffff8000113aa55c:	b9410022 	ldr	w2, [x1,#256]
ffff8000113aa560:	910002e1 	add	x1, x23, #0x0
			ffff8000113aa560: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113aa564:	b9009002 	str	w2, [x0,#144]
ffff8000113aa568:	d538d080 	mrs	x0, tpidr_el1
	__this_cpu_inc(softnet_data.processed);
ffff8000113aa56c:	b8756802 	ldr	w2, [x0,x21]
ffff8000113aa570:	11000442 	add	w2, w2, #0x1
ffff8000113aa574:	b8356802 	str	w2, [x0,x21]
ffff8000113aa578:	b9435820 	ldr	w0, [x1,#856]
	if (static_branch_unlikely(&generic_xdp_needed_key)) {
ffff8000113aa57c:	6b1f001f 	cmp	w0, wzr
ffff8000113aa580:	540039ec 	b.gt	ffff8000113aacbc <__netif_receive_skb_core+0x824>
ffff8000113aa584:	f9403fbc 	ldr	x28, [x29,#120]
	if (skb->protocol == cpu_to_be16(ETH_P_8021Q) ||
ffff8000113aa588:	79416380 	ldrh	w0, [x28,#176]
ffff8000113aa58c:	52951101 	mov	w1, #0xa888                	// #43144
ffff8000113aa590:	6b01001f 	cmp	w0, w1
ffff8000113aa594:	540028e0 	b.eq	ffff8000113aaab0 <__netif_receive_skb_core+0x618>
ffff8000113aa598:	7102041f 	cmp	w0, #0x81
ffff8000113aa59c:	540028a0 	b.eq	ffff8000113aaab0 <__netif_receive_skb_core+0x618>
	if (skb->tc_skip_classify) {
ffff8000113aa5a0:	39420f80 	ldrb	w0, [x28,#131]
ffff8000113aa5a4:	36281a00 	tbz	w0, #5, ffff8000113aa8e4 <__netif_receive_skb_core+0x44c>
		skb->tc_skip_classify = 0;
ffff8000113aa5a8:	121a7800 	and	w0, w0, #0xffffffdf
ffff8000113aa5ac:	39020f80 	strb	w0, [x28,#131]
ffff8000113aa5b0:	d2800018 	mov	x24, #0x0                   	// #0
	if (pfmemalloc && !skb_pfmemalloc_protocol(skb))
ffff8000113aa5b4:	35001ad9 	cbnz	w25, ffff8000113aa90c <__netif_receive_skb_core+0x474>
	if (skb_vlan_tag_present(skb)) {
ffff8000113aa5b8:	39420b80 	ldrb	w0, [x28,#130]
ffff8000113aa5bc:	360014c0 	tbz	w0, #0, ffff8000113aa854 <__netif_receive_skb_core+0x3bc>
		if (pt_prev) {
ffff8000113aa5c0:	b4000378 	cbz	x24, ffff8000113aa62c <__netif_receive_skb_core+0x194>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa5c4:	b400011c 	cbz	x28, ffff8000113aa5e4 <__netif_receive_skb_core+0x14c>
	return skb->head + skb->end;
ffff8000113aa5c8:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa5cc:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa5d0:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa5d4:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa5d8:	36180061 	tbz	w1, #3, ffff8000113aa5e4 <__netif_receive_skb_core+0x14c>
	if (likely(!skb_zcopy(skb)))
ffff8000113aa5dc:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aa5e0:	b50047c0 	cbnz	x0, ffff8000113aaed8 <__netif_receive_skb_core+0xa40>
	refcount_inc(&skb->users);
ffff8000113aa5e4:	91035380 	add	x0, x28, #0xd4
ATOMIC_OPS(add, add, I)
ffff8000113aa5e8:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113aa5ec:	885f7c01 	ldxr	w1, [x0]
ffff8000113aa5f0:	11000422 	add	w2, w1, #0x1
ffff8000113aa5f4:	88037c02 	stxr	w3, w2, [x0]
ffff8000113aa5f8:	35ffffa3 	cbnz	w3, ffff8000113aa5ec <__netif_receive_skb_core+0x154>
	if (unlikely(!old))
ffff8000113aa5fc:	6b1f003f 	cmp	w1, wzr
ffff8000113aa600:	54004b00 	b.eq	ffff8000113aaf60 <__netif_receive_skb_core+0xac8>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aa604:	540034cb 	b.lt	ffff8000113aac9c <__netif_receive_skb_core+0x804>
ffff8000113aa608:	3100043f 	cmn	w1, #0x1
ffff8000113aa60c:	54003484 	b.mi	ffff8000113aac9c <__netif_receive_skb_core+0x804>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aa610:	f9400b04 	ldr	x4, [x24,#16]
ffff8000113aa614:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aa618:	aa1c03e0 	mov	x0, x28
ffff8000113aa61c:	aa1803e2 	mov	x2, x24
ffff8000113aa620:	aa1303e3 	mov	x3, x19
ffff8000113aa624:	d63f0080 	blr	x4
ffff8000113aa628:	2a0003f4 	mov	w20, w0
		if (vlan_do_receive(&skb))
ffff8000113aa62c:	9101e3b8 	add	x24, x29, #0x78
ffff8000113aa630:	aa1803e0 	mov	x0, x24
ffff8000113aa634:	94000000 	bl	0 <vlan_do_receive>
			ffff8000113aa634: R_AARCH64_CALL26	vlan_do_receive
ffff8000113aa638:	53001c00 	uxtb	w0, w0
ffff8000113aa63c:	35001060 	cbnz	w0, ffff8000113aa848 <__netif_receive_skb_core+0x3b0>
		else if (unlikely(!skb))
ffff8000113aa640:	f9403fa5 	ldr	x5, [x29,#120]
ffff8000113aa644:	b4000ea5 	cbz	x5, ffff8000113aa818 <__netif_receive_skb_core+0x380>
	rx_handler = rcu_dereference(skb->dev->rx_handler);
ffff8000113aa648:	f94008a0 	ldr	x0, [x5,#16]
ffff8000113aa64c:	f941a004 	ldr	x4, [x0,#832]
	if (rx_handler) {
ffff8000113aa650:	b5001404 	cbnz	x4, ffff8000113aa8d0 <__netif_receive_skb_core+0x438>
ffff8000113aa654:	394208a0 	ldrb	w0, [x5,#130]
ffff8000113aa658:	aa0503fc 	mov	x28, x5
ffff8000113aa65c:	12000000 	and	w0, w0, #0x1
	if (unlikely(skb_vlan_tag_present(skb))) {
ffff8000113aa660:	35002d20 	cbnz	w0, ffff8000113aac04 <__netif_receive_skb_core+0x76c>
ffff8000113aa664:	d2800018 	mov	x24, #0x0                   	// #0
	if (likely(!deliver_exact)) {
ffff8000113aa668:	b94077a5 	ldr	w5, [x29,#116]
	type = skb->protocol;
ffff8000113aa66c:	79416399 	ldrh	w25, [x28,#176]
	if (likely(!deliver_exact)) {
ffff8000113aa670:	35000625 	cbnz	w5, ffff8000113aa734 <__netif_receive_skb_core+0x29c>
		deliver_ptype_list_skb(skb, &pt_prev, orig_dev, type,
ffff8000113aa674:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa674: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113aa678:	5ac00720 	rev16	w0, w25
ffff8000113aa67c:	910002d6 	add	x22, x22, #0x0
			ffff8000113aa67c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113aa680:	9120c2d6 	add	x22, x22, #0x830
ffff8000113aa684:	d37c0c00 	ubfiz	x0, x0, #4, #4
ffff8000113aa688:	f8606ad5 	ldr	x21, [x22,x0]
ffff8000113aa68c:	8b0002d6 	add	x22, x22, x0
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa690:	eb1502df 	cmp	x22, x21
ffff8000113aa694:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa698:	540004e0 	b.eq	ffff8000113aa734 <__netif_receive_skb_core+0x29c>
	refcount_inc(&skb->users);
ffff8000113aa69c:	91035397 	add	x23, x28, #0xd4
ffff8000113aa6a0:	14000005 	b	ffff8000113aa6b4 <__netif_receive_skb_core+0x21c>
ffff8000113aa6a4:	f9401ab5 	ldr	x21, [x21,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa6a8:	eb1502df 	cmp	x22, x21
ffff8000113aa6ac:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa6b0:	54000400 	b.eq	ffff8000113aa730 <__netif_receive_skb_core+0x298>
		if (ptype->type != type)
ffff8000113aa6b4:	794002a1 	ldrh	w1, [x21]
ffff8000113aa6b8:	6b19003f 	cmp	w1, w25
ffff8000113aa6bc:	54ffff41 	b.ne	ffff8000113aa6a4 <__netif_receive_skb_core+0x20c>
		if (pt_prev)
ffff8000113aa6c0:	b4001798 	cbz	x24, ffff8000113aa9b0 <__netif_receive_skb_core+0x518>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa6c4:	b40000dc 	cbz	x28, ffff8000113aa6dc <__netif_receive_skb_core+0x244>
	return skb->head + skb->end;
ffff8000113aa6c8:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa6cc:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa6d0:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa6d4:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa6d8:	37181601 	tbnz	w1, #3, ffff8000113aa998 <__netif_receive_skb_core+0x500>
ffff8000113aa6dc:	f98002f1 	prfm	pstl1strm, [x23]
ffff8000113aa6e0:	885f7ee0 	ldxr	w0, [x23]
ffff8000113aa6e4:	11000401 	add	w1, w0, #0x1
ffff8000113aa6e8:	88027ee1 	stxr	w2, w1, [x23]
ffff8000113aa6ec:	35ffffa2 	cbnz	w2, ffff8000113aa6e0 <__netif_receive_skb_core+0x248>
	if (unlikely(!old))
ffff8000113aa6f0:	6b1f001f 	cmp	w0, wzr
ffff8000113aa6f4:	54002dc0 	b.eq	ffff8000113aacac <__netif_receive_skb_core+0x814>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aa6f8:	540035cb 	b.lt	ffff8000113aadb0 <__netif_receive_skb_core+0x918>
ffff8000113aa6fc:	3100041f 	cmn	w0, #0x1
ffff8000113aa700:	54003584 	b.mi	ffff8000113aadb0 <__netif_receive_skb_core+0x918>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aa704:	f9400b04 	ldr	x4, [x24,#16]
ffff8000113aa708:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aa70c:	aa1803e2 	mov	x2, x24
ffff8000113aa710:	aa1c03e0 	mov	x0, x28
ffff8000113aa714:	aa1303e3 	mov	x3, x19
ffff8000113aa718:	d63f0080 	blr	x4
ffff8000113aa71c:	aa1503f8 	mov	x24, x21
ffff8000113aa720:	f9401ab5 	ldr	x21, [x21,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa724:	eb1502df 	cmp	x22, x21
ffff8000113aa728:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa72c:	54fffc41 	b.ne	ffff8000113aa6b4 <__netif_receive_skb_core+0x21c>
ffff8000113aa730:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aa734:	f9404e75 	ldr	x21, [x19,#152]
	deliver_ptype_list_skb(skb, &pt_prev, orig_dev, type,
ffff8000113aa738:	91026276 	add	x22, x19, #0x98
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa73c:	eb1502df 	cmp	x22, x21
ffff8000113aa740:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa744:	540004e0 	b.eq	ffff8000113aa7e0 <__netif_receive_skb_core+0x348>
	refcount_inc(&skb->users);
ffff8000113aa748:	91035397 	add	x23, x28, #0xd4
ffff8000113aa74c:	14000005 	b	ffff8000113aa760 <__netif_receive_skb_core+0x2c8>
ffff8000113aa750:	f9401ab5 	ldr	x21, [x21,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa754:	eb1502df 	cmp	x22, x21
ffff8000113aa758:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa75c:	54000400 	b.eq	ffff8000113aa7dc <__netif_receive_skb_core+0x344>
		if (ptype->type != type)
ffff8000113aa760:	794002a1 	ldrh	w1, [x21]
ffff8000113aa764:	6b19003f 	cmp	w1, w25
ffff8000113aa768:	54ffff41 	b.ne	ffff8000113aa750 <__netif_receive_skb_core+0x2b8>
		if (pt_prev)
ffff8000113aa76c:	b4001138 	cbz	x24, ffff8000113aa990 <__netif_receive_skb_core+0x4f8>
ffff8000113aa770:	b40000dc 	cbz	x28, ffff8000113aa788 <__netif_receive_skb_core+0x2f0>
	return skb->head + skb->end;
ffff8000113aa774:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa778:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa77c:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa780:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa784:	37180fa1 	tbnz	w1, #3, ffff8000113aa978 <__netif_receive_skb_core+0x4e0>
ffff8000113aa788:	f98002f1 	prfm	pstl1strm, [x23]
ffff8000113aa78c:	885f7ee0 	ldxr	w0, [x23]
ffff8000113aa790:	11000401 	add	w1, w0, #0x1
ffff8000113aa794:	88027ee1 	stxr	w2, w1, [x23]
ffff8000113aa798:	35ffffa2 	cbnz	w2, ffff8000113aa78c <__netif_receive_skb_core+0x2f4>
	if (unlikely(!old))
ffff8000113aa79c:	6b1f001f 	cmp	w0, wzr
ffff8000113aa7a0:	54002f60 	b.eq	ffff8000113aad8c <__netif_receive_skb_core+0x8f4>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aa7a4:	54002ecb 	b.lt	ffff8000113aad7c <__netif_receive_skb_core+0x8e4>
ffff8000113aa7a8:	3100041f 	cmn	w0, #0x1
ffff8000113aa7ac:	54002e84 	b.mi	ffff8000113aad7c <__netif_receive_skb_core+0x8e4>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aa7b0:	f9400b04 	ldr	x4, [x24,#16]
ffff8000113aa7b4:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aa7b8:	aa1803e2 	mov	x2, x24
ffff8000113aa7bc:	aa1c03e0 	mov	x0, x28
ffff8000113aa7c0:	aa1303e3 	mov	x3, x19
ffff8000113aa7c4:	d63f0080 	blr	x4
ffff8000113aa7c8:	aa1503f8 	mov	x24, x21
ffff8000113aa7cc:	f9401ab5 	ldr	x21, [x21,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aa7d0:	eb1502df 	cmp	x22, x21
ffff8000113aa7d4:	d100c2b5 	sub	x21, x21, #0x30
ffff8000113aa7d8:	54fffc41 	b.ne	ffff8000113aa760 <__netif_receive_skb_core+0x2c8>
ffff8000113aa7dc:	f9403fbc 	ldr	x28, [x29,#120]
	if (unlikely(skb->dev != orig_dev)) {
ffff8000113aa7e0:	f9400b97 	ldr	x23, [x28,#16]
ffff8000113aa7e4:	eb17027f 	cmp	x19, x23
ffff8000113aa7e8:	54003c21 	b.ne	ffff8000113aaf6c <__netif_receive_skb_core+0xad4>
	if (pt_prev) {
ffff8000113aa7ec:	b4000a18 	cbz	x24, ffff8000113aa92c <__netif_receive_skb_core+0x494>
ffff8000113aa7f0:	b400011c 	cbz	x28, ffff8000113aa810 <__netif_receive_skb_core+0x378>
	return skb->head + skb->end;
ffff8000113aa7f4:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa7f8:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa7fc:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa800:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa804:	36180061 	tbz	w1, #3, ffff8000113aa810 <__netif_receive_skb_core+0x378>
	if (likely(!skb_zcopy(skb)))
ffff8000113aa808:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aa80c:	b50039e0 	cbnz	x0, ffff8000113aaf48 <__netif_receive_skb_core+0xab0>
		*ppt_prev = pt_prev;
ffff8000113aa810:	f94037a5 	ldr	x5, [x29,#104]
ffff8000113aa814:	f90000b8 	str	x24, [x5]
	return ret;
ffff8000113aa818:	2a1403e0 	mov	w0, w20
}
ffff8000113aa81c:	f9405fa2 	ldr	x2, [x29,#184]
ffff8000113aa820:	f9400341 	ldr	x1, [x26]
			ffff8000113aa820: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113aa824:	eb01005f 	cmp	x2, x1
ffff8000113aa828:	54002401 	b.ne	ffff8000113aaca8 <__netif_receive_skb_core+0x810>
ffff8000113aa82c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aa830:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aa834:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113aa838:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113aa83c:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113aa840:	a8cc7bfd 	ldp	x29, x30, [sp],#192
ffff8000113aa844:	d65f03c0 	ret
ffff8000113aa848:	f9403fa0 	ldr	x0, [x29,#120]
ffff8000113aa84c:	f9400801 	ldr	x1, [x0,#16]
ffff8000113aa850:	17ffff43 	b	ffff8000113aa55c <__netif_receive_skb_core+0xc4>
	rx_handler = rcu_dereference(skb->dev->rx_handler);
ffff8000113aa854:	f9400b80 	ldr	x0, [x28,#16]
ffff8000113aa858:	f941a004 	ldr	x4, [x0,#832]
	if (rx_handler) {
ffff8000113aa85c:	b4fff064 	cbz	x4, ffff8000113aa668 <__netif_receive_skb_core+0x1d0>
		if (pt_prev) {
ffff8000113aa860:	b40010d8 	cbz	x24, ffff8000113aaa78 <__netif_receive_skb_core+0x5e0>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa864:	b40000dc 	cbz	x28, ffff8000113aa87c <__netif_receive_skb_core+0x3e4>
	return skb->head + skb->end;
ffff8000113aa868:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa86c:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa870:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa874:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa878:	37180ee1 	tbnz	w1, #3, ffff8000113aaa54 <__netif_receive_skb_core+0x5bc>
	refcount_inc(&skb->users);
ffff8000113aa87c:	91035380 	add	x0, x28, #0xd4
ffff8000113aa880:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113aa884:	885f7c01 	ldxr	w1, [x0]
ffff8000113aa888:	11000422 	add	w2, w1, #0x1
ffff8000113aa88c:	88037c02 	stxr	w3, w2, [x0]
ffff8000113aa890:	35ffffa3 	cbnz	w3, ffff8000113aa884 <__netif_receive_skb_core+0x3ec>
	if (unlikely(!old))
ffff8000113aa894:	6b1f003f 	cmp	w1, wzr
ffff8000113aa898:	54003e40 	b.eq	ffff8000113ab060 <__netif_receive_skb_core+0xbc8>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aa89c:	5400280b 	b.lt	ffff8000113aad9c <__netif_receive_skb_core+0x904>
ffff8000113aa8a0:	3100043f 	cmn	w1, #0x1
ffff8000113aa8a4:	540027c4 	b.mi	ffff8000113aad9c <__netif_receive_skb_core+0x904>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aa8a8:	f9400b05 	ldr	x5, [x24,#16]
ffff8000113aa8ac:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aa8b0:	aa1803e2 	mov	x2, x24
ffff8000113aa8b4:	f90033a4 	str	x4, [x29,#96]
ffff8000113aa8b8:	aa1c03e0 	mov	x0, x28
ffff8000113aa8bc:	aa1303e3 	mov	x3, x19
ffff8000113aa8c0:	d63f00a0 	blr	x5
ffff8000113aa8c4:	f94033a4 	ldr	x4, [x29,#96]
ffff8000113aa8c8:	2a0003f4 	mov	w20, w0
ffff8000113aa8cc:	9101e3b8 	add	x24, x29, #0x78
		switch (rx_handler(&skb)) {
ffff8000113aa8d0:	aa1803e0 	mov	x0, x24
ffff8000113aa8d4:	d63f0080 	blr	x4
ffff8000113aa8d8:	71000c1f 	cmp	w0, #0x3
ffff8000113aa8dc:	54000429 	b.ls	ffff8000113aa960 <__netif_receive_skb_core+0x4c8>
			BUG();
ffff8000113aa8e0:	d4210000 	brk	#0x800
ffff8000113aa8e4:	d2800018 	mov	x24, #0x0                   	// #0
	if (pfmemalloc)
ffff8000113aa8e8:	34000699 	cbz	w25, ffff8000113aa9b8 <__netif_receive_skb_core+0x520>
ffff8000113aa8ec:	910002e0 	add	x0, x23, #0x0
			ffff8000113aa8ec: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113aa8f0:	b9433800 	ldr	w0, [x0,#824]
	if (static_branch_unlikely(&ingress_needed_key)) {
ffff8000113aa8f4:	6b1f001f 	cmp	w0, wzr
ffff8000113aa8f8:	5400264c 	b.gt	ffff8000113aadc0 <__netif_receive_skb_core+0x928>
}

static inline void skb_reset_redirect(struct sk_buff *skb)
{
#ifdef CONFIG_NET_REDIRECT
	skb->redirected = 0;
ffff8000113aa8fc:	39420f80 	ldrb	w0, [x28,#131]
ffff8000113aa900:	12001800 	and	w0, w0, #0x7f
ffff8000113aa904:	39020f80 	strb	w0, [x28,#131]
	if (pfmemalloc && !skb_pfmemalloc_protocol(skb))
ffff8000113aa908:	34ffe599 	cbz	w25, ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
	switch (skb->protocol) {
ffff8000113aa90c:	79416380 	ldrh	w0, [x28,#176]
ffff8000113aa910:	7118201f 	cmp	w0, #0x608
ffff8000113aa914:	54ffe520 	b.eq	ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
ffff8000113aa918:	54001408 	b.hi	ffff8000113aab98 <__netif_receive_skb_core+0x700>
ffff8000113aa91c:	7100201f 	cmp	w0, #0x8
ffff8000113aa920:	54ffe4c0 	b.eq	ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
ffff8000113aa924:	7102041f 	cmp	w0, #0x81
ffff8000113aa928:	54ffe480 	b.eq	ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
		if (!deliver_exact)
ffff8000113aa92c:	b94077a5 	ldr	w5, [x29,#116]
			atomic_long_inc(&skb->dev->rx_dropped);
ffff8000113aa930:	f9400b80 	ldr	x0, [x28,#16]
		if (!deliver_exact)
ffff8000113aa934:	35001245 	cbnz	w5, ffff8000113aab7c <__netif_receive_skb_core+0x6e4>
ATOMIC64_OPS(add, add, I)
ffff8000113aa938:	91070006 	add	x6, x0, #0x1c0
ffff8000113aa93c:	f98000d1 	prfm	pstl1strm, [x6]
ffff8000113aa940:	c85f7cc1 	ldxr	x1, [x6]
ffff8000113aa944:	91000421 	add	x1, x1, #0x1
ffff8000113aa948:	c8027cc1 	stxr	w2, x1, [x6]
ffff8000113aa94c:	35ffffa2 	cbnz	w2, ffff8000113aa940 <__netif_receive_skb_core+0x4a8>
		kfree_skb(skb);
ffff8000113aa950:	f9403fa0 	ldr	x0, [x29,#120]
		ret = NET_RX_DROP;
ffff8000113aa954:	52800034 	mov	w20, #0x1                   	// #1
		kfree_skb(skb);
ffff8000113aa958:	94000000 	bl	0 <kfree_skb>
			ffff8000113aa958: R_AARCH64_CALL26	kfree_skb
ffff8000113aa95c:	17ffffaf 	b	ffff8000113aa818 <__netif_receive_skb_core+0x380>
		switch (rx_handler(&skb)) {
ffff8000113aa960:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aa960: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x20
ffff8000113aa964:	91000021 	add	x1, x1, #0x0
			ffff8000113aa964: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x20
ffff8000113aa968:	38604823 	ldrb	w3, [x1,w0,uxtw]
ffff8000113aa96c:	10000064 	adr	x4, ffff8000113aa978 <__netif_receive_skb_core+0x4e0>
ffff8000113aa970:	8b238883 	add	x3, x4, w3, sxtb #2
ffff8000113aa974:	d61f0060 	br	x3
	if (likely(!skb_zcopy(skb)))
ffff8000113aa978:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aa97c:	b4fff060 	cbz	x0, ffff8000113aa788 <__netif_receive_skb_core+0x2f0>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aa980:	aa1c03e0 	mov	x0, x28
ffff8000113aa984:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aa988:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aa988: R_AARCH64_CALL26	skb_copy_ubufs
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aa98c:	34ffefe0 	cbz	w0, ffff8000113aa788 <__netif_receive_skb_core+0x2f0>
ffff8000113aa990:	aa1503f8 	mov	x24, x21
ffff8000113aa994:	17ffff6f 	b	ffff8000113aa750 <__netif_receive_skb_core+0x2b8>
	if (likely(!skb_zcopy(skb)))
ffff8000113aa998:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aa99c:	b4ffea00 	cbz	x0, ffff8000113aa6dc <__netif_receive_skb_core+0x244>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aa9a0:	aa1c03e0 	mov	x0, x28
ffff8000113aa9a4:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aa9a8:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aa9a8: R_AARCH64_CALL26	skb_copy_ubufs
ffff8000113aa9ac:	34ffe980 	cbz	w0, ffff8000113aa6dc <__netif_receive_skb_core+0x244>
ffff8000113aa9b0:	aa1503f8 	mov	x24, x21
ffff8000113aa9b4:	17ffff3c 	b	ffff8000113aa6a4 <__netif_receive_skb_core+0x20c>
ffff8000113aa9b8:	f94002c4 	ldr	x4, [x22]
	list_for_each_entry_rcu(ptype, &ptype_all, list) {
ffff8000113aa9bc:	eb0402df 	cmp	x22, x4
ffff8000113aa9c0:	d100c09b 	sub	x27, x4, #0x30
ffff8000113aa9c4:	54000820 	b.eq	ffff8000113aaac8 <__netif_receive_skb_core+0x630>
ffff8000113aa9c8:	aa1803e2 	mov	x2, x24
		if (pt_prev)
ffff8000113aa9cc:	b4000362 	cbz	x2, ffff8000113aaa38 <__netif_receive_skb_core+0x5a0>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa9d0:	b400011c 	cbz	x28, ffff8000113aa9f0 <__netif_receive_skb_core+0x558>
	return skb->head + skb->end;
ffff8000113aa9d4:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aa9d8:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aa9dc:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aa9e0:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aa9e4:	36180061 	tbz	w1, #3, ffff8000113aa9f0 <__netif_receive_skb_core+0x558>
	if (likely(!skb_zcopy(skb)))
ffff8000113aa9e8:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aa9ec:	b50012c0 	cbnz	x0, ffff8000113aac44 <__netif_receive_skb_core+0x7ac>
	refcount_inc(&skb->users);
ffff8000113aa9f0:	91035380 	add	x0, x28, #0xd4
ATOMIC_OPS(add, add, I)
ffff8000113aa9f4:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113aa9f8:	885f7c01 	ldxr	w1, [x0]
ffff8000113aa9fc:	11000423 	add	w3, w1, #0x1
ffff8000113aaa00:	88067c03 	stxr	w6, w3, [x0]
ffff8000113aaa04:	35ffffa6 	cbnz	w6, ffff8000113aa9f8 <__netif_receive_skb_core+0x560>
	if (unlikely(!old))
ffff8000113aaa08:	6b1f003f 	cmp	w1, wzr
ffff8000113aaa0c:	540013e0 	b.eq	ffff8000113aac88 <__netif_receive_skb_core+0x7f0>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aaa10:	5400110b 	b.lt	ffff8000113aac30 <__netif_receive_skb_core+0x798>
ffff8000113aaa14:	3100043f 	cmn	w1, #0x1
ffff8000113aaa18:	540010c4 	b.mi	ffff8000113aac30 <__netif_receive_skb_core+0x798>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aaa1c:	f9400845 	ldr	x5, [x2,#16]
ffff8000113aaa20:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aaa24:	aa1c03e0 	mov	x0, x28
ffff8000113aaa28:	aa1303e3 	mov	x3, x19
ffff8000113aaa2c:	d63f00a0 	blr	x5
ffff8000113aaa30:	2a0003f4 	mov	w20, w0
ffff8000113aaa34:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aaa38:	f9401b60 	ldr	x0, [x27,#48]
	list_for_each_entry_rcu(ptype, &ptype_all, list) {
ffff8000113aaa3c:	eb0002df 	cmp	x22, x0
ffff8000113aaa40:	d100c000 	sub	x0, x0, #0x30
ffff8000113aaa44:	54000440 	b.eq	ffff8000113aaacc <__netif_receive_skb_core+0x634>
ffff8000113aaa48:	aa1b03e2 	mov	x2, x27
ffff8000113aaa4c:	aa0003fb 	mov	x27, x0
ffff8000113aaa50:	17ffffdf 	b	ffff8000113aa9cc <__netif_receive_skb_core+0x534>
ffff8000113aaa54:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aaa58:	b4fff120 	cbz	x0, ffff8000113aa87c <__netif_receive_skb_core+0x3e4>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aaa5c:	aa1c03e0 	mov	x0, x28
ffff8000113aaa60:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aaa64:	f90033a4 	str	x4, [x29,#96]
ffff8000113aaa68:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aaa68: R_AARCH64_CALL26	skb_copy_ubufs
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aaa6c:	f94033a4 	ldr	x4, [x29,#96]
		return -ENOMEM;
ffff8000113aaa70:	12800174 	mov	w20, #0xfffffff4            	// #-12
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aaa74:	34fff040 	cbz	w0, ffff8000113aa87c <__netif_receive_skb_core+0x3e4>
ffff8000113aaa78:	9101e3b8 	add	x24, x29, #0x78
ffff8000113aaa7c:	17ffff95 	b	ffff8000113aa8d0 <__netif_receive_skb_core+0x438>
			ret = NET_RX_SUCCESS;
ffff8000113aaa80:	52800014 	mov	w20, #0x0                   	// #0
ffff8000113aaa84:	17ffff65 	b	ffff8000113aa818 <__netif_receive_skb_core+0x380>
ffff8000113aaa88:	f9403fbc 	ldr	x28, [x29,#120]
			deliver_exact = true;
ffff8000113aaa8c:	52800025 	mov	w5, #0x1                   	// #1
ffff8000113aaa90:	39420b80 	ldrb	w0, [x28,#130]
ffff8000113aaa94:	b90077a5 	str	w5, [x29,#116]
ffff8000113aaa98:	0a050000 	and	w0, w0, w5
ffff8000113aaa9c:	17fffef1 	b	ffff8000113aa660 <__netif_receive_skb_core+0x1c8>
ffff8000113aaaa0:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aaaa4:	39420b80 	ldrb	w0, [x28,#130]
ffff8000113aaaa8:	12000000 	and	w0, w0, #0x1
ffff8000113aaaac:	17fffeed 	b	ffff8000113aa660 <__netif_receive_skb_core+0x1c8>
		skb = skb_vlan_untag(skb);
ffff8000113aaab0:	aa1c03e0 	mov	x0, x28
ffff8000113aaab4:	94000000 	bl	0 <skb_vlan_untag>
			ffff8000113aaab4: R_AARCH64_CALL26	skb_vlan_untag
ffff8000113aaab8:	f9003fa0 	str	x0, [x29,#120]
		if (unlikely(!skb))
ffff8000113aaabc:	b4ffeae0 	cbz	x0, ffff8000113aa818 <__netif_receive_skb_core+0x380>
ffff8000113aaac0:	aa0003fc 	mov	x28, x0
ffff8000113aaac4:	17fffeb7 	b	ffff8000113aa5a0 <__netif_receive_skb_core+0x108>
	list_for_each_entry_rcu(ptype, &ptype_all, list) {
ffff8000113aaac8:	aa1803fb 	mov	x27, x24
ffff8000113aaacc:	f9400b80 	ldr	x0, [x28,#16]
ffff8000113aaad0:	f8488c18 	ldr	x24, [x0,#136]!
	list_for_each_entry_rcu(ptype, &skb->dev->ptype_all, list) {
ffff8000113aaad4:	eb00031f 	cmp	x24, x0
ffff8000113aaad8:	d100c318 	sub	x24, x24, #0x30
ffff8000113aaadc:	540006c0 	b.eq	ffff8000113aabb4 <__netif_receive_skb_core+0x71c>
		if (pt_prev)
ffff8000113aaae0:	b400037b 	cbz	x27, ffff8000113aab4c <__netif_receive_skb_core+0x6b4>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aaae4:	b400011c 	cbz	x28, ffff8000113aab04 <__netif_receive_skb_core+0x66c>
	return skb->head + skb->end;
ffff8000113aaae8:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aaaec:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aaaf0:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aaaf4:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aaaf8:	36180061 	tbz	w1, #3, ffff8000113aab04 <__netif_receive_skb_core+0x66c>
	if (likely(!skb_zcopy(skb)))
ffff8000113aaafc:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aab00:	b5000b80 	cbnz	x0, ffff8000113aac70 <__netif_receive_skb_core+0x7d8>
	refcount_inc(&skb->users);
ffff8000113aab04:	91035380 	add	x0, x28, #0xd4
ffff8000113aab08:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113aab0c:	885f7c01 	ldxr	w1, [x0]
ffff8000113aab10:	11000422 	add	w2, w1, #0x1
ffff8000113aab14:	88037c02 	stxr	w3, w2, [x0]
ffff8000113aab18:	35ffffa3 	cbnz	w3, ffff8000113aab0c <__netif_receive_skb_core+0x674>
	if (unlikely(!old))
ffff8000113aab1c:	6b1f003f 	cmp	w1, wzr
ffff8000113aab20:	54000a20 	b.eq	ffff8000113aac64 <__netif_receive_skb_core+0x7cc>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aab24:	5400080b 	b.lt	ffff8000113aac24 <__netif_receive_skb_core+0x78c>
ffff8000113aab28:	3100043f 	cmn	w1, #0x1
ffff8000113aab2c:	540007c4 	b.mi	ffff8000113aac24 <__netif_receive_skb_core+0x78c>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aab30:	f9400b65 	ldr	x5, [x27,#16]
ffff8000113aab34:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aab38:	aa1c03e0 	mov	x0, x28
ffff8000113aab3c:	aa1b03e2 	mov	x2, x27
ffff8000113aab40:	aa1303e3 	mov	x3, x19
ffff8000113aab44:	d63f00a0 	blr	x5
ffff8000113aab48:	2a0003f4 	mov	w20, w0
	list_for_each_entry_rcu(ptype, &skb->dev->ptype_all, list) {
ffff8000113aab4c:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aab50:	f9401b00 	ldr	x0, [x24,#48]
ffff8000113aab54:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aab58:	d100c002 	sub	x2, x0, #0x30
ffff8000113aab5c:	91022021 	add	x1, x1, #0x88
ffff8000113aab60:	eb01001f 	cmp	x0, x1
ffff8000113aab64:	54ffec40 	b.eq	ffff8000113aa8ec <__netif_receive_skb_core+0x454>
ffff8000113aab68:	aa1803fb 	mov	x27, x24
ffff8000113aab6c:	aa0203f8 	mov	x24, x2
ffff8000113aab70:	17ffffdc 	b	ffff8000113aaae0 <__netif_receive_skb_core+0x648>
	skb->transport_header = skb->data - skb->head;
ffff8000113aab74:	79016401 	strh	w1, [x0,#178]
ffff8000113aab78:	17fffe6d 	b	ffff8000113aa52c <__netif_receive_skb_core+0x94>
ATOMIC64_OPS(add, add, I)
ffff8000113aab7c:	91074004 	add	x4, x0, #0x1d0
ffff8000113aab80:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113aab84:	c85f7c81 	ldxr	x1, [x4]
ffff8000113aab88:	91000421 	add	x1, x1, #0x1
ffff8000113aab8c:	c8027c81 	stxr	w2, x1, [x4]
ffff8000113aab90:	35ffffa2 	cbnz	w2, ffff8000113aab84 <__netif_receive_skb_core+0x6ec>
ffff8000113aab94:	17ffff6f 	b	ffff8000113aa950 <__netif_receive_skb_core+0x4b8>
	switch (skb->protocol) {
ffff8000113aab98:	52951101 	mov	w1, #0xa888                	// #43144
ffff8000113aab9c:	6b01001f 	cmp	w0, w1
ffff8000113aaba0:	54ffd0c0 	b.eq	ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
ffff8000113aaba4:	529bb0c1 	mov	w1, #0xdd86                	// #56710
ffff8000113aaba8:	6b01001f 	cmp	w0, w1
ffff8000113aabac:	54ffec01 	b.ne	ffff8000113aa92c <__netif_receive_skb_core+0x494>
ffff8000113aabb0:	17fffe82 	b	ffff8000113aa5b8 <__netif_receive_skb_core+0x120>
	list_for_each_entry_rcu(ptype, &skb->dev->ptype_all, list) {
ffff8000113aabb4:	aa1b03f8 	mov	x24, x27
ffff8000113aabb8:	17ffff4d 	b	ffff8000113aa8ec <__netif_receive_skb_core+0x454>
		} else if (skb->protocol == cpu_to_be16(ETH_P_8021Q) ||
ffff8000113aabbc:	79416380 	ldrh	w0, [x28,#176]
ffff8000113aabc0:	52951106 	mov	w6, #0xa888                	// #43144
ffff8000113aabc4:	6b06001f 	cmp	w0, w6
ffff8000113aabc8:	54002301 	b.ne	ffff8000113ab028 <__netif_receive_skb_core+0xb90>
	skb->vlan_present = 0;
ffff8000113aabcc:	39420b81 	ldrb	w1, [x28,#130]
			skb = skb_vlan_untag(skb);
ffff8000113aabd0:	aa1c03e0 	mov	x0, x28
ffff8000113aabd4:	121f7821 	and	w1, w1, #0xfffffffe
ffff8000113aabd8:	39020b81 	strb	w1, [x28,#130]
ffff8000113aabdc:	94000000 	bl	0 <skb_vlan_untag>
			ffff8000113aabdc: R_AARCH64_CALL26	skb_vlan_untag
ffff8000113aabe0:	f9003fa0 	str	x0, [x29,#120]
			if (unlikely(!skb))
ffff8000113aabe4:	b4ffe1a0 	cbz	x0, ffff8000113aa818 <__netif_receive_skb_core+0x380>
			if (vlan_do_receive(&skb))
ffff8000113aabe8:	aa1803e0 	mov	x0, x24
ffff8000113aabec:	94000000 	bl	0 <vlan_do_receive>
			ffff8000113aabec: R_AARCH64_CALL26	vlan_do_receive
ffff8000113aabf0:	53001c00 	uxtb	w0, w0
ffff8000113aabf4:	35ffe2a0 	cbnz	w0, ffff8000113aa848 <__netif_receive_skb_core+0x3b0>
			else if (unlikely(!skb))
ffff8000113aabf8:	f9403fa5 	ldr	x5, [x29,#120]
ffff8000113aabfc:	b4ffe0e5 	cbz	x5, ffff8000113aa818 <__netif_receive_skb_core+0x380>
ffff8000113aac00:	aa0503fc 	mov	x28, x5
		if (skb_vlan_tag_get_id(skb)) {
ffff8000113aac04:	79413780 	ldrh	w0, [x28,#154]
ffff8000113aac08:	12002c00 	and	w0, w0, #0xfff
ffff8000113aac0c:	34fffd80 	cbz	w0, ffff8000113aabbc <__netif_receive_skb_core+0x724>
			skb->pkt_type = PACKET_OTHERHOST;
ffff8000113aac10:	39420380 	ldrb	w0, [x28,#128]
ffff8000113aac14:	52800061 	mov	w1, #0x3                   	// #3
ffff8000113aac18:	33000820 	bfxil	w0, w1, #0, #3
ffff8000113aac1c:	39020380 	strb	w0, [x28,#128]
ffff8000113aac20:	14000104 	b	ffff8000113ab030 <__netif_receive_skb_core+0xb98>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113aac24:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aac28:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aac28: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aac2c:	17ffffc1 	b	ffff8000113aab30 <__netif_receive_skb_core+0x698>
ffff8000113aac30:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aac34:	f90033a2 	str	x2, [x29,#96]
ffff8000113aac38:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aac38: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aac3c:	f94033a2 	ldr	x2, [x29,#96]
ffff8000113aac40:	17ffff77 	b	ffff8000113aaa1c <__netif_receive_skb_core+0x584>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aac44:	aa1c03e0 	mov	x0, x28
ffff8000113aac48:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aac4c:	f90033a2 	str	x2, [x29,#96]
ffff8000113aac50:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aac50: R_AARCH64_CALL26	skb_copy_ubufs
		return -ENOMEM;
ffff8000113aac54:	12800174 	mov	w20, #0xfffffff4            	// #-12
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aac58:	f94033a2 	ldr	x2, [x29,#96]
ffff8000113aac5c:	35ffeec0 	cbnz	w0, ffff8000113aaa34 <__netif_receive_skb_core+0x59c>
ffff8000113aac60:	17ffff64 	b	ffff8000113aa9f0 <__netif_receive_skb_core+0x558>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113aac64:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113aac68:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aac68: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aac6c:	17ffffb1 	b	ffff8000113aab30 <__netif_receive_skb_core+0x698>
ffff8000113aac70:	aa1c03e0 	mov	x0, x28
ffff8000113aac74:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aac78:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aac78: R_AARCH64_CALL26	skb_copy_ubufs
		return -ENOMEM;
ffff8000113aac7c:	12800174 	mov	w20, #0xfffffff4            	// #-12
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aac80:	35fff660 	cbnz	w0, ffff8000113aab4c <__netif_receive_skb_core+0x6b4>
ffff8000113aac84:	17ffffa0 	b	ffff8000113aab04 <__netif_receive_skb_core+0x66c>
ffff8000113aac88:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113aac8c:	f90033a2 	str	x2, [x29,#96]
ffff8000113aac90:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aac90: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aac94:	f94033a2 	ldr	x2, [x29,#96]
ffff8000113aac98:	17ffff61 	b	ffff8000113aaa1c <__netif_receive_skb_core+0x584>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113aac9c:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aaca0:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aaca0: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aaca4:	17fffe5b 	b	ffff8000113aa610 <__netif_receive_skb_core+0x178>
}
ffff8000113aaca8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113aaca8: R_AARCH64_CALL26	__stack_chk_fail
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113aacac:	aa1703e0 	mov	x0, x23
ffff8000113aacb0:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113aacb4:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aacb4: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aacb8:	17fffe93 	b	ffff8000113aa704 <__netif_receive_skb_core+0x26c>
		ret2 = do_xdp_generic(rcu_dereference(skb->dev->xdp_prog), skb);
ffff8000113aacbc:	f9403fa1 	ldr	x1, [x29,#120]
ffff8000113aacc0:	f9400820 	ldr	x0, [x1,#16]
ffff8000113aacc4:	f9419800 	ldr	x0, [x0,#816]
	if (xdp_prog) {
ffff8000113aacc8:	b4001c20 	cbz	x0, ffff8000113ab04c <__netif_receive_skb_core+0xbb4>
ffff8000113aaccc:	97fffcb4 	bl	ffff8000113a9f9c <do_xdp_generic.part.132>
		if (ret2 != XDP_PASS)
ffff8000113aacd0:	7100081f 	cmp	w0, #0x2
ffff8000113aacd4:	54001b81 	b.ne	ffff8000113ab044 <__netif_receive_skb_core+0xbac>
		skb_reset_mac_len(skb);
ffff8000113aacd8:	f9403fa0 	ldr	x0, [x29,#120]
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113aacdc:	79416802 	ldrh	w2, [x0,#180]
ffff8000113aace0:	79416c01 	ldrh	w1, [x0,#182]
ffff8000113aace4:	aa0003fc 	mov	x28, x0
ffff8000113aace8:	4b010041 	sub	w1, w2, w1
ffff8000113aacec:	7900f001 	strh	w1, [x0,#120]
ffff8000113aacf0:	17fffe26 	b	ffff8000113aa588 <__netif_receive_skb_core+0xf0>
DEFINE_EVENT(net_dev_template, netif_receive_skb,
ffff8000113aacf4:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113aacf4: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113aacf8:	91000000 	add	x0, x0, #0x0
			ffff8000113aacf8: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113aacfc:	d538d082 	mrs	x2, tpidr_el1
ffff8000113aad00:	b8606842 	ldr	w2, [x2,x0]
ffff8000113aad04:	90000000 	adrp	x0, 0 <__cpu_online_mask>
			ffff8000113aad04: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113aad08:	1100fc43 	add	w3, w2, #0x3f
ffff8000113aad0c:	6b1f005f 	cmp	w2, wzr
ffff8000113aad10:	1a82b063 	csel	w3, w3, w2, lt
ffff8000113aad14:	13067c63 	asr	w3, w3, #6
ffff8000113aad18:	91000000 	add	x0, x0, #0x0
			ffff8000113aad18: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113aad1c:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113aad20:	f8606863 	ldr	x3, [x3,x0]
ffff8000113aad24:	aa1403e0 	mov	x0, x20
ffff8000113aad28:	9ac22462 	lsr	x2, x3, x2
ffff8000113aad2c:	3607bec2 	tbz	w2, #0, ffff8000113aa504 <__netif_receive_skb_core+0x6c>
ffff8000113aad30:	f9401033 	ldr	x19, [x1,#32]
ffff8000113aad34:	b40000f3 	cbz	x19, ffff8000113aad50 <__netif_receive_skb_core+0x8b8>
ffff8000113aad38:	f9400262 	ldr	x2, [x19]
ffff8000113aad3c:	f9400660 	ldr	x0, [x19,#8]
ffff8000113aad40:	aa1403e1 	mov	x1, x20
ffff8000113aad44:	d63f0040 	blr	x2
ffff8000113aad48:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113aad4c:	b5ffff82 	cbnz	x2, ffff8000113aad3c <__netif_receive_skb_core+0x8a4>
ffff8000113aad50:	f9403fa0 	ldr	x0, [x29,#120]
ffff8000113aad54:	17fffdec 	b	ffff8000113aa504 <__netif_receive_skb_core+0x6c>
	net_timestamp_check(!netdev_tstamp_prequeue, skb);
ffff8000113aad58:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aad58: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly+0x94c
ffff8000113aad5c:	b9400000 	ldr	w0, [x0]
			ffff8000113aad5c: R_AARCH64_LDST32_ABS_LO12_NC	.data..read_mostly+0x94c
ffff8000113aad60:	35ffbc60 	cbnz	w0, ffff8000113aa4ec <__netif_receive_skb_core+0x54>
ffff8000113aad64:	f9401280 	ldr	x0, [x20,#32]
ffff8000113aad68:	b5ffbc20 	cbnz	x0, ffff8000113aa4ec <__netif_receive_skb_core+0x54>
ffff8000113aad6c:	94000000 	bl	0 <ktime_get_with_offset>
			ffff8000113aad6c: R_AARCH64_CALL26	ktime_get_with_offset
	skb->tstamp = ktime_get_real();
ffff8000113aad70:	f9001280 	str	x0, [x20,#32]
ffff8000113aad74:	f9403fb4 	ldr	x20, [x29,#120]
ffff8000113aad78:	17fffddd 	b	ffff8000113aa4ec <__netif_receive_skb_core+0x54>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113aad7c:	aa1703e0 	mov	x0, x23
ffff8000113aad80:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aad84:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aad84: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aad88:	17fffe8a 	b	ffff8000113aa7b0 <__netif_receive_skb_core+0x318>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113aad8c:	aa1703e0 	mov	x0, x23
ffff8000113aad90:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113aad94:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aad94: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aad98:	17fffe86 	b	ffff8000113aa7b0 <__netif_receive_skb_core+0x318>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113aad9c:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aada0:	f90033a4 	str	x4, [x29,#96]
ffff8000113aada4:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aada4: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aada8:	f94033a4 	ldr	x4, [x29,#96]
ffff8000113aadac:	17fffebf 	b	ffff8000113aa8a8 <__netif_receive_skb_core+0x410>
ffff8000113aadb0:	aa1703e0 	mov	x0, x23
ffff8000113aadb4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aadb8:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aadb8: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aadbc:	17fffe52 	b	ffff8000113aa704 <__netif_receive_skb_core+0x26c>
	struct mini_Qdisc *miniq = rcu_dereference_bh(skb->dev->miniq_ingress);
ffff8000113aadc0:	f9400b80 	ldr	x0, [x28,#16]
ffff8000113aadc4:	f941a806 	ldr	x6, [x0,#848]
	if (!miniq)
ffff8000113aadc8:	b4000466 	cbz	x6, ffff8000113aae54 <__netif_receive_skb_core+0x9bc>
	if (*pt_prev) {
ffff8000113aadcc:	b4000118 	cbz	x24, ffff8000113aadec <__netif_receive_skb_core+0x954>
		*ret = deliver_skb(skb, *pt_prev, orig_dev);
ffff8000113aadd0:	aa1c03e0 	mov	x0, x28
ffff8000113aadd4:	aa1803e1 	mov	x1, x24
ffff8000113aadd8:	aa1303e2 	mov	x2, x19
ffff8000113aaddc:	f90033a6 	str	x6, [x29,#96]
ffff8000113aade0:	97ffe020 	bl	ffff8000113a2e60 <deliver_skb>
ffff8000113aade4:	f94033a6 	ldr	x6, [x29,#96]
ffff8000113aade8:	2a0003f4 	mov	w20, w0
	skb->tc_at_ingress = 1;
ffff8000113aadec:	39420f80 	ldrb	w0, [x28,#131]
	qdisc_skb_cb(skb)->pkt_len = skb->len;
ffff8000113aadf0:	b9407381 	ldr	w1, [x28,#112]
	skb->tc_at_ingress = 1;
ffff8000113aadf4:	321a0000 	orr	w0, w0, #0x40
	qdisc_skb_cb(skb)->pkt_len = skb->len;
ffff8000113aadf8:	b9002b81 	str	w1, [x28,#40]
	skb->tc_at_ingress = 1;
ffff8000113aadfc:	39020f80 	strb	w0, [x28,#131]
	mini_qdisc_bstats_cpu_update(miniq, skb);
ffff8000113aae00:	f94008c0 	ldr	x0, [x6,#16]
ffff8000113aae04:	aa1c03e1 	mov	x1, x28
ffff8000113aae08:	f90033a6 	str	x6, [x29,#96]
ffff8000113aae0c:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113aae0c: R_AARCH64_CALL26	.text.unlikely
	switch (tcf_classify_ingress(skb, miniq->block, miniq->filter_list,
ffff8000113aae10:	f94033a6 	ldr	x6, [x29,#96]
ffff8000113aae14:	aa1c03e0 	mov	x0, x28
ffff8000113aae18:	f94004c1 	ldr	x1, [x6,#8]
ffff8000113aae1c:	f94000c2 	ldr	x2, [x6]
ffff8000113aae20:	910223a3 	add	x3, x29, #0x88
ffff8000113aae24:	52800004 	mov	w4, #0x0                   	// #0
ffff8000113aae28:	94000000 	bl	0 <tcf_classify_ingress>
			ffff8000113aae28: R_AARCH64_CALL26	tcf_classify_ingress
ffff8000113aae2c:	7100241f 	cmp	w0, #0x9
ffff8000113aae30:	f94033a6 	ldr	x6, [x29,#96]
ffff8000113aae34:	540000e8 	b.hi	ffff8000113aae50 <__netif_receive_skb_core+0x9b8>
ffff8000113aae38:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aae38: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x24
ffff8000113aae3c:	91000021 	add	x1, x1, #0x0
			ffff8000113aae3c: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x24
ffff8000113aae40:	78605821 	ldrh	w1, [x1,w0,uxtw #1]
ffff8000113aae44:	10000062 	adr	x2, ffff8000113aae50 <__netif_receive_skb_core+0x9b8>
ffff8000113aae48:	8b21a841 	add	x1, x2, w1, sxth #2
ffff8000113aae4c:	d61f0020 	br	x1
ffff8000113aae50:	d2800018 	mov	x24, #0x0                   	// #0
		skb = sch_handle_ingress(skb, &pt_prev, &ret, orig_dev);
ffff8000113aae54:	f9003fbc 	str	x28, [x29,#120]
		if (!skb)
ffff8000113aae58:	b4ffce1c 	cbz	x28, ffff8000113aa818 <__netif_receive_skb_core+0x380>
static inline int nf_ingress(struct sk_buff *skb, struct packet_type **pt_prev,
ffff8000113aae5c:	f9400b80 	ldr	x0, [x28,#16]
ffff8000113aae60:	f941b000 	ldr	x0, [x0,#864]
	if (nf_hook_ingress_active(skb)) {
ffff8000113aae64:	b4ffd4c0 	cbz	x0, ffff8000113aa8fc <__netif_receive_skb_core+0x464>
		if (*pt_prev) {
ffff8000113aae68:	b40000d8 	cbz	x24, ffff8000113aae80 <__netif_receive_skb_core+0x9e8>
			*ret = deliver_skb(skb, *pt_prev, orig_dev);
ffff8000113aae6c:	aa1c03e0 	mov	x0, x28
ffff8000113aae70:	aa1803e1 	mov	x1, x24
ffff8000113aae74:	aa1303e2 	mov	x2, x19
ffff8000113aae78:	97ffdffa 	bl	ffff8000113a2e60 <deliver_skb>
ffff8000113aae7c:	2a0003f4 	mov	w20, w0
}

/* caller must hold rcu_read_lock */
static inline int nf_hook_ingress(struct sk_buff *skb)
{
	struct nf_hook_entries *e = rcu_dereference(skb->dev->nf_hooks_ingress);
ffff8000113aae80:	f9400b84 	ldr	x4, [x28,#16]
ffff8000113aae84:	f941b082 	ldr	x2, [x4,#864]
	int ret;

	/* Must recheck the ingress hook head, in the event it became NULL
	 * after the check in nf_hook_ingress_active evaluated to true.
	 */
	if (unlikely(!e))
ffff8000113aae88:	b4000202 	cbz	x2, ffff8000113aaec8 <__netif_receive_skb_core+0xa30>
	return pnet->net;
ffff8000113aae8c:	f9427886 	ldr	x6, [x4,#1264]
		return 0;

	nf_hook_state_init(&state, NF_NETDEV_INGRESS,
			   NFPROTO_NETDEV, skb->dev, NULL, NULL,
			   dev_net(skb->dev), NULL);
	ret = nf_hook_slow(skb, &state, e, 0);
ffff8000113aae90:	52800003 	mov	w3, #0x0                   	// #0
				      struct sock *sk,
				      struct net *net,
				      int (*okfn)(struct net *, struct sock *, struct sk_buff *))
{
	p->hook = hook;
	p->pf = pf;
ffff8000113aae94:	528000a5 	mov	w5, #0x5                   	// #5
ffff8000113aae98:	aa1c03e0 	mov	x0, x28
ffff8000113aae9c:	910223a1 	add	x1, x29, #0x88
	p->hook = hook;
ffff8000113aaea0:	b9008ba3 	str	w3, [x29,#136]
	p->pf = pf;
ffff8000113aaea4:	390233a5 	strb	w5, [x29,#140]
	p->in = indev;
ffff8000113aaea8:	f9004ba4 	str	x4, [x29,#144]
	p->out = outdev;
ffff8000113aaeac:	f9004fbf 	str	xzr, [x29,#152]
	p->sk = sk;
ffff8000113aaeb0:	f90053bf 	str	xzr, [x29,#160]
	p->net = net;
ffff8000113aaeb4:	f90057a6 	str	x6, [x29,#168]
	p->okfn = okfn;
ffff8000113aaeb8:	f9005bbf 	str	xzr, [x29,#176]
ffff8000113aaebc:	94000000 	bl	0 <nf_hook_slow>
			ffff8000113aaebc: R_AARCH64_CALL26	nf_hook_slow
	if (ret == 0)
		return -1;
ffff8000113aaec0:	6b1f001f 	cmp	w0, wzr
ffff8000113aaec4:	5a9f1002 	csinv	w2, w0, wzr, ne
		if (nf_ingress(skb, &pt_prev, &ret, orig_dev) < 0)
ffff8000113aaec8:	37ffca82 	tbnz	w2, #31, ffff8000113aa818 <__netif_receive_skb_core+0x380>
ffff8000113aaecc:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aaed0:	d2800018 	mov	x24, #0x0                   	// #0
ffff8000113aaed4:	17fffe8a 	b	ffff8000113aa8fc <__netif_receive_skb_core+0x464>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aaed8:	aa1c03e0 	mov	x0, x28
ffff8000113aaedc:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aaee0:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aaee0: R_AARCH64_CALL26	skb_copy_ubufs
		return -ENOMEM;
ffff8000113aaee4:	12800174 	mov	w20, #0xfffffff4            	// #-12
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aaee8:	35ffba20 	cbnz	w0, ffff8000113aa62c <__netif_receive_skb_core+0x194>
ffff8000113aaeec:	17fffdbe 	b	ffff8000113aa5e4 <__netif_receive_skb_core+0x14c>
		__skb_push(skb, skb->mac_len);
ffff8000113aaef0:	7940f380 	ldrh	w0, [x28,#120]
	skb->data -= len;
ffff8000113aaef4:	f9406781 	ldr	x1, [x28,#200]
	skb->len  += len;
ffff8000113aaef8:	b9407382 	ldr	w2, [x28,#112]
	skb->data -= len;
ffff8000113aaefc:	cb202021 	sub	x1, x1, w0, uxth
	skb->len  += len;
ffff8000113aaf00:	0b000040 	add	w0, w2, w0
ffff8000113aaf04:	b9007380 	str	w0, [x28,#112]
	skb->data -= len;
ffff8000113aaf08:	f9006781 	str	x1, [x28,#200]
		skb_do_redirect(skb);
ffff8000113aaf0c:	aa1c03e0 	mov	x0, x28
ffff8000113aaf10:	94000000 	bl	0 <skb_do_redirect>
			ffff8000113aaf10: R_AARCH64_CALL26	skb_do_redirect
ffff8000113aaf14:	17fffe41 	b	ffff8000113aa818 <__netif_receive_skb_core+0x380>
		consume_skb(skb);
ffff8000113aaf18:	aa1c03e0 	mov	x0, x28
ffff8000113aaf1c:	94000000 	bl	0 <consume_skb>
			ffff8000113aaf1c: R_AARCH64_CALL26	consume_skb
ffff8000113aaf20:	17fffe3e 	b	ffff8000113aa818 <__netif_receive_skb_core+0x380>
		mini_qdisc_qstats_cpu_drop(miniq);
ffff8000113aaf24:	910060c0 	add	x0, x6, #0x18
ffff8000113aaf28:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113aaf28: R_AARCH64_CALL26	.text.unlikely+0x64
		kfree_skb(skb);
ffff8000113aaf2c:	aa1c03e0 	mov	x0, x28
ffff8000113aaf30:	94000000 	bl	0 <kfree_skb>
			ffff8000113aaf30: R_AARCH64_CALL26	kfree_skb
ffff8000113aaf34:	17fffe39 	b	ffff8000113aa818 <__netif_receive_skb_core+0x380>
		skb->tc_index = TC_H_MIN(cl_res.classid);
ffff8000113aaf38:	b94093a0 	ldr	w0, [x29,#144]
ffff8000113aaf3c:	d2800018 	mov	x24, #0x0                   	// #0
ffff8000113aaf40:	79010f80 	strh	w0, [x28,#134]
ffff8000113aaf44:	17ffffc4 	b	ffff8000113aae54 <__netif_receive_skb_core+0x9bc>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113aaf48:	aa1c03e0 	mov	x0, x28
ffff8000113aaf4c:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113aaf50:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113aaf50: R_AARCH64_CALL26	skb_copy_ubufs
		if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113aaf54:	34ffc5e0 	cbz	w0, ffff8000113aa810 <__netif_receive_skb_core+0x378>
ffff8000113aaf58:	f9403fbc 	ldr	x28, [x29,#120]
ffff8000113aaf5c:	17fffe74 	b	ffff8000113aa92c <__netif_receive_skb_core+0x494>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113aaf60:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113aaf64:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113aaf64: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113aaf68:	17fffdaa 	b	ffff8000113aa610 <__netif_receive_skb_core+0x178>
ffff8000113aaf6c:	f9404ef6 	ldr	x22, [x23,#152]
		deliver_ptype_list_skb(skb, &pt_prev, orig_dev, type,
ffff8000113aaf70:	910262f7 	add	x23, x23, #0x98
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aaf74:	eb1602ff 	cmp	x23, x22
ffff8000113aaf78:	d100c2d6 	sub	x22, x22, #0x30
ffff8000113aaf7c:	540006c0 	b.eq	ffff8000113ab054 <__netif_receive_skb_core+0xbbc>
	refcount_inc(&skb->users);
ffff8000113aaf80:	91035395 	add	x21, x28, #0xd4
ffff8000113aaf84:	14000005 	b	ffff8000113aaf98 <__netif_receive_skb_core+0xb00>
ffff8000113aaf88:	f9401ad6 	ldr	x22, [x22,#48]
	list_for_each_entry_rcu(ptype, ptype_list, list) {
ffff8000113aaf8c:	eb1602ff 	cmp	x23, x22
ffff8000113aaf90:	d100c2d6 	sub	x22, x22, #0x30
ffff8000113aaf94:	54000600 	b.eq	ffff8000113ab054 <__netif_receive_skb_core+0xbbc>
		if (ptype->type != type)
ffff8000113aaf98:	794002c0 	ldrh	w0, [x22]
ffff8000113aaf9c:	6b19001f 	cmp	w0, w25
ffff8000113aafa0:	54ffff41 	b.ne	ffff8000113aaf88 <__netif_receive_skb_core+0xaf0>
		if (pt_prev)
ffff8000113aafa4:	b40003f8 	cbz	x24, ffff8000113ab020 <__netif_receive_skb_core+0xb88>
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aafa8:	b400011c 	cbz	x28, ffff8000113aafc8 <__netif_receive_skb_core+0xb30>
	return skb->head + skb->end;
ffff8000113aafac:	f9406381 	ldr	x1, [x28,#192]
ffff8000113aafb0:	b940bf80 	ldr	w0, [x28,#188]
ffff8000113aafb4:	8b000020 	add	x0, x1, x0
	bool is_zcopy = skb && skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY;
ffff8000113aafb8:	39400c01 	ldrb	w1, [x0,#3]
ffff8000113aafbc:	36180061 	tbz	w1, #3, ffff8000113aafc8 <__netif_receive_skb_core+0xb30>
	if (likely(!skb_zcopy(skb)))
ffff8000113aafc0:	f9401400 	ldr	x0, [x0,#40]
ffff8000113aafc4:	b5000260 	cbnz	x0, ffff8000113ab010 <__netif_receive_skb_core+0xb78>
ATOMIC_OPS(add, add, I)
ffff8000113aafc8:	f98002b1 	prfm	pstl1strm, [x21]
ffff8000113aafcc:	885f7ea0 	ldxr	w0, [x21]
ffff8000113aafd0:	11000401 	add	w1, w0, #0x1
ffff8000113aafd4:	88027ea1 	stxr	w2, w1, [x21]
ffff8000113aafd8:	35ffffa2 	cbnz	w2, ffff8000113aafcc <__netif_receive_skb_core+0xb34>
	if (unlikely(!old))
ffff8000113aafdc:	6b1f001f 	cmp	w0, wzr
ffff8000113aafe0:	54000520 	b.eq	ffff8000113ab084 <__netif_receive_skb_core+0xbec>
	else if (unlikely(old < 0 || old + i < 0))
ffff8000113aafe4:	5400048b 	b.lt	ffff8000113ab074 <__netif_receive_skb_core+0xbdc>
ffff8000113aafe8:	3100041f 	cmn	w0, #0x1
ffff8000113aafec:	54000444 	b.mi	ffff8000113ab074 <__netif_receive_skb_core+0xbdc>
	return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113aaff0:	f9400b04 	ldr	x4, [x24,#16]
ffff8000113aaff4:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113aaff8:	aa1803e2 	mov	x2, x24
ffff8000113aaffc:	aa1c03e0 	mov	x0, x28
ffff8000113ab000:	aa1303e3 	mov	x3, x19
ffff8000113ab004:	d63f0080 	blr	x4
ffff8000113ab008:	aa1603f8 	mov	x24, x22
ffff8000113ab00c:	17ffffdf 	b	ffff8000113aaf88 <__netif_receive_skb_core+0xaf0>
	return skb_copy_ubufs(skb, gfp_mask);
ffff8000113ab010:	aa1c03e0 	mov	x0, x28
ffff8000113ab014:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113ab018:	94000000 	bl	0 <skb_copy_ubufs>
			ffff8000113ab018: R_AARCH64_CALL26	skb_copy_ubufs
	if (unlikely(skb_orphan_frags_rx(skb, GFP_ATOMIC)))
ffff8000113ab01c:	34fffd60 	cbz	w0, ffff8000113aafc8 <__netif_receive_skb_core+0xb30>
ffff8000113ab020:	aa1603f8 	mov	x24, x22
ffff8000113ab024:	17ffffd9 	b	ffff8000113aaf88 <__netif_receive_skb_core+0xaf0>
		} else if (skb->protocol == cpu_to_be16(ETH_P_8021Q) ||
ffff8000113ab028:	7102041f 	cmp	w0, #0x81
ffff8000113ab02c:	54ffdd00 	b.eq	ffff8000113aabcc <__netif_receive_skb_core+0x734>
ffff8000113ab030:	39420b80 	ldrb	w0, [x28,#130]
ffff8000113ab034:	d2800018 	mov	x24, #0x0                   	// #0
ffff8000113ab038:	121f7800 	and	w0, w0, #0xfffffffe
ffff8000113ab03c:	39020b80 	strb	w0, [x28,#130]
ffff8000113ab040:	17fffd8a 	b	ffff8000113aa668 <__netif_receive_skb_core+0x1d0>
			return NET_RX_DROP;
ffff8000113ab044:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113ab048:	17fffdf5 	b	ffff8000113aa81c <__netif_receive_skb_core+0x384>
	return XDP_PASS;
ffff8000113ab04c:	52800040 	mov	w0, #0x2                   	// #2
ffff8000113ab050:	17ffff20 	b	ffff8000113aacd0 <__netif_receive_skb_core+0x838>
ffff8000113ab054:	f9403fbc 	ldr	x28, [x29,#120]
	if (pt_prev) {
ffff8000113ab058:	b5ffbcd8 	cbnz	x24, ffff8000113aa7f0 <__netif_receive_skb_core+0x358>
ffff8000113ab05c:	17fffe34 	b	ffff8000113aa92c <__netif_receive_skb_core+0x494>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113ab060:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113ab064:	f90033a4 	str	x4, [x29,#96]
ffff8000113ab068:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113ab068: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113ab06c:	f94033a4 	ldr	x4, [x29,#96]
ffff8000113ab070:	17fffe0e 	b	ffff8000113aa8a8 <__netif_receive_skb_core+0x410>
		refcount_warn_saturate(r, REFCOUNT_ADD_OVF);
ffff8000113ab074:	aa1503e0 	mov	x0, x21
ffff8000113ab078:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113ab07c:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113ab07c: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113ab080:	17ffffdc 	b	ffff8000113aaff0 <__netif_receive_skb_core+0xb58>
		refcount_warn_saturate(r, REFCOUNT_ADD_UAF);
ffff8000113ab084:	aa1503e0 	mov	x0, x21
ffff8000113ab088:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113ab08c:	94000000 	bl	0 <refcount_warn_saturate>
			ffff8000113ab08c: R_AARCH64_CALL26	refcount_warn_saturate
ffff8000113ab090:	17ffffd8 	b	ffff8000113aaff0 <__netif_receive_skb_core+0xb58>

ffff8000113ab094 <__netif_receive_skb_one_core>:
{
ffff8000113ab094:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113ab098:	910003fd 	mov	x29, sp
ffff8000113ab09c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab0a0:	f90013f5 	str	x21, [sp,#32]
ffff8000113ab0a4:	aa0003f3 	mov	x19, x0
ffff8000113ab0a8:	aa1e03e0 	mov	x0, x30
ffff8000113ab0ac:	53001c35 	uxtb	w21, w1
ffff8000113ab0b0:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113ab0b0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ab0b4:	94000000 	bl	0 <_mcount>
			ffff8000113ab0b4: R_AARCH64_CALL26	_mcount
	struct packet_type *pt_prev = NULL;
ffff8000113ab0b8:	910103a2 	add	x2, x29, #0x40
{
ffff8000113ab0bc:	f9400283 	ldr	x3, [x20]
			ffff8000113ab0bc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct packet_type *pt_prev = NULL;
ffff8000113ab0c0:	f81f0c5f 	str	xzr, [x2,#-16]!
	ret = __netif_receive_skb_core(skb, pfmemalloc, &pt_prev);
ffff8000113ab0c4:	2a1503e1 	mov	w1, w21
ffff8000113ab0c8:	aa1303e0 	mov	x0, x19
{
ffff8000113ab0cc:	f9001fa3 	str	x3, [x29,#56]
	struct net_device *orig_dev = skb->dev;
ffff8000113ab0d0:	f9400a75 	ldr	x21, [x19,#16]
	ret = __netif_receive_skb_core(skb, pfmemalloc, &pt_prev);
ffff8000113ab0d4:	97fffcf1 	bl	ffff8000113aa498 <__netif_receive_skb_core>
	if (pt_prev)
ffff8000113ab0d8:	f9401ba2 	ldr	x2, [x29,#48]
ffff8000113ab0dc:	b40000c2 	cbz	x2, ffff8000113ab0f4 <__netif_receive_skb_one_core+0x60>
		ret = INDIRECT_CALL_INET(pt_prev->func, ipv6_rcv, ip_rcv, skb,
ffff8000113ab0e0:	f9400844 	ldr	x4, [x2,#16]
ffff8000113ab0e4:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113ab0e8:	aa1303e0 	mov	x0, x19
ffff8000113ab0ec:	aa1503e3 	mov	x3, x21
ffff8000113ab0f0:	d63f0080 	blr	x4
}
ffff8000113ab0f4:	f9401fa2 	ldr	x2, [x29,#56]
ffff8000113ab0f8:	f9400281 	ldr	x1, [x20]
			ffff8000113ab0f8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ab0fc:	eb01005f 	cmp	x2, x1
ffff8000113ab100:	540000a1 	b.ne	ffff8000113ab114 <__netif_receive_skb_one_core+0x80>
ffff8000113ab104:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab108:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113ab10c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113ab110:	d65f03c0 	ret
ffff8000113ab114:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ab114: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ab118 <netif_receive_skb_core>:
{
ffff8000113ab118:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113ab11c:	910003fd 	mov	x29, sp
ffff8000113ab120:	f9000bf3 	str	x19, [sp,#16]
ffff8000113ab124:	aa0003f3 	mov	x19, x0
ffff8000113ab128:	aa1e03e0 	mov	x0, x30
ffff8000113ab12c:	94000000 	bl	0 <_mcount>
			ffff8000113ab12c: R_AARCH64_CALL26	_mcount
	ret = __netif_receive_skb_one_core(skb, false);
ffff8000113ab130:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113ab134:	aa1303e0 	mov	x0, x19
ffff8000113ab138:	97ffffd7 	bl	ffff8000113ab094 <__netif_receive_skb_one_core>
}
ffff8000113ab13c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113ab140:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113ab144:	d65f03c0 	ret

ffff8000113ab148 <__netif_receive_skb>:
{
ffff8000113ab148:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113ab14c:	910003fd 	mov	x29, sp
ffff8000113ab150:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab154:	aa0003f3 	mov	x19, x0
ffff8000113ab158:	aa1e03e0 	mov	x0, x30
ffff8000113ab15c:	94000000 	bl	0 <_mcount>
			ffff8000113ab15c: R_AARCH64_CALL26	_mcount
ffff8000113ab160:	90000000 	adrp	x0, 0 <memalloc_socks_key>
			ffff8000113ab160: R_AARCH64_ADR_PREL_PG_HI21	memalloc_socks_key
ffff8000113ab164:	b9400000 	ldr	w0, [x0]
			ffff8000113ab164: R_AARCH64_LDST32_ABS_LO12_NC	memalloc_socks_key
	if (sk_memalloc_socks() && skb_pfmemalloc(skb)) {
ffff8000113ab168:	6b1f001f 	cmp	w0, wzr
ffff8000113ab16c:	540000ec 	b.gt	ffff8000113ab188 <__netif_receive_skb+0x40>
		ret = __netif_receive_skb_one_core(skb, false);
ffff8000113ab170:	aa1303e0 	mov	x0, x19
ffff8000113ab174:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113ab178:	97ffffc7 	bl	ffff8000113ab094 <__netif_receive_skb_one_core>
}
ffff8000113ab17c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab180:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113ab184:	d65f03c0 	ret
	return unlikely(skb->pfmemalloc);
ffff8000113ab188:	3941fa60 	ldrb	w0, [x19,#126]
	if (sk_memalloc_socks() && skb_pfmemalloc(skb)) {
ffff8000113ab18c:	3637ff20 	tbz	w0, #6, ffff8000113ab170 <__netif_receive_skb+0x28>
ffff8000113ab190:	d5384114 	mrs	x20, sp_el0
	current->flags = (current->flags & ~PF_MEMALLOC_NOFS) | flags;
}

static inline unsigned int memalloc_noreclaim_save(void)
{
	unsigned int flags = current->flags & PF_MEMALLOC;
ffff8000113ab194:	b9403682 	ldr	w2, [x20,#52]
		ret = __netif_receive_skb_one_core(skb, true);
ffff8000113ab198:	aa1303e0 	mov	x0, x19
	current->flags |= PF_MEMALLOC;
ffff8000113ab19c:	32150041 	orr	w1, w2, #0x800
ffff8000113ab1a0:	b9003681 	str	w1, [x20,#52]
ffff8000113ab1a4:	52800021 	mov	w1, #0x1                   	// #1
	unsigned int flags = current->flags & PF_MEMALLOC;
ffff8000113ab1a8:	12150053 	and	w19, w2, #0x800
ffff8000113ab1ac:	97ffffba 	bl	ffff8000113ab094 <__netif_receive_skb_one_core>
	return flags;
}

static inline void memalloc_noreclaim_restore(unsigned int flags)
{
	current->flags = (current->flags & ~PF_MEMALLOC) | flags;
ffff8000113ab1b0:	b9403681 	ldr	w1, [x20,#52]
ffff8000113ab1b4:	12147821 	and	w1, w1, #0xfffff7ff
ffff8000113ab1b8:	2a130033 	orr	w19, w1, w19
ffff8000113ab1bc:	b9003693 	str	w19, [x20,#52]
ffff8000113ab1c0:	17ffffef 	b	ffff8000113ab17c <__netif_receive_skb+0x34>

ffff8000113ab1c4 <netif_receive_skb>:
{
ffff8000113ab1c4:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113ab1c8:	910003fd 	mov	x29, sp
ffff8000113ab1cc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab1d0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ab1d4:	aa0003f4 	mov	x20, x0
ffff8000113ab1d8:	aa1e03e0 	mov	x0, x30
ffff8000113ab1dc:	94000000 	bl	0 <_mcount>
			ffff8000113ab1dc: R_AARCH64_CALL26	_mcount
ffff8000113ab1e0:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113ab1e0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ab1e4:	f94002c0 	ldr	x0, [x22]
			ffff8000113ab1e4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ab1e8:	f90027a0 	str	x0, [x29,#72]
ffff8000113ab1ec:	90000000 	adrp	x0, 0 <__tracepoint_netif_receive_skb_entry>
			ffff8000113ab1ec: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_receive_skb_entry
ffff8000113ab1f0:	91000000 	add	x0, x0, #0x0
			ffff8000113ab1f0: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb_entry
ffff8000113ab1f4:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ab1f8:	6b1f003f 	cmp	w1, wzr
ffff8000113ab1fc:	5400080c 	b.gt	ffff8000113ab2fc <netif_receive_skb+0x138>
ffff8000113ab200:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab200: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113ab204:	91000000 	add	x0, x0, #0x0
			ffff8000113ab204: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113ab208:	b9434800 	ldr	w0, [x0,#840]
	net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113ab20c:	6b1f001f 	cmp	w0, wzr
ffff8000113ab210:	5400066c 	b.gt	ffff8000113ab2dc <netif_receive_skb+0x118>
	if (skb_defer_rx_timestamp(skb))
ffff8000113ab214:	aa1403e0 	mov	x0, x20
ffff8000113ab218:	94000000 	bl	0 <skb_defer_rx_timestamp>
			ffff8000113ab218: R_AARCH64_CALL26	skb_defer_rx_timestamp
ffff8000113ab21c:	53001c00 	uxtb	w0, w0
		return NET_RX_SUCCESS;
ffff8000113ab220:	52800015 	mov	w21, #0x0                   	// #0
	if (skb_defer_rx_timestamp(skb))
ffff8000113ab224:	340001e0 	cbz	w0, ffff8000113ab260 <netif_receive_skb+0x9c>
ffff8000113ab228:	90000000 	adrp	x0, 0 <__tracepoint_netif_receive_skb_exit>
			ffff8000113ab228: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_receive_skb_exit
ffff8000113ab22c:	91000000 	add	x0, x0, #0x0
			ffff8000113ab22c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb_exit
ffff8000113ab230:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ab234:	6b1f003f 	cmp	w1, wzr
ffff8000113ab238:	5400028c 	b.gt	ffff8000113ab288 <netif_receive_skb+0xc4>
}
ffff8000113ab23c:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113ab240:	f94002c1 	ldr	x1, [x22]
			ffff8000113ab240: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ab244:	2a1503e0 	mov	w0, w21
ffff8000113ab248:	eb01005f 	cmp	x2, x1
ffff8000113ab24c:	540001c1 	b.ne	ffff8000113ab284 <netif_receive_skb+0xc0>
ffff8000113ab250:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab254:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ab258:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113ab25c:	d65f03c0 	ret
ffff8000113ab260:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab260: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113ab264:	91000000 	add	x0, x0, #0x0
			ffff8000113ab264: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113ab268:	b9495000 	ldr	w0, [x0,#2384]
	if (static_branch_unlikely(&rps_needed)) {
ffff8000113ab26c:	6b15001f 	cmp	w0, w21
ffff8000113ab270:	5400070c 	b.gt	ffff8000113ab350 <netif_receive_skb+0x18c>
	ret = __netif_receive_skb(skb);
ffff8000113ab274:	aa1403e0 	mov	x0, x20
ffff8000113ab278:	97ffffb4 	bl	ffff8000113ab148 <__netif_receive_skb>
	return ret;
ffff8000113ab27c:	2a0003f5 	mov	w21, w0
ffff8000113ab280:	17ffffea 	b	ffff8000113ab228 <netif_receive_skb+0x64>
}
ffff8000113ab284:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ab284: R_AARCH64_CALL26	__stack_chk_fail
DEFINE_EVENT(net_dev_rx_exit_template, netif_receive_skb_exit,
ffff8000113ab288:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113ab288: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ab28c:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ab290:	91000021 	add	x1, x1, #0x0
			ffff8000113ab290: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ab294:	b8616841 	ldr	w1, [x2,x1]
ffff8000113ab298:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ab29c:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113ab2a0:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113ab2a0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ab2a4:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ab2a8:	91000042 	add	x2, x2, #0x0
			ffff8000113ab2a8: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ab2ac:	f8626862 	ldr	x2, [x3,x2]
ffff8000113ab2b0:	9ac12441 	lsr	x1, x2, x1
ffff8000113ab2b4:	3607fc41 	tbz	w1, #0, ffff8000113ab23c <netif_receive_skb+0x78>
ffff8000113ab2b8:	f9401013 	ldr	x19, [x0,#32]
ffff8000113ab2bc:	b40000f3 	cbz	x19, ffff8000113ab2d8 <netif_receive_skb+0x114>
ffff8000113ab2c0:	f9400262 	ldr	x2, [x19]
ffff8000113ab2c4:	f9400660 	ldr	x0, [x19,#8]
ffff8000113ab2c8:	2a1503e1 	mov	w1, w21
ffff8000113ab2cc:	d63f0040 	blr	x2
ffff8000113ab2d0:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113ab2d4:	b5ffff82 	cbnz	x2, ffff8000113ab2c4 <netif_receive_skb+0x100>
ffff8000113ab2d8:	17ffffd9 	b	ffff8000113ab23c <netif_receive_skb+0x78>
	net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113ab2dc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab2dc: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly+0x94c
ffff8000113ab2e0:	b9400000 	ldr	w0, [x0]
			ffff8000113ab2e0: R_AARCH64_LDST32_ABS_LO12_NC	.data..read_mostly+0x94c
ffff8000113ab2e4:	34fff980 	cbz	w0, ffff8000113ab214 <netif_receive_skb+0x50>
ffff8000113ab2e8:	f9401280 	ldr	x0, [x20,#32]
ffff8000113ab2ec:	b5fff940 	cbnz	x0, ffff8000113ab214 <netif_receive_skb+0x50>
ffff8000113ab2f0:	94000000 	bl	0 <ktime_get_with_offset>
			ffff8000113ab2f0: R_AARCH64_CALL26	ktime_get_with_offset
	skb->tstamp = ktime_get_real();
ffff8000113ab2f4:	f9001280 	str	x0, [x20,#32]
ffff8000113ab2f8:	17ffffc7 	b	ffff8000113ab214 <netif_receive_skb+0x50>
DEFINE_EVENT(net_dev_rx_verbose_template, netif_receive_skb_entry,
ffff8000113ab2fc:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113ab2fc: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ab300:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ab304:	91000021 	add	x1, x1, #0x0
			ffff8000113ab304: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ab308:	b8616841 	ldr	w1, [x2,x1]
ffff8000113ab30c:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ab310:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113ab314:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113ab314: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ab318:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ab31c:	91000042 	add	x2, x2, #0x0
			ffff8000113ab31c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ab320:	f8626862 	ldr	x2, [x3,x2]
ffff8000113ab324:	9ac12441 	lsr	x1, x2, x1
ffff8000113ab328:	3607f6c1 	tbz	w1, #0, ffff8000113ab200 <netif_receive_skb+0x3c>
ffff8000113ab32c:	f9401013 	ldr	x19, [x0,#32]
ffff8000113ab330:	b40000f3 	cbz	x19, ffff8000113ab34c <netif_receive_skb+0x188>
ffff8000113ab334:	f9400262 	ldr	x2, [x19]
ffff8000113ab338:	f9400660 	ldr	x0, [x19,#8]
ffff8000113ab33c:	aa1403e1 	mov	x1, x20
ffff8000113ab340:	d63f0040 	blr	x2
ffff8000113ab344:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113ab348:	b5ffff82 	cbnz	x2, ffff8000113ab338 <netif_receive_skb+0x174>
ffff8000113ab34c:	17ffffad 	b	ffff8000113ab200 <netif_receive_skb+0x3c>
		struct rps_dev_flow voidflow, *rflow = &voidflow;
ffff8000113ab350:	910143a2 	add	x2, x29, #0x50
ffff8000113ab354:	9100e3a0 	add	x0, x29, #0x38
ffff8000113ab358:	f81f0c40 	str	x0, [x2,#-16]!
		int cpu = get_rps_cpu(skb->dev, skb, &rflow);
ffff8000113ab35c:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113ab360:	aa1403e1 	mov	x1, x20
ffff8000113ab364:	97ffd549 	bl	ffff8000113a0888 <get_rps_cpu>
ffff8000113ab368:	2a0003e1 	mov	w1, w0
		if (cpu >= 0) {
ffff8000113ab36c:	37fff841 	tbnz	w1, #31, ffff8000113ab274 <netif_receive_skb+0xb0>
			ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
ffff8000113ab370:	f94023a2 	ldr	x2, [x29,#64]
ffff8000113ab374:	aa1403e0 	mov	x0, x20
ffff8000113ab378:	91001042 	add	x2, x2, #0x4
ffff8000113ab37c:	97ffec97 	bl	ffff8000113a65d8 <enqueue_to_backlog>
			return ret;
ffff8000113ab380:	2a0003f5 	mov	w21, w0
ffff8000113ab384:	17ffffa9 	b	ffff8000113ab228 <netif_receive_skb+0x64>

ffff8000113ab388 <process_backlog>:
{
ffff8000113ab388:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ab38c:	910003fd 	mov	x29, sp
ffff8000113ab390:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab394:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ab398:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ab39c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ab3a0:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113ab3a4:	aa0003f3 	mov	x19, x0
ffff8000113ab3a8:	aa1e03e0 	mov	x0, x30
ffff8000113ab3ac:	2a0103f6 	mov	w22, w1
ffff8000113ab3b0:	94000000 	bl	0 <_mcount>
			ffff8000113ab3b0: R_AARCH64_CALL26	_mcount
	if (sd_has_rps_ipi_waiting(sd)) {
ffff8000113ab3b4:	f8528260 	ldur	x0, [x19,#-216]
ffff8000113ab3b8:	b4000120 	cbz	x0, ffff8000113ab3dc <process_backlog+0x54>
	asm volatile(ALTERNATIVE(
ffff8000113ab3bc:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113ab3c0:	d50342df 	msr	daifset, #0x2
	struct softnet_data *remsd = sd->rps_ipi_list;
ffff8000113ab3c4:	f8528260 	ldur	x0, [x19,#-216]
	if (remsd) {
ffff8000113ab3c8:	b4000a00 	cbz	x0, ffff8000113ab508 <process_backlog+0x180>
		sd->rps_ipi_list = NULL;
ffff8000113ab3cc:	f812827f 	stur	xzr, [x19,#-216]
	asm volatile(ALTERNATIVE(
ffff8000113ab3d0:	d2801c01 	mov	x1, #0xe0                  	// #224
ffff8000113ab3d4:	d50342ff 	msr	daifclr, #0x2
		net_rps_send_ipi(remsd);
ffff8000113ab3d8:	97ffd814 	bl	ffff8000113a1428 <net_rps_send_ipi>
	napi->weight = dev_rx_weight;
ffff8000113ab3dc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab3dc: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly+0x954
ffff8000113ab3e0:	b9400000 	ldr	w0, [x0]
			ffff8000113ab3e0: R_AARCH64_LDST32_ABS_LO12_NC	.data..read_mostly+0x954
ffff8000113ab3e4:	d104427b 	sub	x27, x19, #0x110
ffff8000113ab3e8:	91004375 	add	x21, x27, #0x10
ffff8000113ab3ec:	b9001a60 	str	w0, [x19,#24]
	int work = 0;
ffff8000113ab3f0:	52800014 	mov	w20, #0x0                   	// #0
ffff8000113ab3f4:	d104027c 	sub	x28, x19, #0x100
	asm volatile(ALTERNATIVE(
ffff8000113ab3f8:	d2800c1a 	mov	x26, #0x60                  	// #96
#if defined(arch_atomic_cmpxchg_acquire)
static inline int
atomic_cmpxchg_acquire(atomic_t *v, int old, int new)
{
	kasan_check_write(v, sizeof(*v));
	return arch_atomic_cmpxchg_acquire(v, old, new);
ffff8000113ab3fc:	d1001277 	sub	x23, x19, #0x4
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113ab400:	d2800019 	mov	x25, #0x0                   	// #0
ffff8000113ab404:	52800038 	mov	w24, #0x1                   	// #1
		if (skb_queue_empty(&sd->input_pkt_queue)) {
ffff8000113ab408:	9103e37b 	add	x27, x27, #0xf8
ffff8000113ab40c:	14000012 	b	ffff8000113ab454 <process_backlog+0xcc>
	if (skb)
ffff8000113ab410:	b4000280 	cbz	x0, ffff8000113ab460 <process_backlog+0xd8>
	WRITE_ONCE(list->qlen, list->qlen - 1);
ffff8000113ab414:	b9401381 	ldr	w1, [x28,#16]
ffff8000113ab418:	51000421 	sub	w1, w1, #0x1
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113ab41c:	b8110261 	stur	w1, [x19,#-240]
	next	   = skb->next;
ffff8000113ab420:	f9400002 	ldr	x2, [x0]
	prev	   = skb->prev;
ffff8000113ab424:	f9400401 	ldr	x1, [x0,#8]
	skb->next  = skb->prev = NULL;
ffff8000113ab428:	f900001f 	str	xzr, [x0]
ffff8000113ab42c:	f900041f 	str	xzr, [x0,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ab430:	f9000441 	str	x1, [x2,#8]
ffff8000113ab434:	f9000022 	str	x2, [x1]
			__netif_receive_skb(skb);
ffff8000113ab438:	97ffff44 	bl	ffff8000113ab148 <__netif_receive_skb>
	sd->input_queue_head++;
ffff8000113ab43c:	b8570260 	ldur	w0, [x19,#-144]
			if (++work >= quota)
ffff8000113ab440:	11000694 	add	w20, w20, #0x1
ffff8000113ab444:	11000400 	add	w0, w0, #0x1
ffff8000113ab448:	b8170260 	stur	w0, [x19,#-144]
ffff8000113ab44c:	6b16029f 	cmp	w20, w22
ffff8000113ab450:	5400046a 	b.ge	ffff8000113ab4dc <process_backlog+0x154>
	struct sk_buff *skb = list_->next;
ffff8000113ab454:	f9400380 	ldr	x0, [x28]
	if (skb == (struct sk_buff *)list_)
ffff8000113ab458:	eb15001f 	cmp	x0, x21
ffff8000113ab45c:	54fffda1 	b.ne	ffff8000113ab410 <process_backlog+0x88>
ffff8000113ab460:	d50342df 	msr	daifset, #0x2
ffff8000113ab464:	f98002f1 	prfm	pstl1strm, [x23]
ffff8000113ab468:	885ffee1 	ldaxr	w1, [x23]
ffff8000113ab46c:	4a190020 	eor	w0, w1, w25
ffff8000113ab470:	35000060 	cbnz	w0, ffff8000113ab47c <process_backlog+0xf4>
ffff8000113ab474:	88007ef8 	stxr	w0, w24, [x23]
ffff8000113ab478:	35ffff80 	cbnz	w0, ffff8000113ab468 <process_backlog+0xe0>
ffff8000113ab47c:	350004c1 	cbnz	w1, ffff8000113ab514 <process_backlog+0x18c>
	return list->next == (const struct sk_buff *) list;
ffff8000113ab480:	f85e8260 	ldur	x0, [x19,#-24]
	list->qlen = 0;
ffff8000113ab484:	52800021 	mov	w1, #0x1                   	// #1
		if (skb_queue_empty(&sd->input_pkt_queue)) {
ffff8000113ab488:	eb00037f 	cmp	x27, x0
ffff8000113ab48c:	54000380 	b.eq	ffff8000113ab4fc <process_backlog+0x174>
		__skb_queue_splice(list, head->prev, (struct sk_buff *) head);
ffff8000113ab490:	f9400783 	ldr	x3, [x28,#8]
static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,
ffff8000113ab494:	f85f0262 	ldur	x2, [x19,#-16]
ffff8000113ab498:	f9000403 	str	x3, [x0,#8]
ffff8000113ab49c:	f9000060 	str	x0, [x3]
ffff8000113ab4a0:	f9000055 	str	x21, [x2]
ffff8000113ab4a4:	f8108262 	stur	x2, [x19,#-248]
		head->qlen += list->qlen;
ffff8000113ab4a8:	b9401380 	ldr	w0, [x28,#16]
ffff8000113ab4ac:	b85f8262 	ldur	w2, [x19,#-8]
ffff8000113ab4b0:	0b000040 	add	w0, w2, w0
ffff8000113ab4b4:	b9001380 	str	w0, [x28,#16]
	list->prev = list->next = (struct sk_buff *)list;
ffff8000113ab4b8:	f81e827b 	stur	x27, [x19,#-24]
ffff8000113ab4bc:	f81f027b 	stur	x27, [x19,#-16]
	list->qlen = 0;
ffff8000113ab4c0:	b81f827f 	stur	wzr, [x19,#-8]
	smp_store_release(&lock->locked, 0);
ffff8000113ab4c4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ab4c8:	d1001262 	sub	x2, x19, #0x4
ffff8000113ab4cc:	089ffc40 	stlrb	w0, [x2]
	asm volatile(ALTERNATIVE(
ffff8000113ab4d0:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113ab4d4:	d50342ff 	msr	daifclr, #0x2
	while (again) {
ffff8000113ab4d8:	35fffbe1 	cbnz	w1, ffff8000113ab454 <process_backlog+0xcc>
}
ffff8000113ab4dc:	2a1403e0 	mov	w0, w20
ffff8000113ab4e0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ab4e4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab4e8:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ab4ec:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113ab4f0:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113ab4f4:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113ab4f8:	d65f03c0 	ret
			napi->state = 0;
ffff8000113ab4fc:	f9000a7f 	str	xzr, [x19,#16]
			again = false;
ffff8000113ab500:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113ab504:	17fffff0 	b	ffff8000113ab4c4 <process_backlog+0x13c>
ffff8000113ab508:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113ab50c:	d50342ff 	msr	daifclr, #0x2
ffff8000113ab510:	17ffffb3 	b	ffff8000113ab3dc <process_backlog+0x54>
	queued_spin_lock_slowpath(lock, val);
ffff8000113ab514:	aa1703e0 	mov	x0, x23
ffff8000113ab518:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113ab518: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113ab51c:	17ffffd9 	b	ffff8000113ab480 <process_backlog+0xf8>

ffff8000113ab520 <__netif_receive_skb_list_core>:
{
ffff8000113ab520:	a9b77bfd 	stp	x29, x30, [sp,#-144]!
ffff8000113ab524:	910003fd 	mov	x29, sp
ffff8000113ab528:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab52c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ab530:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ab534:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ab538:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113ab53c:	aa0003fa 	mov	x26, x0
ffff8000113ab540:	53001c21 	uxtb	w1, w1
ffff8000113ab544:	aa1e03e0 	mov	x0, x30
ffff8000113ab548:	b9006fa1 	str	w1, [x29,#108]
ffff8000113ab54c:	94000000 	bl	0 <_mcount>
			ffff8000113ab54c: R_AARCH64_CALL26	_mcount
ffff8000113ab550:	90000001 	adrp	x1, 0 <__stack_chk_guard>
			ffff8000113ab550: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ab554:	f9400020 	ldr	x0, [x1]
			ffff8000113ab554: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab558:	f9400355 	ldr	x21, [x26]
	WRITE_ONCE(list->next, list);
ffff8000113ab55c:	9101e3b3 	add	x19, x29, #0x78
{
ffff8000113ab560:	f90047a0 	str	x0, [x29,#136]
ffff8000113ab564:	f9003fb3 	str	x19, [x29,#120]
	list->prev = list;
ffff8000113ab568:	f90043b3 	str	x19, [x29,#128]
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab56c:	eb1a02bf 	cmp	x21, x26
ffff8000113ab570:	f94002b6 	ldr	x22, [x21]
ffff8000113ab574:	aa1503f8 	mov	x24, x21
ffff8000113ab578:	54000c40 	b.eq	ffff8000113ab700 <__netif_receive_skb_list_core+0x1e0>
	struct net_device *od_curr = NULL;
ffff8000113ab57c:	d2800017 	mov	x23, #0x0                   	// #0
	struct packet_type *pt_curr = NULL;
ffff8000113ab580:	aa1703f4 	mov	x20, x23
ffff8000113ab584:	1400001a 	b	ffff8000113ab5ec <__netif_receive_skb_list_core+0xcc>
		INDIRECT_CALL_INET(pt_prev->list_func, ipv6_list_rcv,
ffff8000113ab588:	aa1403e1 	mov	x1, x20
ffff8000113ab58c:	aa1303e0 	mov	x0, x19
ffff8000113ab590:	aa1703e2 	mov	x2, x23
ffff8000113ab594:	d63f0060 	blr	x3
ffff8000113ab598:	f9403bb4 	ldr	x20, [x29,#112]
		struct net_device *orig_dev = skb->dev;
ffff8000113ab59c:	aa1903f7 	mov	x23, x25
ffff8000113ab5a0:	f9003fb3 	str	x19, [x29,#120]
ffff8000113ab5a4:	f9000673 	str	x19, [x19,#8]
ffff8000113ab5a8:	aa1303f9 	mov	x25, x19
	if (!__list_add_valid(new, prev, next))
ffff8000113ab5ac:	aa1803e0 	mov	x0, x24
ffff8000113ab5b0:	aa1903e1 	mov	x1, x25
ffff8000113ab5b4:	aa1303e2 	mov	x2, x19
ffff8000113ab5b8:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ab5b8: R_AARCH64_CALL26	__list_add_valid
ffff8000113ab5bc:	53001c00 	uxtb	w0, w0
ffff8000113ab5c0:	340000a0 	cbz	w0, ffff8000113ab5d4 <__netif_receive_skb_list_core+0xb4>
	next->prev = new;
ffff8000113ab5c4:	f9000678 	str	x24, [x19,#8]
	new->next = next;
ffff8000113ab5c8:	f90002b3 	str	x19, [x21]
	new->prev = prev;
ffff8000113ab5cc:	f90006b9 	str	x25, [x21,#8]
ffff8000113ab5d0:	f9000338 	str	x24, [x25]
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab5d4:	eb1a02df 	cmp	x22, x26
ffff8000113ab5d8:	f94002c0 	ldr	x0, [x22]
ffff8000113ab5dc:	aa1603f8 	mov	x24, x22
ffff8000113ab5e0:	540007c0 	b.eq	ffff8000113ab6d8 <__netif_receive_skb_list_core+0x1b8>
ffff8000113ab5e4:	aa1603f5 	mov	x21, x22
ffff8000113ab5e8:	aa0003f6 	mov	x22, x0
	if (!__list_del_entry_valid(entry))
ffff8000113ab5ec:	aa1803e0 	mov	x0, x24
		struct net_device *orig_dev = skb->dev;
ffff8000113ab5f0:	f9400ab9 	ldr	x25, [x21,#16]
		struct packet_type *pt_prev = NULL;
ffff8000113ab5f4:	f9003bbf 	str	xzr, [x29,#112]
ffff8000113ab5f8:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ab5f8: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ab5fc:	53001c00 	uxtb	w0, w0
ffff8000113ab600:	340000a0 	cbz	w0, ffff8000113ab614 <__netif_receive_skb_list_core+0xf4>
	__list_del(entry->prev, entry->next);
ffff8000113ab604:	f94006a0 	ldr	x0, [x21,#8]
ffff8000113ab608:	f94002a1 	ldr	x1, [x21]
	next->prev = prev;
ffff8000113ab60c:	f9000420 	str	x0, [x1,#8]
ffff8000113ab610:	f9000001 	str	x1, [x0]
		__netif_receive_skb_core(skb, pfmemalloc, &pt_prev);
ffff8000113ab614:	3941b3a1 	ldrb	w1, [x29,#108]
ffff8000113ab618:	9101c3a2 	add	x2, x29, #0x70
	skb->next = NULL;
ffff8000113ab61c:	f90002bf 	str	xzr, [x21]
ffff8000113ab620:	aa1503e0 	mov	x0, x21
ffff8000113ab624:	97fffb9d 	bl	ffff8000113aa498 <__netif_receive_skb_core>
		if (!pt_prev)
ffff8000113ab628:	f9403ba2 	ldr	x2, [x29,#112]
ffff8000113ab62c:	b4fffd42 	cbz	x2, ffff8000113ab5d4 <__netif_receive_skb_list_core+0xb4>
		if (pt_curr != pt_prev || od_curr != orig_dev) {
ffff8000113ab630:	eb02029f 	cmp	x20, x2
ffff8000113ab634:	54000460 	b.eq	ffff8000113ab6c0 <__netif_receive_skb_list_core+0x1a0>
	if (!pt_prev)
ffff8000113ab638:	b40004d4 	cbz	x20, ffff8000113ab6d0 <__netif_receive_skb_list_core+0x1b0>
	__READ_ONCE_SIZE;
ffff8000113ab63c:	f9403fa0 	ldr	x0, [x29,#120]
	if (list_empty(head))
ffff8000113ab640:	eb00027f 	cmp	x19, x0
ffff8000113ab644:	54000460 	b.eq	ffff8000113ab6d0 <__netif_receive_skb_list_core+0x1b0>
	if (pt_prev->list_func != NULL)
ffff8000113ab648:	f9400e83 	ldr	x3, [x20,#24]
ffff8000113ab64c:	b5fff9e3 	cbnz	x3, ffff8000113ab588 <__netif_receive_skb_list_core+0x68>
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab650:	f940027c 	ldr	x28, [x19]
ffff8000113ab654:	eb13039f 	cmp	x28, x19
ffff8000113ab658:	f940039b 	ldr	x27, [x28]
ffff8000113ab65c:	aa1c03e0 	mov	x0, x28
ffff8000113ab660:	54000081 	b.ne	ffff8000113ab670 <__netif_receive_skb_list_core+0x150>
ffff8000113ab664:	1400001b 	b	ffff8000113ab6d0 <__netif_receive_skb_list_core+0x1b0>
ffff8000113ab668:	aa1b03fc 	mov	x28, x27
ffff8000113ab66c:	aa0203fb 	mov	x27, x2
	if (!__list_del_entry_valid(entry))
ffff8000113ab670:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ab670: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ab674:	53001c00 	uxtb	w0, w0
ffff8000113ab678:	340000a0 	cbz	w0, ffff8000113ab68c <__netif_receive_skb_list_core+0x16c>
	__list_del(entry->prev, entry->next);
ffff8000113ab67c:	f9400780 	ldr	x0, [x28,#8]
ffff8000113ab680:	f9400382 	ldr	x2, [x28]
	next->prev = prev;
ffff8000113ab684:	f9000440 	str	x0, [x2,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ab688:	f9000002 	str	x2, [x0]
ffff8000113ab68c:	f900039f 	str	xzr, [x28]
			pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113ab690:	f9400a85 	ldr	x5, [x20,#16]
ffff8000113ab694:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113ab698:	aa1403e2 	mov	x2, x20
ffff8000113ab69c:	aa1c03e0 	mov	x0, x28
ffff8000113ab6a0:	aa1703e3 	mov	x3, x23
ffff8000113ab6a4:	d63f00a0 	blr	x5
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab6a8:	eb13037f 	cmp	x27, x19
ffff8000113ab6ac:	f9400362 	ldr	x2, [x27]
ffff8000113ab6b0:	aa1b03e0 	mov	x0, x27
ffff8000113ab6b4:	54fffda1 	b.ne	ffff8000113ab668 <__netif_receive_skb_list_core+0x148>
ffff8000113ab6b8:	f9403bb4 	ldr	x20, [x29,#112]
ffff8000113ab6bc:	17ffffb8 	b	ffff8000113ab59c <__netif_receive_skb_list_core+0x7c>
		if (pt_curr != pt_prev || od_curr != orig_dev) {
ffff8000113ab6c0:	eb1902ff 	cmp	x23, x25
ffff8000113ab6c4:	54fffbc1 	b.ne	ffff8000113ab63c <__netif_receive_skb_list_core+0x11c>
ffff8000113ab6c8:	f9400679 	ldr	x25, [x19,#8]
ffff8000113ab6cc:	17ffffb8 	b	ffff8000113ab5ac <__netif_receive_skb_list_core+0x8c>
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab6d0:	aa0203f4 	mov	x20, x2
ffff8000113ab6d4:	17ffffb2 	b	ffff8000113ab59c <__netif_receive_skb_list_core+0x7c>
	if (!pt_prev)
ffff8000113ab6d8:	b4000154 	cbz	x20, ffff8000113ab700 <__netif_receive_skb_list_core+0x1e0>
	__READ_ONCE_SIZE;
ffff8000113ab6dc:	f9403fa0 	ldr	x0, [x29,#120]
	if (list_empty(head))
ffff8000113ab6e0:	eb00027f 	cmp	x19, x0
ffff8000113ab6e4:	540000e0 	b.eq	ffff8000113ab700 <__netif_receive_skb_list_core+0x1e0>
	if (pt_prev->list_func != NULL)
ffff8000113ab6e8:	f9400e83 	ldr	x3, [x20,#24]
ffff8000113ab6ec:	b4000223 	cbz	x3, ffff8000113ab730 <__netif_receive_skb_list_core+0x210>
		INDIRECT_CALL_INET(pt_prev->list_func, ipv6_list_rcv,
ffff8000113ab6f0:	aa1303e0 	mov	x0, x19
ffff8000113ab6f4:	aa1403e1 	mov	x1, x20
ffff8000113ab6f8:	aa1703e2 	mov	x2, x23
ffff8000113ab6fc:	d63f0060 	blr	x3
}
ffff8000113ab700:	90000002 	adrp	x2, 0 <__stack_chk_guard>
			ffff8000113ab700: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ab704:	f94047a1 	ldr	x1, [x29,#136]
ffff8000113ab708:	f9400040 	ldr	x0, [x2]
			ffff8000113ab708: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ab70c:	eb00003f 	cmp	x1, x0
ffff8000113ab710:	54000461 	b.ne	ffff8000113ab79c <__netif_receive_skb_list_core+0x27c>
ffff8000113ab714:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab718:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ab71c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ab720:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113ab724:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113ab728:	a8c97bfd 	ldp	x29, x30, [sp],#144
ffff8000113ab72c:	d65f03c0 	ret
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab730:	f9400276 	ldr	x22, [x19]
ffff8000113ab734:	eb1302df 	cmp	x22, x19
ffff8000113ab738:	f94002d5 	ldr	x21, [x22]
ffff8000113ab73c:	aa1603e0 	mov	x0, x22
ffff8000113ab740:	54000081 	b.ne	ffff8000113ab750 <__netif_receive_skb_list_core+0x230>
ffff8000113ab744:	17ffffef 	b	ffff8000113ab700 <__netif_receive_skb_list_core+0x1e0>
ffff8000113ab748:	aa1503f6 	mov	x22, x21
ffff8000113ab74c:	aa0103f5 	mov	x21, x1
	if (!__list_del_entry_valid(entry))
ffff8000113ab750:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ab750: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ab754:	53001c00 	uxtb	w0, w0
ffff8000113ab758:	340000a0 	cbz	w0, ffff8000113ab76c <__netif_receive_skb_list_core+0x24c>
	__list_del(entry->prev, entry->next);
ffff8000113ab75c:	f94006c0 	ldr	x0, [x22,#8]
ffff8000113ab760:	f94002c1 	ldr	x1, [x22]
	next->prev = prev;
ffff8000113ab764:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ab768:	f9000001 	str	x1, [x0]
ffff8000113ab76c:	f90002df 	str	xzr, [x22]
			pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
ffff8000113ab770:	f9400ac1 	ldr	x1, [x22,#16]
ffff8000113ab774:	f9400a84 	ldr	x4, [x20,#16]
ffff8000113ab778:	aa1603e0 	mov	x0, x22
ffff8000113ab77c:	aa1403e2 	mov	x2, x20
ffff8000113ab780:	aa1703e3 	mov	x3, x23
ffff8000113ab784:	d63f0080 	blr	x4
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab788:	eb1302bf 	cmp	x21, x19
ffff8000113ab78c:	f94002a1 	ldr	x1, [x21]
ffff8000113ab790:	aa1503e0 	mov	x0, x21
ffff8000113ab794:	54fffda1 	b.ne	ffff8000113ab748 <__netif_receive_skb_list_core+0x228>
ffff8000113ab798:	17ffffda 	b	ffff8000113ab700 <__netif_receive_skb_list_core+0x1e0>
}
ffff8000113ab79c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ab79c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ab7a0 <netif_receive_skb_list_internal>:
{
ffff8000113ab7a0:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff8000113ab7a4:	910003fd 	mov	x29, sp
ffff8000113ab7a8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ab7ac:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ab7b0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ab7b4:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ab7b8:	f9002bfb 	str	x27, [sp,#80]
ffff8000113ab7bc:	aa0003f3 	mov	x19, x0
ffff8000113ab7c0:	aa1e03e0 	mov	x0, x30
ffff8000113ab7c4:	94000000 	bl	0 <_mcount>
			ffff8000113ab7c4: R_AARCH64_CALL26	_mcount
ffff8000113ab7c8:	90000017 	adrp	x23, 0 <__stack_chk_guard>
			ffff8000113ab7c8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ab7cc:	f94002e0 	ldr	x0, [x23]
			ffff8000113ab7cc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab7d0:	f9400275 	ldr	x21, [x19]
	WRITE_ONCE(list->next, list);
ffff8000113ab7d4:	9101e3b8 	add	x24, x29, #0x78
{
ffff8000113ab7d8:	f9004fa0 	str	x0, [x29,#152]
ffff8000113ab7dc:	f9003fb8 	str	x24, [x29,#120]
	list->prev = list;
ffff8000113ab7e0:	f90043b8 	str	x24, [x29,#128]
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab7e4:	eb1302bf 	cmp	x21, x19
ffff8000113ab7e8:	f94002b4 	ldr	x20, [x21]
ffff8000113ab7ec:	aa1503f6 	mov	x22, x21
ffff8000113ab7f0:	90000019 	adrp	x25, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab7f0: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113ab7f4:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ab7f4: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113ab7f8:	54000101 	b.ne	ffff8000113ab818 <netif_receive_skb_list_internal+0x78>
ffff8000113ab7fc:	14000027 	b	ffff8000113ab898 <netif_receive_skb_list_internal+0xf8>
ffff8000113ab800:	eb13029f 	cmp	x20, x19
ffff8000113ab804:	f9400280 	ldr	x0, [x20]
ffff8000113ab808:	aa1403f6 	mov	x22, x20
ffff8000113ab80c:	54000460 	b.eq	ffff8000113ab898 <netif_receive_skb_list_internal+0xf8>
ffff8000113ab810:	aa1403f5 	mov	x21, x20
ffff8000113ab814:	aa0003f4 	mov	x20, x0
	__READ_ONCE_SIZE;
ffff8000113ab818:	91000320 	add	x0, x25, #0x0
			ffff8000113ab818: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113ab81c:	b9434800 	ldr	w0, [x0,#840]
		net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113ab820:	6b1f001f 	cmp	w0, wzr
ffff8000113ab824:	540010ac 	b.gt	ffff8000113aba38 <netif_receive_skb_list_internal+0x298>
	if (!__list_del_entry_valid(entry))
ffff8000113ab828:	aa1603e0 	mov	x0, x22
ffff8000113ab82c:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ab82c: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ab830:	53001c00 	uxtb	w0, w0
ffff8000113ab834:	340000a0 	cbz	w0, ffff8000113ab848 <netif_receive_skb_list_internal+0xa8>
	__list_del(entry->prev, entry->next);
ffff8000113ab838:	f94006a0 	ldr	x0, [x21,#8]
ffff8000113ab83c:	f94002a1 	ldr	x1, [x21]
	next->prev = prev;
ffff8000113ab840:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ab844:	f9000001 	str	x1, [x0]
ffff8000113ab848:	f90002bf 	str	xzr, [x21]
		if (!skb_defer_rx_timestamp(skb))
ffff8000113ab84c:	aa1503e0 	mov	x0, x21
ffff8000113ab850:	94000000 	bl	0 <skb_defer_rx_timestamp>
			ffff8000113ab850: R_AARCH64_CALL26	skb_defer_rx_timestamp
ffff8000113ab854:	53001c00 	uxtb	w0, w0
ffff8000113ab858:	35fffd40 	cbnz	w0, ffff8000113ab800 <netif_receive_skb_list_internal+0x60>
	__list_add(new, head->prev, head);
ffff8000113ab85c:	f940071b 	ldr	x27, [x24,#8]
	if (!__list_add_valid(new, prev, next))
ffff8000113ab860:	aa1603e0 	mov	x0, x22
ffff8000113ab864:	aa1b03e1 	mov	x1, x27
ffff8000113ab868:	aa1803e2 	mov	x2, x24
ffff8000113ab86c:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ab86c: R_AARCH64_CALL26	__list_add_valid
ffff8000113ab870:	53001c00 	uxtb	w0, w0
ffff8000113ab874:	34fffc60 	cbz	w0, ffff8000113ab800 <netif_receive_skb_list_internal+0x60>
	next->prev = new;
ffff8000113ab878:	f9000716 	str	x22, [x24,#8]
	new->next = next;
ffff8000113ab87c:	f90002b8 	str	x24, [x21]
	new->prev = prev;
ffff8000113ab880:	f90006bb 	str	x27, [x21,#8]
ffff8000113ab884:	f9000376 	str	x22, [x27]
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab888:	eb13029f 	cmp	x20, x19
ffff8000113ab88c:	f9400280 	ldr	x0, [x20]
ffff8000113ab890:	aa1403f6 	mov	x22, x20
ffff8000113ab894:	54fffbe1 	b.ne	ffff8000113ab810 <netif_receive_skb_list_internal+0x70>
	__READ_ONCE_SIZE;
ffff8000113ab898:	f9403fa0 	ldr	x0, [x29,#120]
	if (!list_empty(list)) {
ffff8000113ab89c:	eb00031f 	cmp	x24, x0
ffff8000113ab8a0:	54000140 	b.eq	ffff8000113ab8c8 <netif_receive_skb_list_internal+0x128>
	struct list_head *first = list->next;
ffff8000113ab8a4:	f9403fa2 	ldr	x2, [x29,#120]
		__list_splice(list, head, head->next);
ffff8000113ab8a8:	f9400260 	ldr	x0, [x19]
	struct list_head *last = list->prev;
ffff8000113ab8ac:	f94043a1 	ldr	x1, [x29,#128]
	first->prev = prev;
ffff8000113ab8b0:	f9000453 	str	x19, [x2,#8]
	prev->next = first;
ffff8000113ab8b4:	f9000262 	str	x2, [x19]
	last->next = next;
ffff8000113ab8b8:	f9000020 	str	x0, [x1]
	next->prev = last;
ffff8000113ab8bc:	f9000401 	str	x1, [x0,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ab8c0:	f9003fb8 	str	x24, [x29,#120]
	list->prev = list;
ffff8000113ab8c4:	f90043b8 	str	x24, [x29,#128]
	__READ_ONCE_SIZE;
ffff8000113ab8c8:	9100035a 	add	x26, x26, #0x0
			ffff8000113ab8c8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113ab8cc:	b9495340 	ldr	w0, [x26,#2384]
	if (static_branch_unlikely(&rps_needed)) {
ffff8000113ab8d0:	6b1f001f 	cmp	w0, wzr
ffff8000113ab8d4:	54000c2c 	b.gt	ffff8000113aba58 <netif_receive_skb_list_internal+0x2b8>
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab8d8:	f9400261 	ldr	x1, [x19]
ffff8000113ab8dc:	eb01027f 	cmp	x19, x1
ffff8000113ab8e0:	f9400034 	ldr	x20, [x1]
ffff8000113ab8e4:	aa0103e2 	mov	x2, x1
ffff8000113ab8e8:	540009c0 	b.eq	ffff8000113aba20 <netif_receive_skb_list_internal+0x280>
	unsigned long noreclaim_flag = 0;
ffff8000113ab8ec:	d2800018 	mov	x24, #0x0                   	// #0
ffff8000113ab8f0:	90000019 	adrp	x25, 0 <memalloc_socks_key>
			ffff8000113ab8f0: R_AARCH64_ADR_PREL_PG_HI21	memalloc_socks_key
ffff8000113ab8f4:	d538411a 	mrs	x26, sp_el0
	bool pfmemalloc = false; /* Is current sublist PF_MEMALLOC? */
ffff8000113ab8f8:	2a1803f6 	mov	w22, w24
ffff8000113ab8fc:	91000339 	add	x25, x25, #0x0
			ffff8000113ab8fc: R_AARCH64_ADD_ABS_LO12_NC	memalloc_socks_key
ffff8000113ab900:	aa1a03fb 	mov	x27, x26
	list->next = head->next;
ffff8000113ab904:	910223b5 	add	x21, x29, #0x88
ffff8000113ab908:	1400000c 	b	ffff8000113ab938 <netif_receive_skb_list_internal+0x198>
	unsigned int flags = current->flags & PF_MEMALLOC;
ffff8000113ab90c:	b9403760 	ldr	w0, [x27,#52]
ffff8000113ab910:	12150018 	and	w24, w0, #0x800
	current->flags |= PF_MEMALLOC;
ffff8000113ab914:	32150000 	orr	w0, w0, #0x800
ffff8000113ab918:	b9003760 	str	w0, [x27,#52]
				noreclaim_flag = memalloc_noreclaim_save();
ffff8000113ab91c:	2a1803f8 	mov	w24, w24
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab920:	eb14027f 	cmp	x19, x20
ffff8000113ab924:	f9400280 	ldr	x0, [x20]
ffff8000113ab928:	aa1403e2 	mov	x2, x20
ffff8000113ab92c:	54000460 	b.eq	ffff8000113ab9b8 <netif_receive_skb_list_internal+0x218>
ffff8000113ab930:	aa1403e1 	mov	x1, x20
ffff8000113ab934:	aa0003f4 	mov	x20, x0
ffff8000113ab938:	b9400323 	ldr	w3, [x25]
		if ((sk_memalloc_socks() && skb_pfmemalloc(skb)) != pfmemalloc) {
ffff8000113ab93c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ab940:	6b00007f 	cmp	w3, w0
ffff8000113ab944:	5400074c 	b.gt	ffff8000113aba2c <netif_receive_skb_list_internal+0x28c>
ffff8000113ab948:	6b0002df 	cmp	w22, w0
ffff8000113ab94c:	54fffea0 	b.eq	ffff8000113ab920 <netif_receive_skb_list_internal+0x180>
	if (head->next == entry) {
ffff8000113ab950:	f9400260 	ldr	x0, [x19]
ffff8000113ab954:	eb02001f 	cmp	x0, x2
ffff8000113ab958:	540005e0 	b.eq	ffff8000113aba14 <netif_receive_skb_list_internal+0x274>
	list->next = head->next;
ffff8000113ab95c:	f90002a0 	str	x0, [x21]
	list->next->prev = list;
ffff8000113ab960:	f9000415 	str	x21, [x0,#8]
	list->prev = entry->prev;
ffff8000113ab964:	f9400420 	ldr	x0, [x1,#8]
ffff8000113ab968:	f90006a0 	str	x0, [x21,#8]
	list->prev->next = list;
ffff8000113ab96c:	f9000015 	str	x21, [x0]
	head->next = entry;
ffff8000113ab970:	f9000262 	str	x2, [x19]
	entry->prev = head;
ffff8000113ab974:	f9000433 	str	x19, [x1,#8]
ffff8000113ab978:	f94047a0 	ldr	x0, [x29,#136]
			if (!list_empty(&sublist))
ffff8000113ab97c:	eb0002bf 	cmp	x21, x0
ffff8000113ab980:	54000080 	b.eq	ffff8000113ab990 <netif_receive_skb_list_internal+0x1f0>
				__netif_receive_skb_list_core(&sublist, pfmemalloc);
ffff8000113ab984:	aa1503e0 	mov	x0, x21
ffff8000113ab988:	2a1603e1 	mov	w1, w22
ffff8000113ab98c:	97fffee5 	bl	ffff8000113ab520 <__netif_receive_skb_list_core>
			pfmemalloc = !pfmemalloc;
ffff8000113ab990:	520002d6 	eor	w22, w22, #0x1
			if (pfmemalloc)
ffff8000113ab994:	35fffbd6 	cbnz	w22, ffff8000113ab90c <netif_receive_skb_list_internal+0x16c>
	current->flags = (current->flags & ~PF_MEMALLOC) | flags;
ffff8000113ab998:	b9403740 	ldr	w0, [x26,#52]
	list_for_each_entry_safe(skb, next, head, list) {
ffff8000113ab99c:	eb14027f 	cmp	x19, x20
ffff8000113ab9a0:	12147800 	and	w0, w0, #0xfffff7ff
ffff8000113ab9a4:	2a180000 	orr	w0, w0, w24
ffff8000113ab9a8:	b9003740 	str	w0, [x26,#52]
ffff8000113ab9ac:	f9400280 	ldr	x0, [x20]
ffff8000113ab9b0:	aa1403e2 	mov	x2, x20
ffff8000113ab9b4:	54fffbe1 	b.ne	ffff8000113ab930 <netif_receive_skb_list_internal+0x190>
ffff8000113ab9b8:	f9400260 	ldr	x0, [x19]
	if (!list_empty(head))
ffff8000113ab9bc:	eb00027f 	cmp	x19, x0
ffff8000113ab9c0:	54000080 	b.eq	ffff8000113ab9d0 <netif_receive_skb_list_internal+0x230>
		__netif_receive_skb_list_core(head, pfmemalloc);
ffff8000113ab9c4:	aa1303e0 	mov	x0, x19
ffff8000113ab9c8:	2a1603e1 	mov	w1, w22
ffff8000113ab9cc:	97fffed5 	bl	ffff8000113ab520 <__netif_receive_skb_list_core>
	if (pfmemalloc)
ffff8000113ab9d0:	340000d6 	cbz	w22, ffff8000113ab9e8 <netif_receive_skb_list_internal+0x248>
ffff8000113ab9d4:	d5384100 	mrs	x0, sp_el0
ffff8000113ab9d8:	b9403401 	ldr	w1, [x0,#52]
ffff8000113ab9dc:	12147821 	and	w1, w1, #0xfffff7ff
ffff8000113ab9e0:	2a180038 	orr	w24, w1, w24
ffff8000113ab9e4:	b9003418 	str	w24, [x0,#52]
}
ffff8000113ab9e8:	f9404fa1 	ldr	x1, [x29,#152]
ffff8000113ab9ec:	f94002e0 	ldr	x0, [x23]
			ffff8000113ab9ec: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ab9f0:	eb00003f 	cmp	x1, x0
ffff8000113ab9f4:	540007a1 	b.ne	ffff8000113abae8 <netif_receive_skb_list_internal+0x348>
ffff8000113ab9f8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ab9fc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aba00:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113aba04:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113aba08:	f9402bfb 	ldr	x27, [sp,#80]
ffff8000113aba0c:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff8000113aba10:	d65f03c0 	ret
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113aba14:	f90047b5 	str	x21, [x29,#136]
	list->prev = list;
ffff8000113aba18:	f90006b5 	str	x21, [x21,#8]
ffff8000113aba1c:	17ffffd7 	b	ffff8000113ab978 <netif_receive_skb_list_internal+0x1d8>
	unsigned long noreclaim_flag = 0;
ffff8000113aba20:	d2800018 	mov	x24, #0x0                   	// #0
	bool pfmemalloc = false; /* Is current sublist PF_MEMALLOC? */
ffff8000113aba24:	2a1803f6 	mov	w22, w24
ffff8000113aba28:	17ffffe4 	b	ffff8000113ab9b8 <netif_receive_skb_list_internal+0x218>
	return unlikely(skb->pfmemalloc);
ffff8000113aba2c:	3941f820 	ldrb	w0, [x1,#126]
		if ((sk_memalloc_socks() && skb_pfmemalloc(skb)) != pfmemalloc) {
ffff8000113aba30:	d3461800 	ubfx	x0, x0, #6, #1
ffff8000113aba34:	17ffffc5 	b	ffff8000113ab948 <netif_receive_skb_list_internal+0x1a8>
		net_timestamp_check(netdev_tstamp_prequeue, skb);
ffff8000113aba38:	91000340 	add	x0, x26, #0x0
			ffff8000113aba38: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113aba3c:	b9494c00 	ldr	w0, [x0,#2380]
ffff8000113aba40:	34ffef40 	cbz	w0, ffff8000113ab828 <netif_receive_skb_list_internal+0x88>
ffff8000113aba44:	f94012a0 	ldr	x0, [x21,#32]
ffff8000113aba48:	b5ffef00 	cbnz	x0, ffff8000113ab828 <netif_receive_skb_list_internal+0x88>
ffff8000113aba4c:	94000000 	bl	0 <ktime_get_with_offset>
			ffff8000113aba4c: R_AARCH64_CALL26	ktime_get_with_offset
	skb->tstamp = ktime_get_real();
ffff8000113aba50:	f90012a0 	str	x0, [x21,#32]
ffff8000113aba54:	17ffff75 	b	ffff8000113ab828 <netif_receive_skb_list_internal+0x88>
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113aba58:	f9400274 	ldr	x20, [x19]
ffff8000113aba5c:	9101c3b8 	add	x24, x29, #0x70
ffff8000113aba60:	eb13029f 	cmp	x20, x19
ffff8000113aba64:	f9400295 	ldr	x21, [x20]
ffff8000113aba68:	aa1403f6 	mov	x22, x20
ffff8000113aba6c:	54000081 	b.ne	ffff8000113aba7c <netif_receive_skb_list_internal+0x2dc>
ffff8000113aba70:	17ffffec 	b	ffff8000113aba20 <netif_receive_skb_list_internal+0x280>
ffff8000113aba74:	aa1503f4 	mov	x20, x21
ffff8000113aba78:	aa0003f5 	mov	x21, x0
			struct rps_dev_flow voidflow, *rflow = &voidflow;
ffff8000113aba7c:	f90047b8 	str	x24, [x29,#136]
			int cpu = get_rps_cpu(skb->dev, skb, &rflow);
ffff8000113aba80:	f9400a80 	ldr	x0, [x20,#16]
ffff8000113aba84:	aa1403e1 	mov	x1, x20
ffff8000113aba88:	910223a2 	add	x2, x29, #0x88
ffff8000113aba8c:	97ffd37f 	bl	ffff8000113a0888 <get_rps_cpu>
ffff8000113aba90:	2a0003e1 	mov	w1, w0
			if (cpu >= 0) {
ffff8000113aba94:	37f80201 	tbnz	w1, #31, ffff8000113abad4 <netif_receive_skb_list_internal+0x334>
	if (!__list_del_entry_valid(entry))
ffff8000113aba98:	aa1603e0 	mov	x0, x22
ffff8000113aba9c:	f90037a1 	str	x1, [x29,#104]
ffff8000113abaa0:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113abaa0: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113abaa4:	53001c00 	uxtb	w0, w0
ffff8000113abaa8:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113abaac:	340000a0 	cbz	w0, ffff8000113abac0 <netif_receive_skb_list_internal+0x320>
	__list_del(entry->prev, entry->next);
ffff8000113abab0:	f9400680 	ldr	x0, [x20,#8]
ffff8000113abab4:	f9400282 	ldr	x2, [x20]
	next->prev = prev;
ffff8000113abab8:	f9000440 	str	x0, [x2,#8]
ffff8000113ababc:	f9000002 	str	x2, [x0]
	skb->next = NULL;
ffff8000113abac0:	f900029f 	str	xzr, [x20]
				enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
ffff8000113abac4:	f94047a2 	ldr	x2, [x29,#136]
ffff8000113abac8:	aa1403e0 	mov	x0, x20
ffff8000113abacc:	91001042 	add	x2, x2, #0x4
ffff8000113abad0:	97ffeac2 	bl	ffff8000113a65d8 <enqueue_to_backlog>
		list_for_each_entry_safe(skb, next, head, list) {
ffff8000113abad4:	eb1302bf 	cmp	x21, x19
ffff8000113abad8:	f94002a0 	ldr	x0, [x21]
ffff8000113abadc:	aa1503f6 	mov	x22, x21
ffff8000113abae0:	54fffca1 	b.ne	ffff8000113aba74 <netif_receive_skb_list_internal+0x2d4>
ffff8000113abae4:	17ffff7d 	b	ffff8000113ab8d8 <netif_receive_skb_list_internal+0x138>
}
ffff8000113abae8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113abae8: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113abaec <netif_receive_skb_list>:
{
ffff8000113abaec:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113abaf0:	910003fd 	mov	x29, sp
ffff8000113abaf4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113abaf8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113abafc:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113abb00:	aa0003f5 	mov	x21, x0
ffff8000113abb04:	aa1e03e0 	mov	x0, x30
ffff8000113abb08:	94000000 	bl	0 <_mcount>
			ffff8000113abb08: R_AARCH64_CALL26	_mcount
	__READ_ONCE_SIZE;
ffff8000113abb0c:	f94002a0 	ldr	x0, [x21]
	if (list_empty(head))
ffff8000113abb10:	eb0002bf 	cmp	x21, x0
ffff8000113abb14:	540001a0 	b.eq	ffff8000113abb48 <netif_receive_skb_list+0x5c>
ffff8000113abb18:	90000016 	adrp	x22, 0 <__tracepoint_netif_receive_skb_list_entry>
			ffff8000113abb18: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_receive_skb_list_entry
ffff8000113abb1c:	910002c0 	add	x0, x22, #0x0
			ffff8000113abb1c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb_list_entry
ffff8000113abb20:	b9400800 	ldr	w0, [x0,#8]
ffff8000113abb24:	6b1f001f 	cmp	w0, wzr
ffff8000113abb28:	540001ac 	b.gt	ffff8000113abb5c <netif_receive_skb_list+0x70>
	netif_receive_skb_list_internal(head);
ffff8000113abb2c:	aa1503e0 	mov	x0, x21
ffff8000113abb30:	97ffff1c 	bl	ffff8000113ab7a0 <netif_receive_skb_list_internal>
ffff8000113abb34:	90000000 	adrp	x0, 0 <__tracepoint_netif_receive_skb_list_exit>
			ffff8000113abb34: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_netif_receive_skb_list_exit
ffff8000113abb38:	91000000 	add	x0, x0, #0x0
			ffff8000113abb38: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb_list_exit
ffff8000113abb3c:	b9400801 	ldr	w1, [x0,#8]
ffff8000113abb40:	6b1f003f 	cmp	w1, wzr
ffff8000113abb44:	5400050c 	b.gt	ffff8000113abbe4 <netif_receive_skb_list+0xf8>
}
ffff8000113abb48:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abb4c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abb50:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113abb54:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113abb58:	d65f03c0 	ret
		list_for_each_entry(skb, head, list)
ffff8000113abb5c:	f94002b4 	ldr	x20, [x21]
ffff8000113abb60:	eb15029f 	cmp	x20, x21
ffff8000113abb64:	54fffe40 	b.eq	ffff8000113abb2c <netif_receive_skb_list+0x40>
DEFINE_EVENT(net_dev_rx_verbose_template, netif_receive_skb_list_entry,
ffff8000113abb68:	90000017 	adrp	x23, 0 <cpu_number>
			ffff8000113abb68: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113abb6c:	90000018 	adrp	x24, 0 <__cpu_online_mask>
			ffff8000113abb6c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113abb70:	910002f7 	add	x23, x23, #0x0
			ffff8000113abb70: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113abb74:	91000318 	add	x24, x24, #0x0
			ffff8000113abb74: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113abb78:	14000004 	b	ffff8000113abb88 <netif_receive_skb_list+0x9c>
ffff8000113abb7c:	f9400294 	ldr	x20, [x20]
ffff8000113abb80:	eb15029f 	cmp	x20, x21
ffff8000113abb84:	54fffd40 	b.eq	ffff8000113abb2c <netif_receive_skb_list+0x40>
ffff8000113abb88:	910002c1 	add	x1, x22, #0x0
			ffff8000113abb88: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_netif_receive_skb_list_entry
ffff8000113abb8c:	b9400820 	ldr	w0, [x1,#8]
ffff8000113abb90:	6b1f001f 	cmp	w0, wzr
ffff8000113abb94:	54ffff4d 	b.le	ffff8000113abb7c <netif_receive_skb_list+0x90>
ffff8000113abb98:	d538d080 	mrs	x0, tpidr_el1
ffff8000113abb9c:	b8776800 	ldr	w0, [x0,x23]
ffff8000113abba0:	1100fc02 	add	w2, w0, #0x3f
ffff8000113abba4:	6b1f001f 	cmp	w0, wzr
ffff8000113abba8:	1a80b042 	csel	w2, w2, w0, lt
ffff8000113abbac:	13067c42 	asr	w2, w2, #6
ffff8000113abbb0:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113abbb4:	f8786842 	ldr	x2, [x2,x24]
ffff8000113abbb8:	9ac02440 	lsr	x0, x2, x0
ffff8000113abbbc:	3607fe00 	tbz	w0, #0, ffff8000113abb7c <netif_receive_skb_list+0x90>
ffff8000113abbc0:	f9401033 	ldr	x19, [x1,#32]
ffff8000113abbc4:	b40000f3 	cbz	x19, ffff8000113abbe0 <netif_receive_skb_list+0xf4>
ffff8000113abbc8:	f9400262 	ldr	x2, [x19]
ffff8000113abbcc:	f9400660 	ldr	x0, [x19,#8]
ffff8000113abbd0:	aa1403e1 	mov	x1, x20
ffff8000113abbd4:	d63f0040 	blr	x2
ffff8000113abbd8:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113abbdc:	b5ffff82 	cbnz	x2, ffff8000113abbcc <netif_receive_skb_list+0xe0>
ffff8000113abbe0:	17ffffe7 	b	ffff8000113abb7c <netif_receive_skb_list+0x90>
	TP_PROTO(int ret),

	TP_ARGS(ret)
);

DEFINE_EVENT(net_dev_rx_exit_template, netif_receive_skb_list_exit,
ffff8000113abbe4:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113abbe4: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113abbe8:	d538d082 	mrs	x2, tpidr_el1
ffff8000113abbec:	91000021 	add	x1, x1, #0x0
			ffff8000113abbec: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113abbf0:	b8616841 	ldr	w1, [x2,x1]
ffff8000113abbf4:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113abbf4: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113abbf8:	1100fc23 	add	w3, w1, #0x3f
ffff8000113abbfc:	6b1f003f 	cmp	w1, wzr
ffff8000113abc00:	1a81b063 	csel	w3, w3, w1, lt
ffff8000113abc04:	13067c63 	asr	w3, w3, #6
ffff8000113abc08:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113abc0c:	91000042 	add	x2, x2, #0x0
			ffff8000113abc0c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113abc10:	f8626862 	ldr	x2, [x3,x2]
ffff8000113abc14:	9ac12441 	lsr	x1, x2, x1
ffff8000113abc18:	3607f981 	tbz	w1, #0, ffff8000113abb48 <netif_receive_skb_list+0x5c>
ffff8000113abc1c:	f9401013 	ldr	x19, [x0,#32]
ffff8000113abc20:	b40000f3 	cbz	x19, ffff8000113abc3c <netif_receive_skb_list+0x150>
ffff8000113abc24:	f9400262 	ldr	x2, [x19]
ffff8000113abc28:	f9400660 	ldr	x0, [x19,#8]
ffff8000113abc2c:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113abc30:	d63f0040 	blr	x2
ffff8000113abc34:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113abc38:	b5ffff82 	cbnz	x2, ffff8000113abc28 <netif_receive_skb_list+0x13c>
}
ffff8000113abc3c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abc40:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abc44:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113abc48:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113abc4c:	d65f03c0 	ret

ffff8000113abc50 <gro_normal_list.part.134>:
static void gro_normal_list(struct napi_struct *napi)
ffff8000113abc50:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113abc54:	910003fd 	mov	x29, sp
ffff8000113abc58:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113abc5c:	aa0003f4 	mov	x20, x0
ffff8000113abc60:	aa1e03e0 	mov	x0, x30
	netif_receive_skb_list_internal(&napi->rx_list);
ffff8000113abc64:	91042293 	add	x19, x20, #0x108
static void gro_normal_list(struct napi_struct *napi)
ffff8000113abc68:	94000000 	bl	0 <_mcount>
			ffff8000113abc68: R_AARCH64_CALL26	_mcount
	netif_receive_skb_list_internal(&napi->rx_list);
ffff8000113abc6c:	aa1303e0 	mov	x0, x19
ffff8000113abc70:	97fffecc 	bl	ffff8000113ab7a0 <netif_receive_skb_list_internal>
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113abc74:	f9008693 	str	x19, [x20,#264]
	list->prev = list;
ffff8000113abc78:	f9000673 	str	x19, [x19,#8]
	napi->rx_count = 0;
ffff8000113abc7c:	b9011a9f 	str	wzr, [x20,#280]
}
ffff8000113abc80:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abc84:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113abc88:	d65f03c0 	ret

ffff8000113abc8c <gro_normal_one>:
{
ffff8000113abc8c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113abc90:	910003fd 	mov	x29, sp
ffff8000113abc94:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113abc98:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113abc9c:	aa0003f4 	mov	x20, x0
	list_add_tail(&skb->list, &napi->rx_list);
ffff8000113abca0:	91042015 	add	x21, x0, #0x108
{
ffff8000113abca4:	aa1e03e0 	mov	x0, x30
ffff8000113abca8:	aa0103f3 	mov	x19, x1
ffff8000113abcac:	94000000 	bl	0 <_mcount>
			ffff8000113abcac: R_AARCH64_CALL26	_mcount
	__list_add(new, head->prev, head);
ffff8000113abcb0:	f9408a96 	ldr	x22, [x20,#272]
	if (!__list_add_valid(new, prev, next))
ffff8000113abcb4:	aa1303e0 	mov	x0, x19
ffff8000113abcb8:	aa1603e1 	mov	x1, x22
ffff8000113abcbc:	aa1503e2 	mov	x2, x21
ffff8000113abcc0:	94000000 	bl	0 <__list_add_valid>
			ffff8000113abcc0: R_AARCH64_CALL26	__list_add_valid
ffff8000113abcc4:	53001c00 	uxtb	w0, w0
ffff8000113abcc8:	340000a0 	cbz	w0, ffff8000113abcdc <gro_normal_one+0x50>
	next->prev = new;
ffff8000113abccc:	f9008a93 	str	x19, [x20,#272]
	new->next = next;
ffff8000113abcd0:	f9000275 	str	x21, [x19]
	new->prev = prev;
ffff8000113abcd4:	f9000676 	str	x22, [x19,#8]
ffff8000113abcd8:	f90002d3 	str	x19, [x22]
	if (++napi->rx_count >= gro_normal_batch)
ffff8000113abcdc:	b9411a80 	ldr	w0, [x20,#280]
ffff8000113abce0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113abce0: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly+0x958
ffff8000113abce4:	b9400021 	ldr	w1, [x1]
			ffff8000113abce4: R_AARCH64_LDST32_ABS_LO12_NC	.data..read_mostly+0x958
ffff8000113abce8:	11000400 	add	w0, w0, #0x1
ffff8000113abcec:	b9011a80 	str	w0, [x20,#280]
ffff8000113abcf0:	6b01001f 	cmp	w0, w1
ffff8000113abcf4:	5400004b 	b.lt	ffff8000113abcfc <gro_normal_one+0x70>
	if (!napi->rx_count)
ffff8000113abcf8:	350000a0 	cbnz	w0, ffff8000113abd0c <gro_normal_one+0x80>
}
ffff8000113abcfc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abd00:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abd04:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113abd08:	d65f03c0 	ret
ffff8000113abd0c:	aa1403e0 	mov	x0, x20
ffff8000113abd10:	97ffffd0 	bl	ffff8000113abc50 <gro_normal_list.part.134>
ffff8000113abd14:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abd18:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abd1c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113abd20:	d65f03c0 	ret

ffff8000113abd24 <napi_gro_complete.constprop.161>:
static int napi_gro_complete(struct napi_struct *napi, struct sk_buff *skb)
ffff8000113abd24:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113abd28:	910003fd 	mov	x29, sp
ffff8000113abd2c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113abd30:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113abd34:	aa0003f5 	mov	x21, x0
ffff8000113abd38:	aa1e03e0 	mov	x0, x30
ffff8000113abd3c:	aa0103f3 	mov	x19, x1
ffff8000113abd40:	94000000 	bl	0 <_mcount>
			ffff8000113abd40: R_AARCH64_CALL26	_mcount
	if (NAPI_GRO_CB(skb)->count == 1) {
ffff8000113abd44:	79407a61 	ldrh	w1, [x19,#60]
	__be16 type = skb->protocol;
ffff8000113abd48:	79416263 	ldrh	w3, [x19,#176]
	if (NAPI_GRO_CB(skb)->count == 1) {
ffff8000113abd4c:	7100043f 	cmp	w1, #0x1
ffff8000113abd50:	54000580 	b.eq	ffff8000113abe00 <napi_gro_complete.constprop.161+0xdc>
	__READ_ONCE_SIZE;
ffff8000113abd54:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113abd54: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113abd58:	910002c4 	add	x4, x22, #0x0
			ffff8000113abd58: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113abd5c:	f9440882 	ldr	x2, [x4,#2064]
ffff8000113abd60:	91204084 	add	x4, x4, #0x810
	list_for_each_entry_rcu(ptype, head, list) {
ffff8000113abd64:	eb04005f 	cmp	x2, x4
ffff8000113abd68:	aa0203f4 	mov	x20, x2
ffff8000113abd6c:	d1008042 	sub	x2, x2, #0x20
ffff8000113abd70:	54000120 	b.eq	ffff8000113abd94 <napi_gro_complete.constprop.161+0x70>
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff8000113abd74:	79400041 	ldrh	w1, [x2]
ffff8000113abd78:	6b03003f 	cmp	w1, w3
ffff8000113abd7c:	54000260 	b.eq	ffff8000113abdc8 <napi_gro_complete.constprop.161+0xa4>
ffff8000113abd80:	f9401042 	ldr	x2, [x2,#32]
	list_for_each_entry_rcu(ptype, head, list) {
ffff8000113abd84:	eb04005f 	cmp	x2, x4
ffff8000113abd88:	aa0203f4 	mov	x20, x2
ffff8000113abd8c:	d1008042 	sub	x2, x2, #0x20
ffff8000113abd90:	54ffff21 	b.ne	ffff8000113abd74 <napi_gro_complete.constprop.161+0x50>
	int err = -ENOENT;
ffff8000113abd94:	12800020 	mov	w0, #0xfffffffe            	// #-2
	if (err) {
ffff8000113abd98:	34000240 	cbz	w0, ffff8000113abde0 <napi_gro_complete.constprop.161+0xbc>
		WARN_ON(&ptype->list == head);
ffff8000113abd9c:	910002d6 	add	x22, x22, #0x0
			ffff8000113abd9c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113abda0:	912042d6 	add	x22, x22, #0x810
ffff8000113abda4:	eb16029f 	cmp	x20, x22
ffff8000113abda8:	540003c0 	b.eq	ffff8000113abe20 <napi_gro_complete.constprop.161+0xfc>
		kfree_skb(skb);
ffff8000113abdac:	aa1303e0 	mov	x0, x19
ffff8000113abdb0:	94000000 	bl	0 <kfree_skb>
			ffff8000113abdb0: R_AARCH64_CALL26	kfree_skb
}
ffff8000113abdb4:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113abdb8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abdbc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abdc0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113abdc4:	d65f03c0 	ret
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff8000113abdc8:	f9400c45 	ldr	x5, [x2,#24]
ffff8000113abdcc:	b4fffda5 	cbz	x5, ffff8000113abd80 <napi_gro_complete.constprop.161+0x5c>
		err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
ffff8000113abdd0:	aa1303e0 	mov	x0, x19
ffff8000113abdd4:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113abdd8:	d63f00a0 	blr	x5
	if (err) {
ffff8000113abddc:	35fffe00 	cbnz	w0, ffff8000113abd9c <napi_gro_complete.constprop.161+0x78>
	gro_normal_one(napi, skb);
ffff8000113abde0:	aa1503e0 	mov	x0, x21
ffff8000113abde4:	aa1303e1 	mov	x1, x19
ffff8000113abde8:	97ffffa9 	bl	ffff8000113abc8c <gro_normal_one>
}
ffff8000113abdec:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113abdf0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abdf4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abdf8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113abdfc:	d65f03c0 	ret
		skb_shinfo(skb)->gso_size = 0;
ffff8000113abe00:	f9406261 	ldr	x1, [x19,#192]
	return skb->head + skb->end;
ffff8000113abe04:	b940be60 	ldr	w0, [x19,#188]
ffff8000113abe08:	8b000020 	add	x0, x1, x0
ffff8000113abe0c:	7900081f 	strh	wzr, [x0,#4]
	gro_normal_one(napi, skb);
ffff8000113abe10:	aa1303e1 	mov	x1, x19
ffff8000113abe14:	aa1503e0 	mov	x0, x21
ffff8000113abe18:	97ffff9d 	bl	ffff8000113abc8c <gro_normal_one>
ffff8000113abe1c:	17fffff4 	b	ffff8000113abdec <napi_gro_complete.constprop.161+0xc8>
		WARN_ON(&ptype->list == head);
ffff8000113abe20:	d4210000 	brk	#0x800
ffff8000113abe24:	17ffffe2 	b	ffff8000113abdac <napi_gro_complete.constprop.161+0x88>

ffff8000113abe28 <dev_gro_receive>:
{
ffff8000113abe28:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113abe2c:	910003fd 	mov	x29, sp
ffff8000113abe30:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113abe34:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113abe38:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113abe3c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113abe40:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113abe44:	aa0003f6 	mov	x22, x0
ffff8000113abe48:	aa1e03e0 	mov	x0, x30
ffff8000113abe4c:	aa0103f5 	mov	x21, x1
ffff8000113abe50:	94000000 	bl	0 <_mcount>
			ffff8000113abe50: R_AARCH64_CALL26	_mcount
	if (netif_elide_gro(skb->dev))
ffff8000113abe54:	f9400aa0 	ldr	x0, [x21,#16]
static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
ffff8000113abe58:	b94096ba 	ldr	w26, [x21,#148]
	if (!(dev->features & NETIF_F_GRO) || dev->xdp_prog)
ffff8000113abe5c:	f9406401 	ldr	x1, [x0,#200]
	u32 hash = skb_get_hash_raw(skb) & (GRO_HASH_BUCKETS - 1);
ffff8000113abe60:	12000b59 	and	w25, w26, #0x7
	__be16 type = skb->protocol;
ffff8000113abe64:	794162b7 	ldrh	w23, [x21,#176]
ffff8000113abe68:	36700061 	tbz	w1, #14, ffff8000113abe74 <dev_gro_receive+0x4c>
ffff8000113abe6c:	f9419801 	ldr	x1, [x0,#816]
ffff8000113abe70:	b4000621 	cbz	x1, ffff8000113abf34 <dev_gro_receive+0x10c>
ffff8000113abe74:	9100a2b3 	add	x19, x21, #0x28
ffff8000113abe78:	2a1903f8 	mov	w24, w25
	ret = GRO_NORMAL;
ffff8000113abe7c:	52800074 	mov	w20, #0x3                   	// #3
	return skb->len - skb->data_len;
ffff8000113abe80:	b94072a2 	ldr	w2, [x21,#112]
ffff8000113abe84:	b94076a1 	ldr	w1, [x21,#116]
	grow = skb_gro_offset(skb) - skb_headlen(skb);
ffff8000113abe88:	b9400e60 	ldr	w0, [x19,#12]
ffff8000113abe8c:	4b010041 	sub	w1, w2, w1
ffff8000113abe90:	4b010001 	sub	w1, w0, w1
	if (grow > 0)
ffff8000113abe94:	6b1f003f 	cmp	w1, wzr
ffff8000113abe98:	5400006d 	b.le	ffff8000113abea4 <dev_gro_receive+0x7c>
		gro_pull_from_frag0(skb, grow);
ffff8000113abe9c:	aa1503e0 	mov	x0, x21
ffff8000113abea0:	97ffd3d9 	bl	ffff8000113a0e04 <gro_pull_from_frag0>
	if (napi->gro_hash[hash].count) {
ffff8000113abea4:	8b180707 	add	x7, x24, x24, lsl #1
ffff8000113abea8:	8b070ec7 	add	x7, x22, x7, lsl #3
ffff8000113abeac:	b94050e0 	ldr	w0, [x7,#80]
ffff8000113abeb0:	34000220 	cbz	w0, ffff8000113abef4 <dev_gro_receive+0xcc>
ffff8000113abeb4:	f94012c0 	ldr	x0, [x22,#32]
ffff8000113abeb8:	9ad92400 	lsr	x0, x0, x25
		if (!test_bit(hash, &napi->gro_bitmask))
ffff8000113abebc:	370000c0 	tbnz	w0, #0, ffff8000113abed4 <dev_gro_receive+0xac>
	*p  |= mask;
ffff8000113abec0:	f94012c0 	ldr	x0, [x22,#32]
	unsigned long mask = BIT_MASK(nr);
ffff8000113abec4:	d2800021 	mov	x1, #0x1                   	// #1
ffff8000113abec8:	9ad92026 	lsl	x6, x1, x25
	*p  |= mask;
ffff8000113abecc:	aa060006 	orr	x6, x0, x6
ffff8000113abed0:	f90012c6 	str	x6, [x22,#32]
}
ffff8000113abed4:	2a1403e0 	mov	w0, w20
ffff8000113abed8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abedc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abee0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113abee4:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113abee8:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113abeec:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113abef0:	d65f03c0 	ret
	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
ffff8000113abef4:	f94012c0 	ldr	x0, [x22,#32]
ffff8000113abef8:	9ad92400 	lsr	x0, x0, x25
	} else if (test_bit(hash, &napi->gro_bitmask)) {
ffff8000113abefc:	3607fec0 	tbz	w0, #0, ffff8000113abed4 <dev_gro_receive+0xac>
	*p &= ~mask;
ffff8000113abf00:	f94012c0 	ldr	x0, [x22,#32]
	unsigned long mask = BIT_MASK(nr);
ffff8000113abf04:	d2800021 	mov	x1, #0x1                   	// #1
ffff8000113abf08:	9ad92026 	lsl	x6, x1, x25
	*p &= ~mask;
ffff8000113abf0c:	8a260006 	bic	x6, x0, x6
ffff8000113abf10:	f90012c6 	str	x6, [x22,#32]
}
ffff8000113abf14:	2a1403e0 	mov	w0, w20
ffff8000113abf18:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113abf1c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113abf20:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113abf24:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113abf28:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113abf2c:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113abf30:	d65f03c0 	ret
	head = &napi->gro_hash[hash & (GRO_HASH_BUCKETS - 1)].list;
ffff8000113abf34:	2a1903f8 	mov	w24, w25
ffff8000113abf38:	8b180701 	add	x1, x24, x24, lsl #1
ffff8000113abf3c:	d37df021 	lsl	x1, x1, #3
ffff8000113abf40:	91010021 	add	x1, x1, #0x40
	list_for_each_entry(p, head, list) {
ffff8000113abf44:	f8616ad3 	ldr	x19, [x22,x1]
	head = &napi->gro_hash[hash & (GRO_HASH_BUCKETS - 1)].list;
ffff8000113abf48:	8b0102db 	add	x27, x22, x1
ffff8000113abf4c:	f9003ba1 	str	x1, [x29,#112]
	list_for_each_entry(p, head, list) {
ffff8000113abf50:	eb13037f 	cmp	x27, x19
	unsigned int maclen = skb->dev->hard_header_len;
ffff8000113abf54:	79448c06 	ldrh	w6, [x0,#582]
	list_for_each_entry(p, head, list) {
ffff8000113abf58:	54000a60 	b.eq	ffff8000113ac0a4 <dev_gro_receive+0x27c>
			diffs = memcmp(skb_mac_header(p),
ffff8000113abf5c:	53003cc7 	uxth	w7, w6
ffff8000113abf60:	f9003fa7 	str	x7, [x29,#120]
ffff8000113abf64:	14000007 	b	ffff8000113abf80 <dev_gro_receive+0x158>
			NAPI_GRO_CB(p)->same_flow = 0;
ffff8000113abf68:	39408a83 	ldrb	w3, [x20,#34]
ffff8000113abf6c:	121f7863 	and	w3, w3, #0xfffffffe
ffff8000113abf70:	39008a83 	strb	w3, [x20,#34]
	list_for_each_entry(p, head, list) {
ffff8000113abf74:	f9400273 	ldr	x19, [x19]
ffff8000113abf78:	eb13037f 	cmp	x27, x19
ffff8000113abf7c:	54000940 	b.eq	ffff8000113ac0a4 <dev_gro_receive+0x27c>
		NAPI_GRO_CB(p)->flush = 0;
ffff8000113abf80:	9100a274 	add	x20, x19, #0x28
ffff8000113abf84:	7900229f 	strh	wzr, [x20,#16]
		if (hash != skb_get_hash_raw(p)) {
ffff8000113abf88:	b9409663 	ldr	w3, [x19,#148]
ffff8000113abf8c:	6b03035f 	cmp	w26, w3
ffff8000113abf90:	54fffec1 	b.ne	ffff8000113abf68 <dev_gro_receive+0x140>
		diffs |= skb_vlan_tag_present(p) ^ skb_vlan_tag_present(skb);
ffff8000113abf94:	39420a60 	ldrb	w0, [x19,#130]
ffff8000113abf98:	39420abc 	ldrb	w28, [x21,#130]
		diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev;
ffff8000113abf9c:	f9400aa2 	ldr	x2, [x21,#16]
ffff8000113abfa0:	f9400a61 	ldr	x1, [x19,#16]
		diffs |= skb_vlan_tag_present(p) ^ skb_vlan_tag_present(skb);
ffff8000113abfa4:	12000000 	and	w0, w0, #0x1
ffff8000113abfa8:	ca00039c 	eor	x28, x28, x0
		diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev;
ffff8000113abfac:	ca010041 	eor	x1, x2, x1
		diffs |= skb_vlan_tag_present(p) ^ skb_vlan_tag_present(skb);
ffff8000113abfb0:	9240039c 	and	x28, x28, #0x1
ffff8000113abfb4:	aa01039c 	orr	x28, x28, x1
		if (skb_vlan_tag_present(p))
ffff8000113abfb8:	340000c0 	cbz	w0, ffff8000113abfd0 <dev_gro_receive+0x1a8>
			diffs |= skb_vlan_tag_get(p) ^ skb_vlan_tag_get(skb);
ffff8000113abfbc:	794136a1 	ldrh	w1, [x21,#154]
ffff8000113abfc0:	79413660 	ldrh	w0, [x19,#154]
ffff8000113abfc4:	4a000020 	eor	w0, w1, w0
ffff8000113abfc8:	53003c00 	uxth	w0, w0
ffff8000113abfcc:	aa00039c 	orr	x28, x28, x0
	struct sk_buff *p;
ffff8000113abfd0:	f9402e60 	ldr	x0, [x19,#88]
					  struct sk_buff *skb)
ffff8000113abfd4:	f9402ea1 	ldr	x1, [x21,#88]
	if (!(skb_a->_skb_refdst | skb_b->_skb_refdst))
ffff8000113abfd8:	aa010002 	orr	x2, x0, x1
ffff8000113abfdc:	b40001c2 	cbz	x2, ffff8000113ac014 <dev_gro_receive+0x1ec>
	return (struct dst_entry *)(skb->_skb_refdst & SKB_DST_PTRMASK);
ffff8000113abfe0:	927ff800 	and	x0, x0, #0xfffffffffffffffe
	if (!a != !b || a->type != b->type)
ffff8000113abfe4:	eb1f001f 	cmp	x0, xzr
ffff8000113abfe8:	927ff821 	and	x1, x1, #0xfffffffffffffffe
ffff8000113abfec:	1a9f17e3 	cset	w3, eq
ffff8000113abff0:	eb1f003f 	cmp	x1, xzr
ffff8000113abff4:	1a9f17e2 	cset	w2, eq
ffff8000113abff8:	6b02007f 	cmp	w3, w2
ffff8000113abffc:	d2800022 	mov	x2, #0x1                   	// #1
ffff8000113ac000:	540000a1 	b.ne	ffff8000113ac014 <dev_gro_receive+0x1ec>
ffff8000113ac004:	b9407003 	ldr	w3, [x0,#112]
ffff8000113ac008:	b9407024 	ldr	w4, [x1,#112]
ffff8000113ac00c:	6b04007f 	cmp	w3, w4
ffff8000113ac010:	54001500 	b.eq	ffff8000113ac2b0 <dev_gro_receive+0x488>
static inline u8 skb_metadata_len(const struct sk_buff *skb)
ffff8000113ac014:	f9406260 	ldr	x0, [x19,#192]
	return skb->head + skb->end;
ffff8000113ac018:	b940be63 	ldr	w3, [x19,#188]
static inline u8 skb_metadata_len(const struct sk_buff *skb)
ffff8000113ac01c:	f94062a1 	ldr	x1, [x21,#192]
	return skb->head + skb->end;
ffff8000113ac020:	b940bea4 	ldr	w4, [x21,#188]
	return skb_shinfo(skb)->meta_len;
ffff8000113ac024:	8b030003 	add	x3, x0, x3
ffff8000113ac028:	8b040024 	add	x4, x1, x4
ffff8000113ac02c:	39400485 	ldrb	w5, [x4,#1]
ffff8000113ac030:	39400463 	ldrb	w3, [x3,#1]
		diffs |= skb_metadata_dst_cmp(p, skb);
ffff8000113ac034:	aa1c0042 	orr	x2, x2, x28
	if (!(len_a | len_b))
ffff8000113ac038:	2a0300aa 	orr	w10, w5, w3
ffff8000113ac03c:	d2800004 	mov	x4, #0x0                   	// #0
ffff8000113ac040:	3400008a 	cbz	w10, ffff8000113ac050 <dev_gro_receive+0x228>
	       true : __skb_metadata_differs(skb_a, skb_b, len_a);
ffff8000113ac044:	6b05007f 	cmp	w3, w5
ffff8000113ac048:	d2800024 	mov	x4, #0x1                   	// #1
ffff8000113ac04c:	540006a0 	b.eq	ffff8000113ac120 <dev_gro_receive+0x2f8>
		if (maclen == ETH_HLEN)
ffff8000113ac050:	710038df 	cmp	w6, #0xe
		diffs |= skb_metadata_differs(p, skb);
ffff8000113ac054:	aa040042 	orr	x2, x2, x4
		if (maclen == ETH_HLEN)
ffff8000113ac058:	540004a0 	b.eq	ffff8000113ac0ec <dev_gro_receive+0x2c4>
		else if (!diffs)
ffff8000113ac05c:	b5000142 	cbnz	x2, ffff8000113ac084 <dev_gro_receive+0x25c>
	return skb->head + skb->mac_header;
ffff8000113ac060:	79416ea2 	ldrh	w2, [x21,#182]
ffff8000113ac064:	79416e63 	ldrh	w3, [x19,#182]
	return __builtin_memcmp(p, q, size);
ffff8000113ac068:	8b020021 	add	x1, x1, x2
ffff8000113ac06c:	f9403fa2 	ldr	x2, [x29,#120]
ffff8000113ac070:	8b030000 	add	x0, x0, x3
ffff8000113ac074:	f90037a6 	str	x6, [x29,#104]
ffff8000113ac078:	94000000 	bl	0 <memcmp>
			ffff8000113ac078: R_AARCH64_CALL26	memcmp
			diffs = memcmp(skb_mac_header(p),
ffff8000113ac07c:	f94037a6 	ldr	x6, [x29,#104]
ffff8000113ac080:	93407c02 	sxtw	x2, w0
		NAPI_GRO_CB(p)->same_flow = !diffs;
ffff8000113ac084:	39408a80 	ldrb	w0, [x20,#34]
ffff8000113ac088:	eb1f005f 	cmp	x2, xzr
ffff8000113ac08c:	1a9f17e1 	cset	w1, eq
ffff8000113ac090:	33000020 	bfxil	w0, w1, #0, #1
ffff8000113ac094:	39008a80 	strb	w0, [x20,#34]
	list_for_each_entry(p, head, list) {
ffff8000113ac098:	f9400273 	ldr	x19, [x19]
ffff8000113ac09c:	eb13037f 	cmp	x27, x19
ffff8000113ac0a0:	54fff701 	b.ne	ffff8000113abf80 <dev_gro_receive+0x158>
ffff8000113ac0a4:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac0a4: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113ac0a8:	91000342 	add	x2, x26, #0x0
			ffff8000113ac0a8: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113ac0ac:	f9440840 	ldr	x0, [x2,#2064]
ffff8000113ac0b0:	91204042 	add	x2, x2, #0x810
	list_for_each_entry_rcu(ptype, head, list) {
ffff8000113ac0b4:	eb02001f 	cmp	x0, x2
ffff8000113ac0b8:	aa0003f4 	mov	x20, x0
ffff8000113ac0bc:	d1008000 	sub	x0, x0, #0x20
ffff8000113ac0c0:	54000120 	b.eq	ffff8000113ac0e4 <dev_gro_receive+0x2bc>
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff8000113ac0c4:	79400001 	ldrh	w1, [x0]
ffff8000113ac0c8:	6b17003f 	cmp	w1, w23
ffff8000113ac0cc:	54000480 	b.eq	ffff8000113ac15c <dev_gro_receive+0x334>
ffff8000113ac0d0:	f9401000 	ldr	x0, [x0,#32]
	list_for_each_entry_rcu(ptype, head, list) {
ffff8000113ac0d4:	eb02001f 	cmp	x0, x2
ffff8000113ac0d8:	aa0003f4 	mov	x20, x0
ffff8000113ac0dc:	d1008000 	sub	x0, x0, #0x20
ffff8000113ac0e0:	54ffff21 	b.ne	ffff8000113ac0c4 <dev_gro_receive+0x29c>
	struct sk_buff *pp = NULL;
ffff8000113ac0e4:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113ac0e8:	1400004f 	b	ffff8000113ac224 <dev_gro_receive+0x3fc>
ffff8000113ac0ec:	79416ea3 	ldrh	w3, [x21,#182]
ffff8000113ac0f0:	79416e64 	ldrh	w4, [x19,#182]
ffff8000113ac0f4:	8b030025 	add	x5, x1, x3
ffff8000113ac0f8:	8b04000a 	add	x10, x0, x4
	 * Use two long XOR, ORed together, with an overlap of two bytes.
	 *  [a0  a1  a2  a3  a4  a5  a6  a7 ] ^ [b0  b1  b2  b3  b4  b5  b6  b7 ] |
	 *  [a6  a7  a8  a9  a10 a11 a12 a13] ^ [b6  b7  b8  b9  b10 b11 b12 b13]
	 * This means the [a6 a7] ^ [b6 b7] part is done two times.
	*/
	fold = *(unsigned long *)a ^ *(unsigned long *)b;
ffff8000113ac0fc:	f8636821 	ldr	x1, [x1,x3]
ffff8000113ac100:	f8646804 	ldr	x4, [x0,x4]
	fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
ffff8000113ac104:	f84060a3 	ldur	x3, [x5,#6]
ffff8000113ac108:	f8406140 	ldur	x0, [x10,#6]
	fold = *(unsigned long *)a ^ *(unsigned long *)b;
ffff8000113ac10c:	ca010081 	eor	x1, x4, x1
	fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
ffff8000113ac110:	ca030000 	eor	x0, x0, x3
ffff8000113ac114:	aa010000 	orr	x0, x0, x1
			diffs |= compare_ether_header(skb_mac_header(p),
ffff8000113ac118:	aa000042 	orr	x2, x2, x0
ffff8000113ac11c:	17ffffda 	b	ffff8000113ac084 <dev_gro_receive+0x25c>
ffff8000113ac120:	79416e64 	ldrh	w4, [x19,#182]
ffff8000113ac124:	79416ea5 	ldrh	w5, [x21,#182]
	switch (meta_len) {
ffff8000113ac128:	51001063 	sub	w3, w3, #0x4
ffff8000113ac12c:	7100707f 	cmp	w3, #0x1c
	return skb->head + skb->mac_header;
ffff8000113ac130:	8b040004 	add	x4, x0, x4
ffff8000113ac134:	8b050025 	add	x5, x1, x5
	switch (meta_len) {
ffff8000113ac138:	54000069 	b.ls	ffff8000113ac144 <dev_gro_receive+0x31c>
ffff8000113ac13c:	d2800004 	mov	x4, #0x0                   	// #0
ffff8000113ac140:	17ffffc4 	b	ffff8000113ac050 <dev_gro_receive+0x228>
ffff8000113ac144:	90000007 	adrp	x7, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac144: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x38
ffff8000113ac148:	910000e7 	add	x7, x7, #0x0
			ffff8000113ac148: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x38
ffff8000113ac14c:	786358e7 	ldrh	w7, [x7,w3,uxtw #1]
ffff8000113ac150:	10000068 	adr	x8, ffff8000113ac15c <dev_gro_receive+0x334>
ffff8000113ac154:	8b27a907 	add	x7, x8, w7, sxth #2
ffff8000113ac158:	d61f00e0 	br	x7
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff8000113ac15c:	f9400801 	ldr	x1, [x0,#16]
ffff8000113ac160:	b4fffb81 	cbz	x1, ffff8000113ac0d0 <dev_gro_receive+0x2a8>
	skb->network_header = skb->data - skb->head;
ffff8000113ac164:	f94062a1 	ldr	x1, [x21,#192]
	return NAPI_GRO_CB(skb)->data_offset;
ffff8000113ac168:	9100a2b3 	add	x19, x21, #0x28
ffff8000113ac16c:	f94066a2 	ldr	x2, [x21,#200]
	skb->network_header += offset;
ffff8000113ac170:	b9400e64 	ldr	w4, [x19,#12]
	skb->network_header = skb->data - skb->head;
ffff8000113ac174:	cb010042 	sub	x2, x2, x1
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113ac178:	79416ea3 	ldrh	w3, [x21,#182]
	skb->network_header += offset;
ffff8000113ac17c:	0b020082 	add	w2, w4, w2
ffff8000113ac180:	53003c42 	uxth	w2, w2
	skb->mac_len = skb->network_header - skb->mac_header;
ffff8000113ac184:	4b030043 	sub	w3, w2, w3
ffff8000113ac188:	7900f2a3 	strh	w3, [x21,#120]
	skb->network_header += offset;
ffff8000113ac18c:	79016aa2 	strh	w2, [x21,#180]
		NAPI_GRO_CB(skb)->same_flow = 0;
ffff8000113ac190:	39408a62 	ldrb	w2, [x19,#34]
ffff8000113ac194:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113ac198:	121f7842 	and	w2, w2, #0xfffffffe
ffff8000113ac19c:	39008a62 	strb	w2, [x19,#34]
	return skb->head + skb->end;
ffff8000113ac1a0:	b940bea2 	ldr	w2, [x21,#188]
ffff8000113ac1a4:	8b020021 	add	x1, x1, x2
		NAPI_GRO_CB(skb)->flush = skb_is_gso(skb) || skb_has_frag_list(skb);
ffff8000113ac1a8:	79400822 	ldrh	w2, [x1,#4]
ffff8000113ac1ac:	35000082 	cbnz	w2, ffff8000113ac1bc <dev_gro_receive+0x394>
ffff8000113ac1b0:	f9400421 	ldr	x1, [x1,#8]
ffff8000113ac1b4:	eb1f003f 	cmp	x1, xzr
ffff8000113ac1b8:	1a9f07e3 	cset	w3, ne
		NAPI_GRO_CB(skb)->free = 0;
ffff8000113ac1bc:	39408a64 	ldrb	w4, [x19,#34]
		NAPI_GRO_CB(skb)->recursion_counter = 0;
ffff8000113ac1c0:	39408e61 	ldrb	w1, [x19,#35]
		NAPI_GRO_CB(skb)->free = 0;
ffff8000113ac1c4:	12001484 	and	w4, w4, #0x3f
		NAPI_GRO_CB(skb)->is_fou = 0;
ffff8000113ac1c8:	12196421 	and	w1, w1, #0xffffff81
		NAPI_GRO_CB(skb)->is_atomic = 1;
ffff8000113ac1cc:	321e0021 	orr	w1, w1, #0x4
		NAPI_GRO_CB(skb)->encap_mark = 0;
ffff8000113ac1d0:	121e7882 	and	w2, w4, #0xfffffffd
		NAPI_GRO_CB(skb)->flush = skb_is_gso(skb) || skb_has_frag_list(skb);
ffff8000113ac1d4:	79002263 	strh	w3, [x19,#16]
		NAPI_GRO_CB(skb)->encap_mark = 0;
ffff8000113ac1d8:	39008a62 	strb	w2, [x19,#34]
		NAPI_GRO_CB(skb)->is_atomic = 1;
ffff8000113ac1dc:	39008e61 	strb	w1, [x19,#35]
		NAPI_GRO_CB(skb)->gro_remcsum_start = 0;
ffff8000113ac1e0:	79002e7f 	strh	wzr, [x19,#22]
		switch (skb->ip_summed) {
ffff8000113ac1e4:	394202a1 	ldrb	w1, [x21,#128]
ffff8000113ac1e8:	d3451821 	ubfx	x1, x1, #5, #2
ffff8000113ac1ec:	7100043f 	cmp	w1, #0x1
ffff8000113ac1f0:	540008e0 	b.eq	ffff8000113ac30c <dev_gro_receive+0x4e4>
ffff8000113ac1f4:	7100083f 	cmp	w1, #0x2
ffff8000113ac1f8:	54000721 	b.ne	ffff8000113ac2dc <dev_gro_receive+0x4b4>
			NAPI_GRO_CB(skb)->csum = skb->csum;
ffff8000113ac1fc:	b9408aa1 	ldr	w1, [x21,#136]
			NAPI_GRO_CB(skb)->csum_valid = 1;
ffff8000113ac200:	321e0042 	orr	w2, w2, #0x4
			NAPI_GRO_CB(skb)->csum_cnt = 0;
ffff8000113ac204:	121a7042 	and	w2, w2, #0xffffffc7
			NAPI_GRO_CB(skb)->csum = skb->csum;
ffff8000113ac208:	b9002661 	str	w1, [x19,#36]
			NAPI_GRO_CB(skb)->csum_cnt = 0;
ffff8000113ac20c:	39008a62 	strb	w2, [x19,#34]
		pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
ffff8000113ac210:	f9400802 	ldr	x2, [x0,#16]
ffff8000113ac214:	aa1503e1 	mov	x1, x21
ffff8000113ac218:	aa1b03e0 	mov	x0, x27
ffff8000113ac21c:	d63f0040 	blr	x2
ffff8000113ac220:	aa0003e1 	mov	x1, x0
	if (&ptype->list == head)
ffff8000113ac224:	91000357 	add	x23, x26, #0x0
			ffff8000113ac224: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113ac228:	912042f7 	add	x23, x23, #0x810
ffff8000113ac22c:	eb17029f 	cmp	x20, x23
ffff8000113ac230:	9100a2b3 	add	x19, x21, #0x28
ffff8000113ac234:	54ffe240 	b.eq	ffff8000113abe7c <dev_gro_receive+0x54>
	if (PTR_ERR(pp) == -EINPROGRESS) {
ffff8000113ac238:	b101cc3f 	cmn	x1, #0x73
		ret = GRO_CONSUMED;
ffff8000113ac23c:	528000b4 	mov	w20, #0x5                   	// #5
	if (PTR_ERR(pp) == -EINPROGRESS) {
ffff8000113ac240:	54ffe320 	b.eq	ffff8000113abea4 <dev_gro_receive+0x7c>
	same_flow = NAPI_GRO_CB(skb)->same_flow;
ffff8000113ac244:	9100a2b3 	add	x19, x21, #0x28
ffff8000113ac248:	39408a60 	ldrb	w0, [x19,#34]
ffff8000113ac24c:	12000014 	and	w20, w0, #0x1
	ret = NAPI_GRO_CB(skb)->free ? GRO_MERGED_FREE : GRO_MERGED;
ffff8000113ac250:	d3461c17 	ubfx	x23, x0, #6, #2
	if (pp) {
ffff8000113ac254:	b4000261 	cbz	x1, ffff8000113ac2a0 <dev_gro_receive+0x478>
	if (!__list_del_entry_valid(entry))
ffff8000113ac258:	aa0103e0 	mov	x0, x1
ffff8000113ac25c:	f90037a1 	str	x1, [x29,#104]
ffff8000113ac260:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ac260: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ac264:	53001c00 	uxtb	w0, w0
ffff8000113ac268:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113ac26c:	340000a0 	cbz	w0, ffff8000113ac280 <dev_gro_receive+0x458>
	__list_del(entry->prev, entry->next);
ffff8000113ac270:	f9400420 	ldr	x0, [x1,#8]
ffff8000113ac274:	f9400022 	ldr	x2, [x1]
	next->prev = prev;
ffff8000113ac278:	f9000440 	str	x0, [x2,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ac27c:	f9000002 	str	x2, [x0]
	skb->next = NULL;
ffff8000113ac280:	f900003f 	str	xzr, [x1]
		napi_gro_complete(napi, pp);
ffff8000113ac284:	aa1603e0 	mov	x0, x22
ffff8000113ac288:	97fffea7 	bl	ffff8000113abd24 <napi_gro_complete.constprop.161>
		napi->gro_hash[hash].count--;
ffff8000113ac28c:	8b180700 	add	x0, x24, x24, lsl #1
ffff8000113ac290:	8b000ec0 	add	x0, x22, x0, lsl #3
ffff8000113ac294:	b9405001 	ldr	w1, [x0,#80]
ffff8000113ac298:	51000421 	sub	w1, w1, #0x1
ffff8000113ac29c:	b9005001 	str	w1, [x0,#80]
	if (same_flow)
ffff8000113ac2a0:	34000454 	cbz	w20, ffff8000113ac328 <dev_gro_receive+0x500>
	ret = NAPI_GRO_CB(skb)->free ? GRO_MERGED_FREE : GRO_MERGED;
ffff8000113ac2a4:	6b1f02ff 	cmp	w23, wzr
ffff8000113ac2a8:	1a9f07f4 	cset	w20, ne
ffff8000113ac2ac:	17fffefe 	b	ffff8000113abea4 <dev_gro_receive+0x7c>
	switch (a->type) {
ffff8000113ac2b0:	340001c3 	cbz	w3, ffff8000113ac2e8 <dev_gro_receive+0x4c0>
ffff8000113ac2b4:	7100047f 	cmp	w3, #0x1
ffff8000113ac2b8:	54ffeae1 	b.ne	ffff8000113ac014 <dev_gro_receive+0x1ec>
ffff8000113ac2bc:	d2800202 	mov	x2, #0x10                  	// #16
ffff8000113ac2c0:	9101e000 	add	x0, x0, #0x78
ffff8000113ac2c4:	9101e021 	add	x1, x1, #0x78
ffff8000113ac2c8:	f90037a6 	str	x6, [x29,#104]
ffff8000113ac2cc:	94000000 	bl	0 <memcmp>
			ffff8000113ac2cc: R_AARCH64_CALL26	memcmp
ffff8000113ac2d0:	93407c02 	sxtw	x2, w0
ffff8000113ac2d4:	f94037a6 	ldr	x6, [x29,#104]
ffff8000113ac2d8:	17ffff4f 	b	ffff8000113ac014 <dev_gro_receive+0x1ec>
			NAPI_GRO_CB(skb)->csum_valid = 0;
ffff8000113ac2dc:	121a6884 	and	w4, w4, #0xffffffc1
ffff8000113ac2e0:	39008a64 	strb	w4, [x19,#34]
ffff8000113ac2e4:	17ffffcb 	b	ffff8000113ac210 <dev_gro_receive+0x3e8>
		return memcmp(&a->u.tun_info, &b->u.tun_info,
ffff8000113ac2e8:	39430002 	ldrb	w2, [x0,#192]
ffff8000113ac2ec:	9101e021 	add	x1, x1, #0x78
ffff8000113ac2f0:	91014042 	add	x2, x2, #0x50
ffff8000113ac2f4:	9101e000 	add	x0, x0, #0x78
ffff8000113ac2f8:	f90037a6 	str	x6, [x29,#104]
ffff8000113ac2fc:	94000000 	bl	0 <memcmp>
			ffff8000113ac2fc: R_AARCH64_CALL26	memcmp
ffff8000113ac300:	93407c02 	sxtw	x2, w0
ffff8000113ac304:	f94037a6 	ldr	x6, [x29,#104]
ffff8000113ac308:	17ffff43 	b	ffff8000113ac014 <dev_gro_receive+0x1ec>
			NAPI_GRO_CB(skb)->csum_cnt = skb->csum_level + 1;
ffff8000113ac30c:	39420aa1 	ldrb	w1, [x21,#130]
ffff8000113ac310:	d3420c21 	ubfx	x1, x1, #2, #2
ffff8000113ac314:	11000421 	add	w1, w1, #0x1
ffff8000113ac318:	331d0822 	bfi	w2, w1, #3, #3
			NAPI_GRO_CB(skb)->csum_valid = 0;
ffff8000113ac31c:	121d7842 	and	w2, w2, #0xfffffffb
ffff8000113ac320:	39008a62 	strb	w2, [x19,#34]
			break;
ffff8000113ac324:	17ffffbb 	b	ffff8000113ac210 <dev_gro_receive+0x3e8>
	if (NAPI_GRO_CB(skb)->flush)
ffff8000113ac328:	79402260 	ldrh	w0, [x19,#16]
ffff8000113ac32c:	35ffda80 	cbnz	w0, ffff8000113abe7c <dev_gro_receive+0x54>
	if (unlikely(napi->gro_hash[hash].count >= MAX_GRO_SKBS)) {
ffff8000113ac330:	8b180700 	add	x0, x24, x24, lsl #1
ffff8000113ac334:	8b000ec0 	add	x0, x22, x0, lsl #3
ffff8000113ac338:	b9405001 	ldr	w1, [x0,#80]
ffff8000113ac33c:	71001c3f 	cmp	w1, #0x7
ffff8000113ac340:	54000b2c 	b.gt	ffff8000113ac4a4 <dev_gro_receive+0x67c>
		napi->gro_hash[hash].count++;
ffff8000113ac344:	11000421 	add	w1, w1, #0x1
ffff8000113ac348:	b9005001 	str	w1, [x0,#80]
	NAPI_GRO_CB(skb)->age = jiffies;
ffff8000113ac34c:	90000000 	adrp	x0, 0 <jiffies>
			ffff8000113ac34c: R_AARCH64_ADR_PREL_PG_HI21	jiffies
ffff8000113ac350:	f9400000 	ldr	x0, [x0]
			ffff8000113ac350: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
	NAPI_GRO_CB(skb)->count = 1;
ffff8000113ac354:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113ac358:	79002a61 	strh	w1, [x19,#20]
	NAPI_GRO_CB(skb)->age = jiffies;
ffff8000113ac35c:	f9000e60 	str	x0, [x19,#24]
	NAPI_GRO_CB(skb)->last = skb;
ffff8000113ac360:	f9001675 	str	x21, [x19,#40]
	return skb->len - NAPI_GRO_CB(skb)->data_offset;
ffff8000113ac364:	b94072a2 	ldr	w2, [x21,#112]
	return skb->head + skb->end;
ffff8000113ac368:	b940bea0 	ldr	w0, [x21,#188]
	skb_shinfo(skb)->gso_size = skb_gro_len(skb);
ffff8000113ac36c:	f94062a3 	ldr	x3, [x21,#192]
ffff8000113ac370:	b9400e61 	ldr	w1, [x19,#12]
ffff8000113ac374:	8b000060 	add	x0, x3, x0
ffff8000113ac378:	4b010041 	sub	w1, w2, w1
	__list_add(new, head, head->next);
ffff8000113ac37c:	f9403ba7 	ldr	x7, [x29,#112]
ffff8000113ac380:	79000801 	strh	w1, [x0,#4]
ffff8000113ac384:	f8676ad7 	ldr	x23, [x22,x7]
	if (!__list_add_valid(new, prev, next))
ffff8000113ac388:	aa1503e0 	mov	x0, x21
ffff8000113ac38c:	aa1b03e1 	mov	x1, x27
ffff8000113ac390:	aa1703e2 	mov	x2, x23
ffff8000113ac394:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ac394: R_AARCH64_CALL26	__list_add_valid
ffff8000113ac398:	53001c00 	uxtb	w0, w0
	ret = GRO_HELD;
ffff8000113ac39c:	52800054 	mov	w20, #0x2                   	// #2
ffff8000113ac3a0:	34ffd700 	cbz	w0, ffff8000113abe80 <dev_gro_receive+0x58>
	next->prev = new;
ffff8000113ac3a4:	f90006f5 	str	x21, [x23,#8]
ffff8000113ac3a8:	f9403ba8 	ldr	x8, [x29,#112]
	new->next = next;
ffff8000113ac3ac:	f90002b7 	str	x23, [x21]
	new->prev = prev;
ffff8000113ac3b0:	f90006bb 	str	x27, [x21,#8]
ffff8000113ac3b4:	f8286ad5 	str	x21, [x22,x8]
ffff8000113ac3b8:	17fffeb2 	b	ffff8000113abe80 <dev_gro_receive+0x58>
	u64 diffs = 0;
ffff8000113ac3bc:	d280000a 	mov	x10, #0x0                   	// #0
	case  8: diffs |= __it_diff(a, b, 64);
ffff8000113ac3c0:	f85f80a5 	ldur	x5, [x5,#-8]
ffff8000113ac3c4:	f85f8083 	ldur	x3, [x4,#-8]
ffff8000113ac3c8:	ca0300a3 	eor	x3, x5, x3
ffff8000113ac3cc:	aa0a0063 	orr	x3, x3, x10
	       true : __skb_metadata_differs(skb_a, skb_b, len_a);
ffff8000113ac3d0:	eb1f007f 	cmp	x3, xzr
ffff8000113ac3d4:	9a9f07e4 	cset	x4, ne
ffff8000113ac3d8:	17ffff1e 	b	ffff8000113ac050 <dev_gro_receive+0x228>
	u64 diffs = 0;
ffff8000113ac3dc:	d280000a 	mov	x10, #0x0                   	// #0
	case 24: diffs |= __it_diff(a, b, 64);
ffff8000113ac3e0:	f85f80ab 	ldur	x11, [x5,#-8]
ffff8000113ac3e4:	f85f8083 	ldur	x3, [x4,#-8]
ffff8000113ac3e8:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac3ec:	ca030163 	eor	x3, x11, x3
ffff8000113ac3f0:	aa0a0063 	orr	x3, x3, x10
ffff8000113ac3f4:	d1002084 	sub	x4, x4, #0x8
	case 16: diffs |= __it_diff(a, b, 64);
ffff8000113ac3f8:	f85f80ab 	ldur	x11, [x5,#-8]
ffff8000113ac3fc:	f85f808a 	ldur	x10, [x4,#-8]
ffff8000113ac400:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac404:	ca0a016a 	eor	x10, x11, x10
ffff8000113ac408:	d1002084 	sub	x4, x4, #0x8
ffff8000113ac40c:	aa03014a 	orr	x10, x10, x3
ffff8000113ac410:	17ffffec 	b	ffff8000113ac3c0 <dev_gro_receive+0x598>
	u64 diffs = 0;
ffff8000113ac414:	d280000a 	mov	x10, #0x0                   	// #0
	case 20: diffs |= __it_diff(a, b, 64);
ffff8000113ac418:	f85f80ab 	ldur	x11, [x5,#-8]
ffff8000113ac41c:	f85f8083 	ldur	x3, [x4,#-8]
ffff8000113ac420:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac424:	ca030163 	eor	x3, x11, x3
ffff8000113ac428:	aa0a0063 	orr	x3, x3, x10
ffff8000113ac42c:	d1002084 	sub	x4, x4, #0x8
	case 12: diffs |= __it_diff(a, b, 64);
ffff8000113ac430:	f85f80ab 	ldur	x11, [x5,#-8]
ffff8000113ac434:	f85f808a 	ldur	x10, [x4,#-8]
ffff8000113ac438:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac43c:	ca0a016a 	eor	x10, x11, x10
ffff8000113ac440:	d1002084 	sub	x4, x4, #0x8
ffff8000113ac444:	aa03014a 	orr	x10, x10, x3
	case  4: diffs |= __it_diff(a, b, 32);
ffff8000113ac448:	b85fc0a5 	ldur	w5, [x5,#-4]
ffff8000113ac44c:	b85fc083 	ldur	w3, [x4,#-4]
ffff8000113ac450:	4a0300a3 	eor	w3, w5, w3
ffff8000113ac454:	aa0a0063 	orr	x3, x3, x10
ffff8000113ac458:	17ffffde 	b	ffff8000113ac3d0 <dev_gro_receive+0x5a8>
	u64 diffs = 0;
ffff8000113ac45c:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113ac460:	17ffffe6 	b	ffff8000113ac3f8 <dev_gro_receive+0x5d0>
ffff8000113ac464:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113ac468:	17fffff2 	b	ffff8000113ac430 <dev_gro_receive+0x608>
ffff8000113ac46c:	d280000a 	mov	x10, #0x0                   	// #0
ffff8000113ac470:	17fffff6 	b	ffff8000113ac448 <dev_gro_receive+0x620>
	case 32: diffs |= __it_diff(a, b, 64);
ffff8000113ac474:	f85f808a 	ldur	x10, [x4,#-8]
ffff8000113ac478:	f85f80a3 	ldur	x3, [x5,#-8]
ffff8000113ac47c:	d1002084 	sub	x4, x4, #0x8
ffff8000113ac480:	ca03014a 	eor	x10, x10, x3
ffff8000113ac484:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac488:	17ffffd6 	b	ffff8000113ac3e0 <dev_gro_receive+0x5b8>
	case 28: diffs |= __it_diff(a, b, 64);
ffff8000113ac48c:	f85f808a 	ldur	x10, [x4,#-8]
ffff8000113ac490:	f85f80a3 	ldur	x3, [x5,#-8]
ffff8000113ac494:	d1002084 	sub	x4, x4, #0x8
ffff8000113ac498:	ca03014a 	eor	x10, x10, x3
ffff8000113ac49c:	d10020a5 	sub	x5, x5, #0x8
ffff8000113ac4a0:	17ffffde 	b	ffff8000113ac418 <dev_gro_receive+0x5f0>
	struct list_head *gro_head;
ffff8000113ac4a4:	f9400761 	ldr	x1, [x27,#8]
	if (WARN_ON_ONCE(!oldest))
ffff8000113ac4a8:	b4000121 	cbz	x1, ffff8000113ac4cc <dev_gro_receive+0x6a4>
	__list_del_entry(&skb->list);
ffff8000113ac4ac:	aa0103e0 	mov	x0, x1
ffff8000113ac4b0:	f90037a1 	str	x1, [x29,#104]
ffff8000113ac4b4:	97ffd512 	bl	ffff8000113a18fc <__list_del_entry>
	skb->next = NULL;
ffff8000113ac4b8:	f94037a1 	ldr	x1, [x29,#104]
	napi_gro_complete(napi, oldest);
ffff8000113ac4bc:	aa1603e0 	mov	x0, x22
ffff8000113ac4c0:	f900003f 	str	xzr, [x1]
ffff8000113ac4c4:	97fffe18 	bl	ffff8000113abd24 <napi_gro_complete.constprop.161>
ffff8000113ac4c8:	17ffffa1 	b	ffff8000113ac34c <dev_gro_receive+0x524>
	if (WARN_ON_ONCE(!oldest))
ffff8000113ac4cc:	d4210000 	brk	#0x800
ffff8000113ac4d0:	17ffff9f 	b	ffff8000113ac34c <dev_gro_receive+0x524>

ffff8000113ac4d4 <napi_gro_receive>:
{
ffff8000113ac4d4:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113ac4d8:	910003fd 	mov	x29, sp
ffff8000113ac4dc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ac4e0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ac4e4:	aa0003f6 	mov	x22, x0
ffff8000113ac4e8:	aa1e03e0 	mov	x0, x30
ffff8000113ac4ec:	aa0103f5 	mov	x21, x1
ffff8000113ac4f0:	94000000 	bl	0 <_mcount>
			ffff8000113ac4f0: R_AARCH64_CALL26	_mcount
	__READ_ONCE_SIZE;
ffff8000113ac4f4:	90000000 	adrp	x0, 0 <__tracepoint_napi_gro_receive_entry>
			ffff8000113ac4f4: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_gro_receive_entry
ffff8000113ac4f8:	91000000 	add	x0, x0, #0x0
			ffff8000113ac4f8: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_gro_receive_entry
gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
ffff8000113ac4fc:	b94182c2 	ldr	w2, [x22,#384]
ffff8000113ac500:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ac504:	b9009ea2 	str	w2, [x21,#156]
ffff8000113ac508:	6b1f003f 	cmp	w1, wzr
ffff8000113ac50c:	5400080c 	b.gt	ffff8000113ac60c <napi_gro_receive+0x138>
	skb_gro_reset_offset(skb);
ffff8000113ac510:	aa1503e0 	mov	x0, x21
ffff8000113ac514:	97ffd3e3 	bl	ffff8000113a14a0 <skb_gro_reset_offset>
	ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
ffff8000113ac518:	aa1603e0 	mov	x0, x22
ffff8000113ac51c:	aa1503e1 	mov	x1, x21
ffff8000113ac520:	97fffe42 	bl	ffff8000113abe28 <dev_gro_receive>
	switch (ret) {
ffff8000113ac524:	71000c1f 	cmp	w0, #0x3
	ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
ffff8000113ac528:	2a0003f4 	mov	w20, w0
	switch (ret) {
ffff8000113ac52c:	54000320 	b.eq	ffff8000113ac590 <napi_gro_receive+0xbc>
ffff8000113ac530:	7100101f 	cmp	w0, #0x4
ffff8000113ac534:	54000280 	b.eq	ffff8000113ac584 <napi_gro_receive+0xb0>
ffff8000113ac538:	7100041f 	cmp	w0, #0x1
ffff8000113ac53c:	54000160 	b.eq	ffff8000113ac568 <napi_gro_receive+0x94>
ffff8000113ac540:	90000000 	adrp	x0, 0 <__tracepoint_napi_gro_receive_exit>
			ffff8000113ac540: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_gro_receive_exit
ffff8000113ac544:	91000000 	add	x0, x0, #0x0
			ffff8000113ac544: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_gro_receive_exit
ffff8000113ac548:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ac54c:	6b1f003f 	cmp	w1, wzr
ffff8000113ac550:	540002cc 	b.gt	ffff8000113ac5a8 <napi_gro_receive+0xd4>
}
ffff8000113ac554:	2a1403e0 	mov	w0, w20
ffff8000113ac558:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ac55c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ac560:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ac564:	d65f03c0 	ret
		if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD)
ffff8000113ac568:	39412aa0 	ldrb	w0, [x21,#74]
ffff8000113ac56c:	d3461c00 	ubfx	x0, x0, #6, #2
ffff8000113ac570:	7100081f 	cmp	w0, #0x2
			napi_skb_free_stolen_head(skb);
ffff8000113ac574:	aa1503e0 	mov	x0, x21
		if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD)
ffff8000113ac578:	54000140 	b.eq	ffff8000113ac5a0 <napi_gro_receive+0xcc>
			__kfree_skb(skb);
ffff8000113ac57c:	94000000 	bl	0 <__kfree_skb>
			ffff8000113ac57c: R_AARCH64_CALL26	__kfree_skb
ffff8000113ac580:	17fffff0 	b	ffff8000113ac540 <napi_gro_receive+0x6c>
		kfree_skb(skb);
ffff8000113ac584:	aa1503e0 	mov	x0, x21
ffff8000113ac588:	94000000 	bl	0 <kfree_skb>
			ffff8000113ac588: R_AARCH64_CALL26	kfree_skb
ffff8000113ac58c:	17ffffed 	b	ffff8000113ac540 <napi_gro_receive+0x6c>
		gro_normal_one(napi, skb);
ffff8000113ac590:	aa1603e0 	mov	x0, x22
ffff8000113ac594:	aa1503e1 	mov	x1, x21
ffff8000113ac598:	97fffdbd 	bl	ffff8000113abc8c <gro_normal_one>
ffff8000113ac59c:	17ffffe9 	b	ffff8000113ac540 <napi_gro_receive+0x6c>
			napi_skb_free_stolen_head(skb);
ffff8000113ac5a0:	97ffd878 	bl	ffff8000113a2780 <napi_skb_free_stolen_head>
ffff8000113ac5a4:	17ffffe7 	b	ffff8000113ac540 <napi_gro_receive+0x6c>
DEFINE_EVENT(net_dev_rx_exit_template, napi_gro_receive_exit,
ffff8000113ac5a8:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113ac5a8: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ac5ac:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ac5b0:	91000021 	add	x1, x1, #0x0
			ffff8000113ac5b0: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ac5b4:	b8616841 	ldr	w1, [x2,x1]
	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
ffff8000113ac5b8:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ac5bc:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113ac5c0:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113ac5c0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ac5c4:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ac5c8:	91000042 	add	x2, x2, #0x0
			ffff8000113ac5c8: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ac5cc:	f8626862 	ldr	x2, [x3,x2]
ffff8000113ac5d0:	9ac12441 	lsr	x1, x2, x1
ffff8000113ac5d4:	3607fc01 	tbz	w1, #0, ffff8000113ac554 <napi_gro_receive+0x80>
ffff8000113ac5d8:	f9401013 	ldr	x19, [x0,#32]
ffff8000113ac5dc:	b40000f3 	cbz	x19, ffff8000113ac5f8 <napi_gro_receive+0x124>
ffff8000113ac5e0:	f9400262 	ldr	x2, [x19]
ffff8000113ac5e4:	f9400660 	ldr	x0, [x19,#8]
ffff8000113ac5e8:	2a1403e1 	mov	w1, w20
ffff8000113ac5ec:	d63f0040 	blr	x2
ffff8000113ac5f0:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113ac5f4:	b5ffff82 	cbnz	x2, ffff8000113ac5e4 <napi_gro_receive+0x110>
}
ffff8000113ac5f8:	2a1403e0 	mov	w0, w20
ffff8000113ac5fc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ac600:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ac604:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ac608:	d65f03c0 	ret
DEFINE_EVENT(net_dev_rx_verbose_template, napi_gro_receive_entry,
ffff8000113ac60c:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113ac60c: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ac610:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ac614:	91000021 	add	x1, x1, #0x0
			ffff8000113ac614: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ac618:	b8616841 	ldr	w1, [x2,x1]
ffff8000113ac61c:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ac620:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113ac624:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113ac624: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ac628:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ac62c:	91000042 	add	x2, x2, #0x0
			ffff8000113ac62c: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ac630:	f8626862 	ldr	x2, [x3,x2]
ffff8000113ac634:	9ac12441 	lsr	x1, x2, x1
ffff8000113ac638:	3607f6c1 	tbz	w1, #0, ffff8000113ac510 <napi_gro_receive+0x3c>
ffff8000113ac63c:	f9401013 	ldr	x19, [x0,#32]
ffff8000113ac640:	b40000f3 	cbz	x19, ffff8000113ac65c <napi_gro_receive+0x188>
ffff8000113ac644:	f9400262 	ldr	x2, [x19]
ffff8000113ac648:	f9400660 	ldr	x0, [x19,#8]
ffff8000113ac64c:	aa1503e1 	mov	x1, x21
ffff8000113ac650:	d63f0040 	blr	x2
ffff8000113ac654:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113ac658:	b5ffff82 	cbnz	x2, ffff8000113ac648 <napi_gro_receive+0x174>
ffff8000113ac65c:	17ffffad 	b	ffff8000113ac510 <napi_gro_receive+0x3c>

ffff8000113ac660 <napi_gro_frags>:
{
ffff8000113ac660:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113ac664:	910003fd 	mov	x29, sp
ffff8000113ac668:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ac66c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ac670:	aa0003f6 	mov	x22, x0
ffff8000113ac674:	aa1e03e0 	mov	x0, x30
ffff8000113ac678:	94000000 	bl	0 <_mcount>
			ffff8000113ac678: R_AARCH64_CALL26	_mcount
	struct sk_buff *skb = napi->skb;
ffff8000113ac67c:	f94082d3 	ldr	x19, [x22,#256]
	napi->skb = NULL;
ffff8000113ac680:	f90082df 	str	xzr, [x22,#256]
	skb->mac_header = skb->data - skb->head;
ffff8000113ac684:	f9406662 	ldr	x2, [x19,#200]
ffff8000113ac688:	f9406261 	ldr	x1, [x19,#192]
	skb_gro_reset_offset(skb);
ffff8000113ac68c:	aa1303e0 	mov	x0, x19
ffff8000113ac690:	cb010041 	sub	x1, x2, x1
ffff8000113ac694:	79016e61 	strh	w1, [x19,#182]
ffff8000113ac698:	97ffd382 	bl	ffff8000113a14a0 <skb_gro_reset_offset>
	return NAPI_GRO_CB(skb)->frag0_len < hlen;
ffff8000113ac69c:	9100a275 	add	x21, x19, #0x28
	if (unlikely(skb_gro_header_hard(skb, hlen))) {
ffff8000113ac6a0:	b9400aa0 	ldr	w0, [x21,#8]
	if (!pskb_may_pull(skb, hlen))
ffff8000113ac6a4:	528001c1 	mov	w1, #0xe                   	// #14
ffff8000113ac6a8:	7100341f 	cmp	w0, #0xd
ffff8000113ac6ac:	aa1303e0 	mov	x0, x19
ffff8000113ac6b0:	54000d49 	b.ls	ffff8000113ac858 <napi_gro_frags+0x1f8>
		eth = (const struct ethhdr *)skb->data;
ffff8000113ac6b4:	f9406674 	ldr	x20, [x19,#200]
		gro_pull_from_frag0(skb, hlen);
ffff8000113ac6b8:	97ffd1d3 	bl	ffff8000113a0e04 <gro_pull_from_frag0>
		NAPI_GRO_CB(skb)->frag0 += hlen;
ffff8000113ac6bc:	f9401660 	ldr	x0, [x19,#40]
ffff8000113ac6c0:	91003800 	add	x0, x0, #0xe
ffff8000113ac6c4:	f9001660 	str	x0, [x19,#40]
		NAPI_GRO_CB(skb)->frag0_len -= hlen;
ffff8000113ac6c8:	b9400aa0 	ldr	w0, [x21,#8]
ffff8000113ac6cc:	51003800 	sub	w0, w0, #0xe
ffff8000113ac6d0:	b9000aa0 	str	w0, [x21,#8]
	skb->len -= len;
ffff8000113ac6d4:	b9407260 	ldr	w0, [x19,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113ac6d8:	b9407661 	ldr	w1, [x19,#116]
	skb->len -= len;
ffff8000113ac6dc:	51003800 	sub	w0, w0, #0xe
ffff8000113ac6e0:	b9007260 	str	w0, [x19,#112]
	BUG_ON(skb->len < skb->data_len);
ffff8000113ac6e4:	6b01001f 	cmp	w0, w1
ffff8000113ac6e8:	54000b63 	b.cc	ffff8000113ac854 <napi_gro_frags+0x1f4>
	return skb->data += len;
ffff8000113ac6ec:	f9406661 	ldr	x1, [x19,#200]
		return GRO_DROP;
ffff8000113ac6f0:	52800080 	mov	w0, #0x4                   	// #4
ffff8000113ac6f4:	91003821 	add	x1, x1, #0xe
ffff8000113ac6f8:	f9006661 	str	x1, [x19,#200]
	skb->protocol = eth->h_proto;
ffff8000113ac6fc:	79401a81 	ldrh	w1, [x20,#12]
ffff8000113ac700:	79016261 	strh	w1, [x19,#176]
	if (!skb)
ffff8000113ac704:	b4000273 	cbz	x19, ffff8000113ac750 <napi_gro_frags+0xf0>
ffff8000113ac708:	90000000 	adrp	x0, 0 <__tracepoint_napi_gro_frags_entry>
			ffff8000113ac708: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_gro_frags_entry
ffff8000113ac70c:	91000000 	add	x0, x0, #0x0
			ffff8000113ac70c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_gro_frags_entry
ffff8000113ac710:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ac714:	6b1f003f 	cmp	w1, wzr
ffff8000113ac718:	54000b6c 	b.gt	ffff8000113ac884 <napi_gro_frags+0x224>
	ret = napi_frags_finish(napi, skb, dev_gro_receive(napi, skb));
ffff8000113ac71c:	aa1603e0 	mov	x0, x22
ffff8000113ac720:	aa1303e1 	mov	x1, x19
ffff8000113ac724:	97fffdc1 	bl	ffff8000113abe28 <dev_gro_receive>
ffff8000113ac728:	2a0003f4 	mov	w20, w0
	switch (ret) {
ffff8000113ac72c:	51000400 	sub	w0, w0, #0x1
ffff8000113ac730:	71000c1f 	cmp	w0, #0x3
ffff8000113ac734:	54000169 	b.ls	ffff8000113ac760 <napi_gro_frags+0x100>
ffff8000113ac738:	90000001 	adrp	x1, 0 <__tracepoint_napi_gro_frags_exit>
			ffff8000113ac738: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_gro_frags_exit
ffff8000113ac73c:	91000021 	add	x1, x1, #0x0
			ffff8000113ac73c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_gro_frags_exit
ffff8000113ac740:	b9400820 	ldr	w0, [x1,#8]
ffff8000113ac744:	6b1f001f 	cmp	w0, wzr
ffff8000113ac748:	540005ac 	b.gt	ffff8000113ac7fc <napi_gro_frags+0x19c>
	ret = napi_frags_finish(napi, skb, dev_gro_receive(napi, skb));
ffff8000113ac74c:	2a1403e0 	mov	w0, w20
}
ffff8000113ac750:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ac754:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ac758:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ac75c:	d65f03c0 	ret
	switch (ret) {
ffff8000113ac760:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac760: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x74
ffff8000113ac764:	91000021 	add	x1, x1, #0x0
			ffff8000113ac764: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x74
ffff8000113ac768:	38604822 	ldrb	w2, [x1,w0,uxtw]
ffff8000113ac76c:	10000063 	adr	x3, ffff8000113ac778 <napi_gro_frags+0x118>
ffff8000113ac770:	8b228862 	add	x2, x3, w2, sxtb #2
ffff8000113ac774:	d61f0040 	br	x2
		if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD)
ffff8000113ac778:	39408aa0 	ldrb	w0, [x21,#34]
ffff8000113ac77c:	d3461c00 	ubfx	x0, x0, #6, #2
ffff8000113ac780:	7100081f 	cmp	w0, #0x2
ffff8000113ac784:	54000360 	b.eq	ffff8000113ac7f0 <napi_gro_frags+0x190>
			napi_reuse_skb(napi, skb);
ffff8000113ac788:	9100e2c0 	add	x0, x22, #0x38
ffff8000113ac78c:	910402c1 	add	x1, x22, #0x100
ffff8000113ac790:	aa1303e2 	mov	x2, x19
ffff8000113ac794:	97ffd813 	bl	ffff8000113a27e0 <napi_reuse_skb.isra.123>
ffff8000113ac798:	90000001 	adrp	x1, 0 <__tracepoint_napi_gro_frags_exit>
			ffff8000113ac798: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_gro_frags_exit
ffff8000113ac79c:	91000021 	add	x1, x1, #0x0
			ffff8000113ac79c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_gro_frags_exit
ffff8000113ac7a0:	b9400820 	ldr	w0, [x1,#8]
ffff8000113ac7a4:	6b1f001f 	cmp	w0, wzr
ffff8000113ac7a8:	54fffd2d 	b.le	ffff8000113ac74c <napi_gro_frags+0xec>
ffff8000113ac7ac:	14000014 	b	ffff8000113ac7fc <napi_gro_frags+0x19c>
	skb->data -= len;
ffff8000113ac7b0:	f9406662 	ldr	x2, [x19,#200]
	skb->len  += len;
ffff8000113ac7b4:	b9407260 	ldr	w0, [x19,#112]
	skb->data -= len;
ffff8000113ac7b8:	d1003842 	sub	x2, x2, #0xe
	skb->len  += len;
ffff8000113ac7bc:	11003800 	add	w0, w0, #0xe
		skb->protocol = eth_type_trans(skb, skb->dev);
ffff8000113ac7c0:	f9400a61 	ldr	x1, [x19,#16]
ffff8000113ac7c4:	b9007260 	str	w0, [x19,#112]
	skb->data -= len;
ffff8000113ac7c8:	f9006662 	str	x2, [x19,#200]
ffff8000113ac7cc:	aa1303e0 	mov	x0, x19
ffff8000113ac7d0:	94000000 	bl	0 <eth_type_trans>
			ffff8000113ac7d0: R_AARCH64_CALL26	eth_type_trans
ffff8000113ac7d4:	79016260 	strh	w0, [x19,#176]
		if (ret == GRO_NORMAL)
ffff8000113ac7d8:	71000e9f 	cmp	w20, #0x3
ffff8000113ac7dc:	54fffae1 	b.ne	ffff8000113ac738 <napi_gro_frags+0xd8>
			gro_normal_one(napi, skb);
ffff8000113ac7e0:	aa1603e0 	mov	x0, x22
ffff8000113ac7e4:	aa1303e1 	mov	x1, x19
ffff8000113ac7e8:	97fffd29 	bl	ffff8000113abc8c <gro_normal_one>
ffff8000113ac7ec:	17ffffd3 	b	ffff8000113ac738 <napi_gro_frags+0xd8>
			napi_skb_free_stolen_head(skb);
ffff8000113ac7f0:	aa1303e0 	mov	x0, x19
ffff8000113ac7f4:	97ffd7e3 	bl	ffff8000113a2780 <napi_skb_free_stolen_head>
ffff8000113ac7f8:	17ffffd0 	b	ffff8000113ac738 <napi_gro_frags+0xd8>
DEFINE_EVENT(net_dev_rx_exit_template, napi_gro_frags_exit,
ffff8000113ac7fc:	90000000 	adrp	x0, 0 <cpu_number>
			ffff8000113ac7fc: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ac800:	91000000 	add	x0, x0, #0x0
			ffff8000113ac800: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ac804:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ac808:	b8606842 	ldr	w2, [x2,x0]
ffff8000113ac80c:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ac810:	1ac30c43 	sdiv	w3, w2, w3
ffff8000113ac814:	90000000 	adrp	x0, 0 <__cpu_online_mask>
			ffff8000113ac814: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ac818:	91000000 	add	x0, x0, #0x0
			ffff8000113ac818: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ac81c:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ac820:	f8606863 	ldr	x3, [x3,x0]
	ret = napi_frags_finish(napi, skb, dev_gro_receive(napi, skb));
ffff8000113ac824:	2a1403e0 	mov	w0, w20
ffff8000113ac828:	9ac22462 	lsr	x2, x3, x2
ffff8000113ac82c:	3607f922 	tbz	w2, #0, ffff8000113ac750 <napi_gro_frags+0xf0>
ffff8000113ac830:	f9401033 	ldr	x19, [x1,#32]
ffff8000113ac834:	b40000f3 	cbz	x19, ffff8000113ac850 <napi_gro_frags+0x1f0>
ffff8000113ac838:	f9400262 	ldr	x2, [x19]
ffff8000113ac83c:	f9400660 	ldr	x0, [x19,#8]
ffff8000113ac840:	2a1403e1 	mov	w1, w20
ffff8000113ac844:	d63f0040 	blr	x2
ffff8000113ac848:	f8418e62 	ldr	x2, [x19,#24]!
ffff8000113ac84c:	b5ffff82 	cbnz	x2, ffff8000113ac83c <napi_gro_frags+0x1dc>
ffff8000113ac850:	17ffffbf 	b	ffff8000113ac74c <napi_gro_frags+0xec>
ffff8000113ac854:	94000000 	bl	ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac854: R_AARCH64_CALL26	.text.unlikely+0xa0
ffff8000113ac858:	97ffd137 	bl	ffff8000113a0d34 <pskb_may_pull>
ffff8000113ac85c:	53001c00 	uxtb	w0, w0
ffff8000113ac860:	350003c0 	cbnz	w0, ffff8000113ac8d8 <napi_gro_frags+0x278>
			net_warn_ratelimited("%s: dropping impossible skb from %s\n",
ffff8000113ac864:	94000000 	bl	0 <net_ratelimit>
			ffff8000113ac864: R_AARCH64_CALL26	net_ratelimit
ffff8000113ac868:	35000420 	cbnz	w0, ffff8000113ac8ec <napi_gro_frags+0x28c>
			napi_reuse_skb(napi, skb);
ffff8000113ac86c:	9100e2c0 	add	x0, x22, #0x38
ffff8000113ac870:	910402c1 	add	x1, x22, #0x100
ffff8000113ac874:	aa1303e2 	mov	x2, x19
ffff8000113ac878:	97ffd7da 	bl	ffff8000113a27e0 <napi_reuse_skb.isra.123>
		return GRO_DROP;
ffff8000113ac87c:	52800080 	mov	w0, #0x4                   	// #4
ffff8000113ac880:	17ffffb4 	b	ffff8000113ac750 <napi_gro_frags+0xf0>
DEFINE_EVENT(net_dev_rx_verbose_template, napi_gro_frags_entry,
ffff8000113ac884:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113ac884: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ac888:	d538d082 	mrs	x2, tpidr_el1
ffff8000113ac88c:	91000021 	add	x1, x1, #0x0
			ffff8000113ac88c: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ac890:	b8616841 	ldr	w1, [x2,x1]
ffff8000113ac894:	52800803 	mov	w3, #0x40                  	// #64
ffff8000113ac898:	1ac30c23 	sdiv	w3, w1, w3
ffff8000113ac89c:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113ac89c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113ac8a0:	937d7c63 	sbfiz	x3, x3, #3, #32
ffff8000113ac8a4:	91000042 	add	x2, x2, #0x0
			ffff8000113ac8a4: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ac8a8:	f8626862 	ldr	x2, [x3,x2]
ffff8000113ac8ac:	9ac12441 	lsr	x1, x2, x1
ffff8000113ac8b0:	3607f361 	tbz	w1, #0, ffff8000113ac71c <napi_gro_frags+0xbc>
ffff8000113ac8b4:	f9401014 	ldr	x20, [x0,#32]
ffff8000113ac8b8:	b40000f4 	cbz	x20, ffff8000113ac8d4 <napi_gro_frags+0x274>
ffff8000113ac8bc:	f9400282 	ldr	x2, [x20]
ffff8000113ac8c0:	f9400680 	ldr	x0, [x20,#8]
ffff8000113ac8c4:	aa1303e1 	mov	x1, x19
ffff8000113ac8c8:	d63f0040 	blr	x2
ffff8000113ac8cc:	f8418e82 	ldr	x2, [x20,#24]!
ffff8000113ac8d0:	b5ffff82 	cbnz	x2, ffff8000113ac8c0 <napi_gro_frags+0x260>
ffff8000113ac8d4:	17ffff92 	b	ffff8000113ac71c <napi_gro_frags+0xbc>
	NAPI_GRO_CB(skb)->frag0 = NULL;
ffff8000113ac8d8:	f900167f 	str	xzr, [x19,#40]
	NAPI_GRO_CB(skb)->frag0_len = 0;
ffff8000113ac8dc:	b9000abf 	str	wzr, [x21,#8]
	return skb->data + offset;
ffff8000113ac8e0:	f9406674 	ldr	x20, [x19,#200]
		if (unlikely(!eth)) {
ffff8000113ac8e4:	b5ffef94 	cbnz	x20, ffff8000113ac6d4 <napi_gro_frags+0x74>
ffff8000113ac8e8:	17ffffdf 	b	ffff8000113ac864 <napi_gro_frags+0x204>
			net_warn_ratelimited("%s: dropping impossible skb from %s\n",
ffff8000113ac8ec:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac8ec: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113ac8f0:	f9401ec2 	ldr	x2, [x22,#56]
ffff8000113ac8f4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ac8f4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x6f8
ffff8000113ac8f8:	91000021 	add	x1, x1, #0x0
			ffff8000113ac8f8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113ac8fc:	91020021 	add	x1, x1, #0x80
ffff8000113ac900:	91000000 	add	x0, x0, #0x0
			ffff8000113ac900: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x6f8
ffff8000113ac904:	94000000 	bl	0 <printk>
			ffff8000113ac904: R_AARCH64_CALL26	printk
ffff8000113ac908:	17ffffd9 	b	ffff8000113ac86c <napi_gro_frags+0x20c>

ffff8000113ac90c <napi_gro_flush>:
{
ffff8000113ac90c:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ac910:	910003fd 	mov	x29, sp
ffff8000113ac914:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ac918:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ac91c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ac920:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ac924:	a90573fb 	stp	x27, x28, [sp,#80]
	unsigned long bitmask = napi->gro_bitmask;
ffff8000113ac928:	aa0003fb 	mov	x27, x0
{
ffff8000113ac92c:	aa0003f6 	mov	x22, x0
ffff8000113ac930:	aa1e03e0 	mov	x0, x30
ffff8000113ac934:	53001c37 	uxtb	w23, w1
ffff8000113ac938:	94000000 	bl	0 <_mcount>
			ffff8000113ac938: R_AARCH64_CALL26	_mcount
	unsigned long bitmask = napi->gro_bitmask;
ffff8000113ac93c:	f8420f7a 	ldr	x26, [x27,#32]!
	unsigned int i, base = ~0U;
ffff8000113ac940:	12800019 	mov	w25, #0xffffffff            	// #-1
		if (flush_old && NAPI_GRO_CB(skb)->age == jiffies)
ffff8000113ac944:	90000018 	adrp	x24, 0 <jiffies>
			ffff8000113ac944: R_AARCH64_ADR_PREL_PG_HI21	jiffies
 * the libc and compiler builtin ffs routines, therefore
 * differs in spirit from the above ffz (man ffs).
 */
static __always_inline int ffs(int x)
{
	return __builtin_ffs(x);
ffff8000113ac948:	5ac00340 	rbit	w0, w26
ffff8000113ac94c:	6b1f035f 	cmp	w26, wzr
ffff8000113ac950:	5ac01000 	clz	w0, w0
ffff8000113ac954:	1a8007e0 	csinc	w0, wzr, w0, eq
	while ((i = ffs(bitmask)) != 0) {
ffff8000113ac958:	340007c0 	cbz	w0, ffff8000113aca50 <napi_gro_flush+0x144>
		base += i;
ffff8000113ac95c:	0b000339 	add	w25, w25, w0
	struct list_head *head = &napi->gro_hash[index].list;
ffff8000113ac960:	2a1903e1 	mov	w1, w25
ffff8000113ac964:	8b010421 	add	x1, x1, x1, lsl #1
ffff8000113ac968:	d37df021 	lsl	x1, x1, #3
ffff8000113ac96c:	91010035 	add	x21, x1, #0x40
ffff8000113ac970:	8b1502d5 	add	x21, x22, x21
	list_for_each_entry_safe_reverse(skb, p, head, list) {
ffff8000113ac974:	f94006b3 	ldr	x19, [x21,#8]
		bitmask >>= i;
ffff8000113ac978:	9ac0275a 	lsr	x26, x26, x0
	list_for_each_entry_safe_reverse(skb, p, head, list) {
ffff8000113ac97c:	eb1302bf 	cmp	x21, x19
ffff8000113ac980:	f940067c 	ldr	x28, [x19,#8]
ffff8000113ac984:	aa1303e0 	mov	x0, x19
		napi->gro_hash[index].count--;
ffff8000113ac988:	8b0102d4 	add	x20, x22, x1
	list_for_each_entry_safe_reverse(skb, p, head, list) {
ffff8000113ac98c:	54000360 	b.eq	ffff8000113ac9f8 <napi_gro_flush+0xec>
		if (flush_old && NAPI_GRO_CB(skb)->age == jiffies)
ffff8000113ac990:	340000b7 	cbz	w23, ffff8000113ac9a4 <napi_gro_flush+0x98>
ffff8000113ac994:	f9402263 	ldr	x3, [x19,#64]
ffff8000113ac998:	f9400301 	ldr	x1, [x24]
			ffff8000113ac998: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113ac99c:	eb01007f 	cmp	x3, x1
ffff8000113ac9a0:	54fffd40 	b.eq	ffff8000113ac948 <napi_gro_flush+0x3c>
	if (!__list_del_entry_valid(entry))
ffff8000113ac9a4:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ac9a4: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ac9a8:	53001c03 	uxtb	w3, w0
		napi_gro_complete(napi, skb);
ffff8000113ac9ac:	aa1303e1 	mov	x1, x19
ffff8000113ac9b0:	aa1603e0 	mov	x0, x22
ffff8000113ac9b4:	340000a3 	cbz	w3, ffff8000113ac9c8 <napi_gro_flush+0xbc>
	__list_del(entry->prev, entry->next);
ffff8000113ac9b8:	f9400264 	ldr	x4, [x19]
ffff8000113ac9bc:	f9400663 	ldr	x3, [x19,#8]
	next->prev = prev;
ffff8000113ac9c0:	f9000483 	str	x3, [x4,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ac9c4:	f9000064 	str	x4, [x3]
	skb->next = NULL;
ffff8000113ac9c8:	f900027f 	str	xzr, [x19]
ffff8000113ac9cc:	97fffcd6 	bl	ffff8000113abd24 <napi_gro_complete.constprop.161>
		napi->gro_hash[index].count--;
ffff8000113ac9d0:	b9405281 	ldr	w1, [x20,#80]
	list_for_each_entry_safe_reverse(skb, p, head, list) {
ffff8000113ac9d4:	eb1c02bf 	cmp	x21, x28
		napi->gro_hash[index].count--;
ffff8000113ac9d8:	51000421 	sub	w1, w1, #0x1
ffff8000113ac9dc:	b9005281 	str	w1, [x20,#80]
	list_for_each_entry_safe_reverse(skb, p, head, list) {
ffff8000113ac9e0:	f9400783 	ldr	x3, [x28,#8]
ffff8000113ac9e4:	aa1c03e0 	mov	x0, x28
ffff8000113ac9e8:	540000a0 	b.eq	ffff8000113ac9fc <napi_gro_flush+0xf0>
ffff8000113ac9ec:	aa1c03f3 	mov	x19, x28
ffff8000113ac9f0:	aa0303fc 	mov	x28, x3
ffff8000113ac9f4:	17ffffe7 	b	ffff8000113ac990 <napi_gro_flush+0x84>
ffff8000113ac9f8:	b9405281 	ldr	w1, [x20,#80]
	if (!napi->gro_hash[index].count)
ffff8000113ac9fc:	35fffa61 	cbnz	w1, ffff8000113ac948 <napi_gro_flush+0x3c>
	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
ffff8000113aca00:	6b1f033f 	cmp	w25, wzr
ffff8000113aca04:	1100ff20 	add	w0, w25, #0x3f
	unsigned long mask = BIT_MASK(nr);
ffff8000113aca08:	131f7f21 	asr	w1, w25, #31
ffff8000113aca0c:	531a7c21 	lsr	w1, w1, #26
	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
ffff8000113aca10:	1a99b000 	csel	w0, w0, w25, lt
	unsigned long mask = BIT_MASK(nr);
ffff8000113aca14:	0b010323 	add	w3, w25, w1
	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
ffff8000113aca18:	13067c00 	asr	w0, w0, #6
ffff8000113aca1c:	937d7c00 	sbfiz	x0, x0, #3, #32
	unsigned long mask = BIT_MASK(nr);
ffff8000113aca20:	12001463 	and	w3, w3, #0x3f
	*p &= ~mask;
ffff8000113aca24:	f8606b62 	ldr	x2, [x27,x0]
	unsigned long mask = BIT_MASK(nr);
ffff8000113aca28:	4b010061 	sub	w1, w3, w1
ffff8000113aca2c:	d2800023 	mov	x3, #0x1                   	// #1
ffff8000113aca30:	9ac12061 	lsl	x1, x3, x1
	*p &= ~mask;
ffff8000113aca34:	8a210041 	bic	x1, x2, x1
ffff8000113aca38:	f8206b61 	str	x1, [x27,x0]
ffff8000113aca3c:	5ac00340 	rbit	w0, w26
ffff8000113aca40:	6b1f035f 	cmp	w26, wzr
ffff8000113aca44:	5ac01000 	clz	w0, w0
ffff8000113aca48:	1a8007e0 	csinc	w0, wzr, w0, eq
	while ((i = ffs(bitmask)) != 0) {
ffff8000113aca4c:	35fff880 	cbnz	w0, ffff8000113ac95c <napi_gro_flush+0x50>
}
ffff8000113aca50:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aca54:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aca58:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113aca5c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113aca60:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113aca64:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113aca68:	d65f03c0 	ret

ffff8000113aca6c <napi_complete_done>:
{
ffff8000113aca6c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113aca70:	910003fd 	mov	x29, sp
ffff8000113aca74:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113aca78:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113aca7c:	aa0003f3 	mov	x19, x0
ffff8000113aca80:	aa1e03e0 	mov	x0, x30
ffff8000113aca84:	f9001fa1 	str	x1, [x29,#56]
ffff8000113aca88:	94000000 	bl	0 <_mcount>
			ffff8000113aca88: R_AARCH64_CALL26	_mcount
	if (unlikely(n->state & (NAPIF_STATE_NPSVC |
ffff8000113aca8c:	f9400a74 	ldr	x20, [x19,#16]
ffff8000113aca90:	d2800900 	mov	x0, #0x48                  	// #72
ffff8000113aca94:	8a000294 	and	x20, x20, x0
ffff8000113aca98:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113aca9c:	b5000694 	cbnz	x20, ffff8000113acb6c <napi_complete_done+0x100>
	if (n->gro_bitmask) {
ffff8000113acaa0:	f9401260 	ldr	x0, [x19,#32]
ffff8000113acaa4:	b40001e0 	cbz	x0, ffff8000113acae0 <napi_complete_done+0x74>
		if (work_done)
ffff8000113acaa8:	34000501 	cbz	w1, ffff8000113acb48 <napi_complete_done+0xdc>
			timeout = n->dev->gro_flush_timeout;
ffff8000113acaac:	f9401e61 	ldr	x1, [x19,#56]
		napi_gro_flush(n, !!timeout);
ffff8000113acab0:	aa1303e0 	mov	x0, x19
			timeout = n->dev->gro_flush_timeout;
ffff8000113acab4:	f9419c36 	ldr	x22, [x1,#824]
		napi_gro_flush(n, !!timeout);
ffff8000113acab8:	eb1f02df 	cmp	x22, xzr
ffff8000113acabc:	1a9f07f5 	cset	w21, ne
ffff8000113acac0:	2a1503e1 	mov	w1, w21
ffff8000113acac4:	94000000 	bl	ffff8000113ac90c <napi_gro_flush>
			ffff8000113acac4: R_AARCH64_CALL26	napi_gro_flush
		if (timeout)
ffff8000113acac8:	340000d5 	cbz	w21, ffff8000113acae0 <napi_complete_done+0x74>
 *		softirq based mode is considered for debug purpose only!
 */
static inline void hrtimer_start(struct hrtimer *timer, ktime_t tim,
				 const enum hrtimer_mode mode)
{
	hrtimer_start_range_ns(timer, tim, 0, mode);
ffff8000113acacc:	91048260 	add	x0, x19, #0x120
ffff8000113acad0:	aa1603e1 	mov	x1, x22
ffff8000113acad4:	aa1403e2 	mov	x2, x20
ffff8000113acad8:	52800063 	mov	w3, #0x3                   	// #3
ffff8000113acadc:	94000000 	bl	0 <hrtimer_start_range_ns>
			ffff8000113acadc: R_AARCH64_CALL26	hrtimer_start_range_ns
	if (!napi->rx_count)
ffff8000113acae0:	b9411a60 	ldr	w0, [x19,#280]
ffff8000113acae4:	350003a0 	cbnz	w0, ffff8000113acb58 <napi_complete_done+0xec>
	__READ_ONCE_SIZE;
ffff8000113acae8:	f9400260 	ldr	x0, [x19]
	if (unlikely(!list_empty(&n->poll_list))) {
ffff8000113acaec:	eb00027f 	cmp	x19, x0
ffff8000113acaf0:	54000421 	b.ne	ffff8000113acb74 <napi_complete_done+0x108>
ffff8000113acaf4:	91004262 	add	x2, x19, #0x10
ffff8000113acaf8:	f9400a61 	ldr	x1, [x19,#16]
		WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
ffff8000113acafc:	36000341 	tbz	w1, #0, ffff8000113acb64 <napi_complete_done+0xf8>
		new = val & ~(NAPIF_STATE_MISSED | NAPIF_STATE_SCHED);
ffff8000113acb00:	927ef423 	and	x3, x1, #0xfffffffffffffffc
		new |= (val & NAPIF_STATE_MISSED) / NAPIF_STATE_MISSED *
ffff8000113acb04:	927f0024 	and	x4, x1, #0x2
ffff8000113acb08:	aa440463 	orr	x3, x3, x4, lsr #1
__CMPXCHG_CASE( ,  ,  mb_, 64, dmb ish,  , l, "memory", L)
ffff8000113acb0c:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113acb10:	c85f7c45 	ldxr	x5, [x2]
ffff8000113acb14:	ca0100a0 	eor	x0, x5, x1
ffff8000113acb18:	b5000080 	cbnz	x0, ffff8000113acb28 <napi_complete_done+0xbc>
ffff8000113acb1c:	c800fc43 	stlxr	w0, x3, [x2]
ffff8000113acb20:	35ffff80 	cbnz	w0, ffff8000113acb10 <napi_complete_done+0xa4>
ffff8000113acb24:	d5033bbf 	dmb	ish
	} while (cmpxchg(&n->state, val, new) != val);
ffff8000113acb28:	eb05003f 	cmp	x1, x5
ffff8000113acb2c:	54fffe61 	b.ne	ffff8000113acaf8 <napi_complete_done+0x8c>
	return true;
ffff8000113acb30:	52800020 	mov	w0, #0x1                   	// #1
	if (unlikely(val & NAPIF_STATE_MISSED)) {
ffff8000113acb34:	b5000364 	cbnz	x4, ffff8000113acba0 <napi_complete_done+0x134>
}
ffff8000113acb38:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113acb3c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113acb40:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113acb44:	d65f03c0 	ret
		napi_gro_flush(n, !!timeout);
ffff8000113acb48:	aa1303e0 	mov	x0, x19
ffff8000113acb4c:	94000000 	bl	ffff8000113ac90c <napi_gro_flush>
			ffff8000113acb4c: R_AARCH64_CALL26	napi_gro_flush
	if (!napi->rx_count)
ffff8000113acb50:	b9411a60 	ldr	w0, [x19,#280]
ffff8000113acb54:	34fffca0 	cbz	w0, ffff8000113acae8 <napi_complete_done+0x7c>
ffff8000113acb58:	aa1303e0 	mov	x0, x19
ffff8000113acb5c:	97fffc3d 	bl	ffff8000113abc50 <gro_normal_list.part.134>
ffff8000113acb60:	17ffffe2 	b	ffff8000113acae8 <napi_complete_done+0x7c>
		WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
ffff8000113acb64:	d4210000 	brk	#0x800
ffff8000113acb68:	17ffffe6 	b	ffff8000113acb00 <napi_complete_done+0x94>
		return false;
ffff8000113acb6c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113acb70:	17fffff2 	b	ffff8000113acb38 <napi_complete_done+0xcc>
	asm volatile(ALTERNATIVE(
ffff8000113acb74:	d53b4234 	mrs	x20, daif
	asm volatile(ALTERNATIVE(
ffff8000113acb78:	12190280 	and	w0, w20, #0x80
	if (!arch_irqs_disabled_flags(flags))
ffff8000113acb7c:	35000060 	cbnz	w0, ffff8000113acb88 <napi_complete_done+0x11c>
	asm volatile(ALTERNATIVE(
ffff8000113acb80:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113acb84:	d50342df 	msr	daifset, #0x2
	__list_del_entry(entry);
ffff8000113acb88:	aa1303e0 	mov	x0, x19
ffff8000113acb8c:	97ffd35c 	bl	ffff8000113a18fc <__list_del_entry>
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113acb90:	f9000273 	str	x19, [x19]
	list->prev = list;
ffff8000113acb94:	f9000673 	str	x19, [x19,#8]
	asm volatile(ALTERNATIVE(
ffff8000113acb98:	d51b4234 	msr	daif, x20
ffff8000113acb9c:	17ffffd6 	b	ffff8000113acaf4 <napi_complete_done+0x88>
		__napi_schedule(n);
ffff8000113acba0:	aa1303e0 	mov	x0, x19
ffff8000113acba4:	94000000 	bl	ffff8000113a5864 <__napi_schedule>
			ffff8000113acba4: R_AARCH64_CALL26	__napi_schedule
		return false;
ffff8000113acba8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113acbac:	17ffffe3 	b	ffff8000113acb38 <napi_complete_done+0xcc>

ffff8000113acbb0 <busy_poll_stop>:
{
ffff8000113acbb0:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113acbb4:	910003fd 	mov	x29, sp
ffff8000113acbb8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113acbbc:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113acbc0:	aa0003f3 	mov	x19, x0
ffff8000113acbc4:	aa1e03e0 	mov	x0, x30
ffff8000113acbc8:	aa0103f6 	mov	x22, x1
ffff8000113acbcc:	94000000 	bl	0 <_mcount>
			ffff8000113acbcc: R_AARCH64_CALL26	_mcount
ATOMIC64_OPS(andnot, bic, )
ffff8000113acbd0:	d2800040 	mov	x0, #0x2                   	// #2
ffff8000113acbd4:	91004263 	add	x3, x19, #0x10
ffff8000113acbd8:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113acbdc:	c85f7c61 	ldxr	x1, [x3]
ffff8000113acbe0:	8a200021 	bic	x1, x1, x0
ffff8000113acbe4:	c8027c61 	stxr	w2, x1, [x3]
ffff8000113acbe8:	35ffffa2 	cbnz	w2, ffff8000113acbdc <busy_poll_stop+0x2c>
ffff8000113acbec:	d2800814 	mov	x20, #0x40                  	// #64
ffff8000113acbf0:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113acbf4:	c85f7c60 	ldxr	x0, [x3]
ffff8000113acbf8:	8a340000 	bic	x0, x0, x20
ffff8000113acbfc:	c8017c60 	stxr	w1, x0, [x3]
ffff8000113acc00:	35ffffa1 	cbnz	w1, ffff8000113acbf4 <busy_poll_stop+0x44>
ffff8000113acc04:	d5384100 	mrs	x0, sp_el0
	__READ_ONCE_SIZE;
ffff8000113acc08:	b9401801 	ldr	w1, [x0,#24]
ffff8000113acc0c:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113acc10:	b9001801 	str	w1, [x0,#24]
	rc = napi->poll(napi, BUSY_POLL_BUDGET);
ffff8000113acc14:	f9401662 	ldr	x2, [x19,#40]
ffff8000113acc18:	52800101 	mov	w1, #0x8                   	// #8
ffff8000113acc1c:	aa1303e0 	mov	x0, x19
ffff8000113acc20:	d63f0040 	blr	x2
ffff8000113acc24:	2a0003f5 	mov	w21, w0
	__READ_ONCE_SIZE;
ffff8000113acc28:	90000000 	adrp	x0, 0 <__tracepoint_napi_poll>
			ffff8000113acc28: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_poll
ffff8000113acc2c:	91000000 	add	x0, x0, #0x0
			ffff8000113acc2c: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_poll
ffff8000113acc30:	b9400801 	ldr	w1, [x0,#8]
ffff8000113acc34:	6b1f003f 	cmp	w1, wzr
ffff8000113acc38:	540003cc 	b.gt	ffff8000113accb0 <busy_poll_stop+0x100>

static inline void netpoll_poll_unlock(void *have)
{
	struct napi_struct *napi = have;

	if (napi)
ffff8000113acc3c:	b4000096 	cbz	x22, ffff8000113acc4c <busy_poll_stop+0x9c>
		smp_store_release(&napi->poll_owner, -1);
ffff8000113acc40:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113acc44:	9100c2d6 	add	x22, x22, #0x30
ffff8000113acc48:	889ffec0 	stlr	w0, [x22]
	if (rc == BUSY_POLL_BUDGET) {
ffff8000113acc4c:	710022bf 	cmp	w21, #0x8
ffff8000113acc50:	54000120 	b.eq	ffff8000113acc74 <busy_poll_stop+0xc4>
ffff8000113acc54:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113acc54: R_AARCH64_ADR_PREL_PG_HI21	.text+0xe8d8
ffff8000113acc58:	91000000 	add	x0, x0, #0x0
			ffff8000113acc58: R_AARCH64_ADD_ABS_LO12_NC	.text+0xe8d8
ffff8000113acc5c:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113acc60:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113acc60: R_AARCH64_CALL26	__local_bh_enable_ip
}
ffff8000113acc64:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113acc68:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113acc6c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113acc70:	d65f03c0 	ret
	if (!napi->rx_count)
ffff8000113acc74:	b9411a60 	ldr	w0, [x19,#280]
ffff8000113acc78:	35000160 	cbnz	w0, ffff8000113acca4 <busy_poll_stop+0xf4>
		__napi_schedule(napi);
ffff8000113acc7c:	aa1303e0 	mov	x0, x19
ffff8000113acc80:	94000000 	bl	ffff8000113a5864 <__napi_schedule>
			ffff8000113acc80: R_AARCH64_CALL26	__napi_schedule
ffff8000113acc84:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113acc84: R_AARCH64_ADR_PREL_PG_HI21	.text+0xe8d8
ffff8000113acc88:	91000000 	add	x0, x0, #0x0
			ffff8000113acc88: R_AARCH64_ADD_ABS_LO12_NC	.text+0xe8d8
ffff8000113acc8c:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113acc90:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113acc90: R_AARCH64_CALL26	__local_bh_enable_ip
}
ffff8000113acc94:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113acc98:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113acc9c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113acca0:	d65f03c0 	ret
ffff8000113acca4:	aa1303e0 	mov	x0, x19
ffff8000113acca8:	97fffbea 	bl	ffff8000113abc50 <gro_normal_list.part.134>
ffff8000113accac:	17fffff4 	b	ffff8000113acc7c <busy_poll_stop+0xcc>
#include <linux/tracepoint.h>
#include <linux/ftrace.h>

#define NO_DEV "(no_device)"

TRACE_EVENT(napi_poll,
ffff8000113accb0:	90000001 	adrp	x1, 0 <cpu_number>
			ffff8000113accb0: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113accb4:	d538d082 	mrs	x2, tpidr_el1
ffff8000113accb8:	91000021 	add	x1, x1, #0x0
			ffff8000113accb8: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113accbc:	b8616841 	ldr	w1, [x2,x1]
	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
ffff8000113accc0:	90000002 	adrp	x2, 0 <__cpu_online_mask>
			ffff8000113accc0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113accc4:	1ad40c34 	sdiv	w20, w1, w20
ffff8000113accc8:	937d7e94 	sbfiz	x20, x20, #3, #32
ffff8000113acccc:	91000042 	add	x2, x2, #0x0
			ffff8000113acccc: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113accd0:	f8626a82 	ldr	x2, [x20,x2]
ffff8000113accd4:	9ac12441 	lsr	x1, x2, x1
ffff8000113accd8:	3607fb21 	tbz	w1, #0, ffff8000113acc3c <busy_poll_stop+0x8c>
ffff8000113accdc:	f9401014 	ldr	x20, [x0,#32]
ffff8000113acce0:	b4000134 	cbz	x20, ffff8000113acd04 <busy_poll_stop+0x154>
ffff8000113acce4:	f9400284 	ldr	x4, [x20]
ffff8000113acce8:	f9400680 	ldr	x0, [x20,#8]
ffff8000113accec:	aa1303e1 	mov	x1, x19
ffff8000113accf0:	2a1503e2 	mov	w2, w21
ffff8000113accf4:	52800103 	mov	w3, #0x8                   	// #8
ffff8000113accf8:	d63f0080 	blr	x4
ffff8000113accfc:	f8418e84 	ldr	x4, [x20,#24]!
ffff8000113acd00:	b5ffff44 	cbnz	x4, ffff8000113acce8 <busy_poll_stop+0x138>
ffff8000113acd04:	17ffffce 	b	ffff8000113acc3c <busy_poll_stop+0x8c>

ffff8000113acd08 <napi_busy_loop>:
{
ffff8000113acd08:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113acd0c:	910003fd 	mov	x29, sp
ffff8000113acd10:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113acd14:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113acd18:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113acd1c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113acd20:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113acd24:	2a0003f6 	mov	w22, w0
ffff8000113acd28:	aa0103f4 	mov	x20, x1
ffff8000113acd2c:	aa1e03e0 	mov	x0, x30
ffff8000113acd30:	aa0203f8 	mov	x24, x2
ffff8000113acd34:	94000000 	bl	0 <_mcount>
			ffff8000113acd34: R_AARCH64_CALL26	_mcount
	unsigned long start_time = loop_end ? busy_loop_current_time() : 0;
ffff8000113acd38:	b4001054 	cbz	x20, ffff8000113acf40 <napi_busy_loop+0x238>
	return sched_clock();
}

static inline u64 local_clock(void)
{
	return sched_clock();
ffff8000113acd3c:	94000000 	bl	0 <sched_clock>
			ffff8000113acd3c: R_AARCH64_CALL26	sched_clock
	return (unsigned long)(local_clock() >> 10);
ffff8000113acd40:	d34afc19 	lsr	x25, x0, #10
ffff8000113acd44:	9000001c 	adrp	x28, ffff80001139e37c <__my_cpu_offset>
			ffff8000113acd44: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113acd48:	9100039c 	add	x28, x28, #0x0
			ffff8000113acd48: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff8000113acd4c:	9000001a 	adrp	x26, 0 <cpu_number>
			ffff8000113acd4c: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113acd50:	8b360f9c 	add	x28, x28, w22, uxtb #3
ffff8000113acd54:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113acd54: R_AARCH64_ADR_PREL_PG_HI21	.text+0xea9c
ffff8000113acd58:	9100035a 	add	x26, x26, #0x0
			ffff8000113acd58: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113acd5c:	f9003bbc 	str	x28, [x29,#112]
	void *have_poll_lock = NULL;
ffff8000113acd60:	f9003fbf 	str	xzr, [x29,#120]
ffff8000113acd64:	910002f7 	add	x23, x23, #0x0
			ffff8000113acd64: R_AARCH64_ADD_ABS_LO12_NC	.text+0xea9c
		int owner = smp_processor_id();
ffff8000113acd68:	f90037ba 	str	x26, [x29,#104]
ffff8000113acd6c:	f9403ba5 	ldr	x5, [x29,#112]
ffff8000113acd70:	f94000a4 	ldr	x4, [x5]
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113acd74:	b4000ea4 	cbz	x4, ffff8000113acf48 <napi_busy_loop+0x240>
ffff8000113acd78:	d105c09b 	sub	x27, x4, #0x170
ffff8000113acd7c:	b40000db 	cbz	x27, ffff8000113acd94 <napi_busy_loop+0x8c>
		if (napi->napi_id == napi_id)
ffff8000113acd80:	b9418360 	ldr	w0, [x27,#384]
ffff8000113acd84:	6b0002df 	cmp	w22, w0
ffff8000113acd88:	54000140 	b.eq	ffff8000113acdb0 <napi_busy_loop+0xa8>
ffff8000113acd8c:	f940bb64 	ldr	x4, [x27,#368]
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113acd90:	b5ffff44 	cbnz	x4, ffff8000113acd78 <napi_busy_loop+0x70>
}
ffff8000113acd94:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113acd98:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113acd9c:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113acda0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113acda4:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113acda8:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113acdac:	d65f03c0 	ret
ffff8000113acdb0:	90000000 	adrp	x0, 0 <__cpu_online_mask>
			ffff8000113acdb0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
ffff8000113acdb4:	91000000 	add	x0, x0, #0x0
			ffff8000113acdb4: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
	napi_poll = NULL;
ffff8000113acdb8:	d2800015 	mov	x21, #0x0                   	// #0
ffff8000113acdbc:	f90033a0 	str	x0, [x29,#96]
ffff8000113acdc0:	14000023 	b	ffff8000113ace4c <napi_busy_loop+0x144>
		work = napi_poll(napi, BUSY_POLL_BUDGET);
ffff8000113acdc4:	52800101 	mov	w1, #0x8                   	// #8
ffff8000113acdc8:	aa1b03e0 	mov	x0, x27
ffff8000113acdcc:	d63f02a0 	blr	x21
ffff8000113acdd0:	2a0003f3 	mov	w19, w0
ffff8000113acdd4:	90000000 	adrp	x0, 0 <__tracepoint_napi_poll>
			ffff8000113acdd4: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_poll
ffff8000113acdd8:	91000000 	add	x0, x0, #0x0
			ffff8000113acdd8: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_poll
ffff8000113acddc:	b9400801 	ldr	w1, [x0,#8]
ffff8000113acde0:	6b1f003f 	cmp	w1, wzr
ffff8000113acde4:	54000d2c 	b.gt	ffff8000113acf88 <napi_busy_loop+0x280>
	if (!napi->rx_count)
ffff8000113acde8:	b9411b60 	ldr	w0, [x27,#280]
ffff8000113acdec:	350009a0 	cbnz	w0, ffff8000113acf20 <napi_busy_loop+0x218>
		if (work > 0)
ffff8000113acdf0:	6b1f027f 	cmp	w19, wzr
ffff8000113acdf4:	5400012d 	b.le	ffff8000113ace18 <napi_busy_loop+0x110>
ffff8000113acdf8:	f9401f60 	ldr	x0, [x27,#56]
ffff8000113acdfc:	d538d081 	mrs	x1, tpidr_el1
			__NET_ADD_STATS(dev_net(napi->dev),
ffff8000113ace00:	f9427800 	ldr	x0, [x0,#1264]
ffff8000113ace04:	f940c800 	ldr	x0, [x0,#400]
ffff8000113ace08:	910b8000 	add	x0, x0, #0x2e0
ffff8000113ace0c:	f8606822 	ldr	x2, [x1,x0]
ffff8000113ace10:	8b33c053 	add	x19, x2, w19, sxtw
ffff8000113ace14:	f8206833 	str	x19, [x1,x0]
ffff8000113ace18:	aa1703e0 	mov	x0, x23
ffff8000113ace1c:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113ace20:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113ace20: R_AARCH64_CALL26	__local_bh_enable_ip
		if (!loop_end || loop_end(loop_end_arg, start_time))
ffff8000113ace24:	b4000854 	cbz	x20, ffff8000113acf2c <napi_busy_loop+0x224>
ffff8000113ace28:	aa1803e0 	mov	x0, x24
ffff8000113ace2c:	aa1903e1 	mov	x1, x25
ffff8000113ace30:	d63f0280 	blr	x20
ffff8000113ace34:	53001c00 	uxtb	w0, w0
ffff8000113ace38:	350007a0 	cbnz	w0, ffff8000113acf2c <napi_busy_loop+0x224>
ffff8000113ace3c:	d5384100 	mrs	x0, sp_el0
ffff8000113ace40:	f9400000 	ldr	x0, [x0]
		if (unlikely(need_resched())) {
ffff8000113ace44:	370808c0 	tbnz	w0, #1, ffff8000113acf5c <napi_busy_loop+0x254>

#ifndef __ASSEMBLY__

static inline void cpu_relax(void)
{
	asm volatile("yield" ::: "memory");
ffff8000113ace48:	d503203f 	yield
ffff8000113ace4c:	d5384100 	mrs	x0, sp_el0
ffff8000113ace50:	b9401801 	ldr	w1, [x0,#24]
ffff8000113ace54:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113ace58:	b9001801 	str	w1, [x0,#24]
		if (!napi_poll) {
ffff8000113ace5c:	b5fffb55 	cbnz	x21, ffff8000113acdc4 <napi_busy_loop+0xbc>
	__READ_ONCE_SIZE;
ffff8000113ace60:	f9400b60 	ldr	x0, [x27,#16]
			if (val & (NAPIF_STATE_DISABLE | NAPIF_STATE_SCHED |
ffff8000113ace64:	d28008a1 	mov	x1, #0x45                  	// #69
ffff8000113ace68:	ea01001f 	tst	x0, x1
ffff8000113ace6c:	54fffd61 	b.ne	ffff8000113ace18 <napi_busy_loop+0x110>
			if (cmpxchg(&napi->state, val,
ffff8000113ace70:	d2800821 	mov	x1, #0x41                  	// #65
ffff8000113ace74:	aa010001 	orr	x1, x0, x1
__CMPXCHG_CASE( ,  ,  mb_, 64, dmb ish,  , l, "memory", L)
ffff8000113ace78:	91004367 	add	x7, x27, #0x10
ffff8000113ace7c:	f98000f1 	prfm	pstl1strm, [x7]
ffff8000113ace80:	c85f7ce2 	ldxr	x2, [x7]
ffff8000113ace84:	ca000043 	eor	x3, x2, x0
ffff8000113ace88:	b5000083 	cbnz	x3, ffff8000113ace98 <napi_busy_loop+0x190>
ffff8000113ace8c:	c803fce1 	stlxr	w3, x1, [x7]
ffff8000113ace90:	35ffff83 	cbnz	w3, ffff8000113ace80 <napi_busy_loop+0x178>
ffff8000113ace94:	d5033bbf 	dmb	ish
ffff8000113ace98:	eb02001f 	cmp	x0, x2
ffff8000113ace9c:	54fffbe1 	b.ne	ffff8000113ace18 <napi_busy_loop+0x110>
	struct net_device *dev = napi->dev;
ffff8000113acea0:	f9401f60 	ldr	x0, [x27,#56]
	if (dev && dev->npinfo) {
ffff8000113acea4:	b4000560 	cbz	x0, ffff8000113acf50 <napi_busy_loop+0x248>
ffff8000113acea8:	f9427400 	ldr	x0, [x0,#1256]
ffff8000113aceac:	b4000520 	cbz	x0, ffff8000113acf50 <napi_busy_loop+0x248>
		while (cmpxchg(&napi->poll_owner, -1, owner) != -1)
ffff8000113aceb0:	f94037a5 	ldr	x5, [x29,#104]
ffff8000113aceb4:	d538d080 	mrs	x0, tpidr_el1
ffff8000113aceb8:	b8a56803 	ldrsw	x3, [x0,x5]
__CMPXCHG_CASE(w,  ,  mb_, 32, dmb ish,  , l, "memory", K)
ffff8000113acebc:	b2407fe1 	mov	x1, #0xffffffff            	// #4294967295
ffff8000113acec0:	9100c360 	add	x0, x27, #0x30
}

__CMPXCHG_GEN()
__CMPXCHG_GEN(_acq)
__CMPXCHG_GEN(_rel)
__CMPXCHG_GEN(_mb)
ffff8000113acec4:	2a0303e2 	mov	w2, w3
ffff8000113acec8:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113acecc:	885f7c05 	ldxr	w5, [x0]
ffff8000113aced0:	4a0100a6 	eor	w6, w5, w1
ffff8000113aced4:	35000086 	cbnz	w6, ffff8000113acee4 <napi_busy_loop+0x1dc>
ffff8000113aced8:	8806fc03 	stlxr	w6, w3, [x0]
ffff8000113acedc:	35ffff86 	cbnz	w6, ffff8000113acecc <napi_busy_loop+0x1c4>
ffff8000113acee0:	d5033bbf 	dmb	ish
ffff8000113acee4:	310004bf 	cmn	w5, #0x1
ffff8000113acee8:	54000160 	b.eq	ffff8000113acf14 <napi_busy_loop+0x20c>
ffff8000113aceec:	d503203f 	yield
ffff8000113acef0:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113acef4:	885f7c03 	ldxr	w3, [x0]
ffff8000113acef8:	4a010065 	eor	w5, w3, w1
ffff8000113acefc:	35000085 	cbnz	w5, ffff8000113acf0c <napi_busy_loop+0x204>
ffff8000113acf00:	8805fc02 	stlxr	w5, w2, [x0]
ffff8000113acf04:	35ffff85 	cbnz	w5, ffff8000113acef4 <napi_busy_loop+0x1ec>
ffff8000113acf08:	d5033bbf 	dmb	ish
ffff8000113acf0c:	3100047f 	cmn	w3, #0x1
ffff8000113acf10:	54fffee1 	b.ne	ffff8000113aceec <napi_busy_loop+0x1e4>
ffff8000113acf14:	f9003fbb 	str	x27, [x29,#120]
			napi_poll = napi->poll;
ffff8000113acf18:	f9401775 	ldr	x21, [x27,#40]
ffff8000113acf1c:	17ffffaa 	b	ffff8000113acdc4 <napi_busy_loop+0xbc>
ffff8000113acf20:	aa1b03e0 	mov	x0, x27
ffff8000113acf24:	97fffb4b 	bl	ffff8000113abc50 <gro_normal_list.part.134>
ffff8000113acf28:	17ffffb2 	b	ffff8000113acdf0 <napi_busy_loop+0xe8>
	if (napi_poll)
ffff8000113acf2c:	b4000095 	cbz	x21, ffff8000113acf3c <napi_busy_loop+0x234>
		busy_poll_stop(napi, have_poll_lock);
ffff8000113acf30:	f9403fa1 	ldr	x1, [x29,#120]
ffff8000113acf34:	aa1b03e0 	mov	x0, x27
ffff8000113acf38:	97ffff1e 	bl	ffff8000113acbb0 <busy_poll_stop>
	preempt_enable();
ffff8000113acf3c:	17ffff96 	b	ffff8000113acd94 <napi_busy_loop+0x8c>
	unsigned long start_time = loop_end ? busy_loop_current_time() : 0;
ffff8000113acf40:	aa1403f9 	mov	x25, x20
ffff8000113acf44:	17ffff80 	b	ffff8000113acd44 <napi_busy_loop+0x3c>
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff8000113acf48:	aa0403fb 	mov	x27, x4
ffff8000113acf4c:	17ffff8c 	b	ffff8000113acd7c <napi_busy_loop+0x74>
	return NULL;
ffff8000113acf50:	f9003fb5 	str	x21, [x29,#120]
			napi_poll = napi->poll;
ffff8000113acf54:	f9401775 	ldr	x21, [x27,#40]
ffff8000113acf58:	17ffff9b 	b	ffff8000113acdc4 <napi_busy_loop+0xbc>
			if (napi_poll)
ffff8000113acf5c:	b4000095 	cbz	x21, ffff8000113acf6c <napi_busy_loop+0x264>
				busy_poll_stop(napi, have_poll_lock);
ffff8000113acf60:	f9403fa1 	ldr	x1, [x29,#120]
ffff8000113acf64:	aa1b03e0 	mov	x0, x27
ffff8000113acf68:	97ffff12 	bl	ffff8000113acbb0 <busy_poll_stop>
			cond_resched();
ffff8000113acf6c:	94000000 	bl	0 <_cond_resched>
			ffff8000113acf6c: R_AARCH64_CALL26	_cond_resched
			if (loop_end(loop_end_arg, start_time))
ffff8000113acf70:	aa1803e0 	mov	x0, x24
ffff8000113acf74:	aa1903e1 	mov	x1, x25
ffff8000113acf78:	d63f0280 	blr	x20
ffff8000113acf7c:	53001c00 	uxtb	w0, w0
ffff8000113acf80:	34ffef60 	cbz	w0, ffff8000113acd6c <napi_busy_loop+0x64>
ffff8000113acf84:	17ffff84 	b	ffff8000113acd94 <napi_busy_loop+0x8c>
ffff8000113acf88:	d538d081 	mrs	x1, tpidr_el1
ffff8000113acf8c:	b87a6821 	ldr	w1, [x1,x26]
ffff8000113acf90:	f94033a7 	ldr	x7, [x29,#96]
ffff8000113acf94:	1100fc22 	add	w2, w1, #0x3f
ffff8000113acf98:	6b1f003f 	cmp	w1, wzr
ffff8000113acf9c:	1a81b042 	csel	w2, w2, w1, lt
ffff8000113acfa0:	13067c42 	asr	w2, w2, #6
ffff8000113acfa4:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113acfa8:	f8676842 	ldr	x2, [x2,x7]
ffff8000113acfac:	9ac12441 	lsr	x1, x2, x1
ffff8000113acfb0:	3607f1c1 	tbz	w1, #0, ffff8000113acde8 <napi_busy_loop+0xe0>
ffff8000113acfb4:	f940101c 	ldr	x28, [x0,#32]
ffff8000113acfb8:	b400013c 	cbz	x28, ffff8000113acfdc <napi_busy_loop+0x2d4>
ffff8000113acfbc:	f9400386 	ldr	x6, [x28]
ffff8000113acfc0:	f9400780 	ldr	x0, [x28,#8]
ffff8000113acfc4:	aa1b03e1 	mov	x1, x27
ffff8000113acfc8:	2a1303e2 	mov	w2, w19
ffff8000113acfcc:	52800103 	mov	w3, #0x8                   	// #8
ffff8000113acfd0:	d63f00c0 	blr	x6
ffff8000113acfd4:	f8418f86 	ldr	x6, [x28,#24]!
ffff8000113acfd8:	b5ffff46 	cbnz	x6, ffff8000113acfc0 <napi_busy_loop+0x2b8>
ffff8000113acfdc:	17ffff83 	b	ffff8000113acde8 <napi_busy_loop+0xe0>

ffff8000113acfe0 <net_rx_action>:
{
ffff8000113acfe0:	a9b47bfd 	stp	x29, x30, [sp,#-192]!
ffff8000113acfe4:	910003fd 	mov	x29, sp
ffff8000113acfe8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113acfec:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113acff0:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113acff4:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113acff8:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113acffc:	aa1e03e0 	mov	x0, x30
ffff8000113ad000:	94000000 	bl	0 <_mcount>
			ffff8000113ad000: R_AARCH64_CALL26	_mcount
		usecs_to_jiffies(netdev_budget_usecs);
ffff8000113ad004:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad004: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
ffff8000113ad008:	91000273 	add	x19, x19, #0x0
			ffff8000113ad008: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
{
ffff8000113ad00c:	90000000 	adrp	x0, 0 <__stack_chk_guard>
			ffff8000113ad00c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ad010:	f9400001 	ldr	x1, [x0]
			ffff8000113ad010: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113ad014:	90000019 	adrp	x25, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad014: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
	if (__builtin_constant_p(u)) {
		if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET))
			return MAX_JIFFY_OFFSET;
		return _usecs_to_jiffies(u);
	} else {
		return __usecs_to_jiffies(u);
ffff8000113ad018:	b9495e60 	ldr	w0, [x19,#2396]
ffff8000113ad01c:	91000339 	add	x25, x25, #0x0
			ffff8000113ad01c: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff8000113ad020:	d538d084 	mrs	x4, tpidr_el1
ffff8000113ad024:	f9003fb9 	str	x25, [x29,#120]
ffff8000113ad028:	f9003ba4 	str	x4, [x29,#112]
{
ffff8000113ad02c:	f9005fa1 	str	x1, [x29,#184]
ffff8000113ad030:	94000000 	bl	0 <__usecs_to_jiffies>
			ffff8000113ad030: R_AARCH64_CALL26	__usecs_to_jiffies
	unsigned long time_limit = jiffies +
ffff8000113ad034:	90000016 	adrp	x22, 0 <jiffies>
			ffff8000113ad034: R_AARCH64_ADR_PREL_PG_HI21	jiffies
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113ad038:	f9403ba4 	ldr	x4, [x29,#112]
	unsigned long time_limit = jiffies +
ffff8000113ad03c:	f94002d7 	ldr	x23, [x22]
			ffff8000113ad03c: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
	LIST_HEAD(repoll);
ffff8000113ad040:	9102a3a6 	add	x6, x29, #0xa8
	LIST_HEAD(list);
ffff8000113ad044:	910263b4 	add	x20, x29, #0x98
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113ad048:	f9403fa7 	ldr	x7, [x29,#120]
ffff8000113ad04c:	8b070084 	add	x4, x4, x7
	unsigned long time_limit = jiffies +
ffff8000113ad050:	8b170017 	add	x23, x0, x23
	LIST_HEAD(repoll);
ffff8000113ad054:	f90047a6 	str	x6, [x29,#136]
	struct softnet_data *sd = this_cpu_ptr(&softnet_data);
ffff8000113ad058:	f9003fa7 	str	x7, [x29,#120]
ffff8000113ad05c:	f90043a4 	str	x4, [x29,#128]
	int budget = netdev_budget;
ffff8000113ad060:	b9496273 	ldr	w19, [x19,#2400]
	LIST_HEAD(list);
ffff8000113ad064:	f9004fb4 	str	x20, [x29,#152]
ffff8000113ad068:	f90053b4 	str	x20, [x29,#160]
	LIST_HEAD(repoll);
ffff8000113ad06c:	f90057a6 	str	x6, [x29,#168]
ffff8000113ad070:	f9005ba6 	str	x6, [x29,#176]
	asm volatile(ALTERNATIVE(
ffff8000113ad074:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113ad078:	d50342df 	msr	daifset, #0x2
ffff8000113ad07c:	f9403ba6 	ldr	x6, [x29,#112]
ffff8000113ad080:	f9403fa4 	ldr	x4, [x29,#120]
	if (!list_empty(list)) {
ffff8000113ad084:	f94043a7 	ldr	x7, [x29,#128]
ffff8000113ad088:	f86468c0 	ldr	x0, [x6,x4]
ffff8000113ad08c:	eb0000ff 	cmp	x7, x0
ffff8000113ad090:	54000140 	b.eq	ffff8000113ad0b8 <net_rx_action+0xd8>
	struct list_head *first = list->next;
ffff8000113ad094:	f86468c2 	ldr	x2, [x6,x4]
	struct list_head *last = list->prev;
ffff8000113ad098:	f94004e1 	ldr	x1, [x7,#8]
		__list_splice(list, head, head->next);
ffff8000113ad09c:	f9404fa0 	ldr	x0, [x29,#152]
	first->prev = prev;
ffff8000113ad0a0:	f9000454 	str	x20, [x2,#8]
	prev->next = first;
ffff8000113ad0a4:	f9004fa2 	str	x2, [x29,#152]
	last->next = next;
ffff8000113ad0a8:	f9000020 	str	x0, [x1]
	next->prev = last;
ffff8000113ad0ac:	f9000401 	str	x1, [x0,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ad0b0:	f82468c7 	str	x7, [x6,x4]
	list->prev = list;
ffff8000113ad0b4:	f90004e7 	str	x7, [x7,#8]
	asm volatile(ALTERNATIVE(
ffff8000113ad0b8:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113ad0bc:	d50342ff 	msr	daifclr, #0x2
ffff8000113ad0c0:	90000000 	adrp	x0, 0 <__cpu_online_mask>
			ffff8000113ad0c0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
		int owner = smp_processor_id();
ffff8000113ad0c4:	90000015 	adrp	x21, 0 <cpu_number>
			ffff8000113ad0c4: R_AARCH64_ADR_PREL_PG_HI21	cpu_number
ffff8000113ad0c8:	91000000 	add	x0, x0, #0x0
			ffff8000113ad0c8: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ad0cc:	910002b5 	add	x21, x21, #0x0
			ffff8000113ad0cc: R_AARCH64_ADD_ABS_LO12_NC	cpu_number
ffff8000113ad0d0:	f90033a0 	str	x0, [x29,#96]
ffff8000113ad0d4:	f90037b5 	str	x21, [x29,#104]
	__READ_ONCE_SIZE;
ffff8000113ad0d8:	f9404fa0 	ldr	x0, [x29,#152]
		if (list_empty(&list)) {
ffff8000113ad0dc:	eb00029f 	cmp	x20, x0
ffff8000113ad0e0:	540014a0 	b.eq	ffff8000113ad374 <net_rx_action+0x394>
		n = list_first_entry(&list, struct napi_struct, poll_list);
ffff8000113ad0e4:	f940029c 	ldr	x28, [x20]
	if (!__list_del_entry_valid(entry))
ffff8000113ad0e8:	aa1c03e0 	mov	x0, x28
ffff8000113ad0ec:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ad0ec: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ad0f0:	53001c00 	uxtb	w0, w0
ffff8000113ad0f4:	340000a0 	cbz	w0, ffff8000113ad108 <net_rx_action+0x128>
	__list_del(entry->prev, entry->next);
ffff8000113ad0f8:	f9400780 	ldr	x0, [x28,#8]
ffff8000113ad0fc:	f9400381 	ldr	x1, [x28]
	next->prev = prev;
ffff8000113ad100:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ad104:	f9000001 	str	x1, [x0]
	struct net_device *dev = napi->dev;
ffff8000113ad108:	f9401f80 	ldr	x0, [x28,#56]
ffff8000113ad10c:	f900039c 	str	x28, [x28]
	list->prev = list;
ffff8000113ad110:	f900079c 	str	x28, [x28,#8]
	if (dev && dev->npinfo) {
ffff8000113ad114:	b4001440 	cbz	x0, ffff8000113ad39c <net_rx_action+0x3bc>
ffff8000113ad118:	f9427409 	ldr	x9, [x0,#1256]
ffff8000113ad11c:	b40013c9 	cbz	x9, ffff8000113ad394 <net_rx_action+0x3b4>
ffff8000113ad120:	d538d080 	mrs	x0, tpidr_el1
		while (cmpxchg(&napi->poll_owner, -1, owner) != -1)
ffff8000113ad124:	b8b56800 	ldrsw	x0, [x0,x21]
ffff8000113ad128:	9100c382 	add	x2, x28, #0x30
ffff8000113ad12c:	2a0003e3 	mov	w3, w0
ffff8000113ad130:	b2407fe4 	mov	x4, #0xffffffff            	// #4294967295
ffff8000113ad134:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113ad138:	885f7c41 	ldxr	w1, [x2]
ffff8000113ad13c:	4a040025 	eor	w5, w1, w4
ffff8000113ad140:	35000085 	cbnz	w5, ffff8000113ad150 <net_rx_action+0x170>
ffff8000113ad144:	8805fc40 	stlxr	w5, w0, [x2]
ffff8000113ad148:	35ffff85 	cbnz	w5, ffff8000113ad138 <net_rx_action+0x158>
ffff8000113ad14c:	d5033bbf 	dmb	ish
ffff8000113ad150:	3100043f 	cmn	w1, #0x1
ffff8000113ad154:	54000160 	b.eq	ffff8000113ad180 <net_rx_action+0x1a0>
ffff8000113ad158:	d503203f 	yield
ffff8000113ad15c:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113ad160:	885f7c45 	ldxr	w5, [x2]
ffff8000113ad164:	4a0400a0 	eor	w0, w5, w4
ffff8000113ad168:	35000080 	cbnz	w0, ffff8000113ad178 <net_rx_action+0x198>
ffff8000113ad16c:	8800fc43 	stlxr	w0, w3, [x2]
ffff8000113ad170:	35ffff80 	cbnz	w0, ffff8000113ad160 <net_rx_action+0x180>
ffff8000113ad174:	d5033bbf 	dmb	ish
ffff8000113ad178:	310004bf 	cmn	w5, #0x1
ffff8000113ad17c:	54fffee1 	b.ne	ffff8000113ad158 <net_rx_action+0x178>
		return napi;
ffff8000113ad180:	aa1c03f9 	mov	x25, x28
ffff8000113ad184:	f9400b80 	ldr	x0, [x28,#16]
	weight = n->weight;
ffff8000113ad188:	b9401b9b 	ldr	w27, [x28,#24]
	work = 0;
ffff8000113ad18c:	5280001a 	mov	w26, #0x0                   	// #0
	if (test_bit(NAPI_STATE_SCHED, &n->state)) {
ffff8000113ad190:	37000b00 	tbnz	w0, #0, ffff8000113ad2f0 <net_rx_action+0x310>
	WARN_ON_ONCE(work > weight);
ffff8000113ad194:	6b1a037f 	cmp	w27, w26
ffff8000113ad198:	540010cb 	b.lt	ffff8000113ad3b0 <net_rx_action+0x3d0>
	if (likely(work < weight))
ffff8000113ad19c:	6b1a037f 	cmp	w27, w26
ffff8000113ad1a0:	540010ed 	b.le	ffff8000113ad3bc <net_rx_action+0x3dc>
	if (napi)
ffff8000113ad1a4:	b4000099 	cbz	x25, ffff8000113ad1b4 <net_rx_action+0x1d4>
		smp_store_release(&napi->poll_owner, -1);
ffff8000113ad1a8:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113ad1ac:	9100c339 	add	x25, x25, #0x30
ffff8000113ad1b0:	889fff20 	stlr	w0, [x25]
		budget -= napi_poll(n, &repoll);
ffff8000113ad1b4:	4b1a0273 	sub	w19, w19, w26
		if (unlikely(budget <= 0 ||
ffff8000113ad1b8:	6b1f027f 	cmp	w19, wzr
ffff8000113ad1bc:	5400008d 	b.le	ffff8000113ad1cc <net_rx_action+0x1ec>
ffff8000113ad1c0:	f94002c0 	ldr	x0, [x22]
			ffff8000113ad1c0: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113ad1c4:	cb170000 	sub	x0, x0, x23
ffff8000113ad1c8:	b7fff880 	tbnz	x0, #63, ffff8000113ad0d8 <net_rx_action+0xf8>
			sd->time_squeeze++;
ffff8000113ad1cc:	f94043a4 	ldr	x4, [x29,#128]
ffff8000113ad1d0:	b9402c80 	ldr	w0, [x4,#44]
ffff8000113ad1d4:	11000400 	add	w0, w0, #0x1
ffff8000113ad1d8:	b9002c80 	str	w0, [x4,#44]
	asm volatile(ALTERNATIVE(
ffff8000113ad1dc:	d2800c00 	mov	x0, #0x60                  	// #96
ffff8000113ad1e0:	d50342df 	msr	daifset, #0x2
	__READ_ONCE_SIZE;
ffff8000113ad1e4:	f9403ba7 	ldr	x7, [x29,#112]
ffff8000113ad1e8:	f9403fa6 	ldr	x6, [x29,#120]
	if (!list_empty(list)) {
ffff8000113ad1ec:	f94043a4 	ldr	x4, [x29,#128]
ffff8000113ad1f0:	f86668e0 	ldr	x0, [x7,x6]
ffff8000113ad1f4:	eb00009f 	cmp	x4, x0
ffff8000113ad1f8:	54000140 	b.eq	ffff8000113ad220 <net_rx_action+0x240>
		__list_splice(list, head->prev, head);
ffff8000113ad1fc:	f94053a1 	ldr	x1, [x29,#160]
	struct list_head *first = list->next;
ffff8000113ad200:	f86668e2 	ldr	x2, [x7,x6]
	struct list_head *last = list->prev;
ffff8000113ad204:	f9400480 	ldr	x0, [x4,#8]
	first->prev = prev;
ffff8000113ad208:	f9000441 	str	x1, [x2,#8]
	prev->next = first;
ffff8000113ad20c:	f9000022 	str	x2, [x1]
	last->next = next;
ffff8000113ad210:	f9000014 	str	x20, [x0]
	next->prev = last;
ffff8000113ad214:	f90053a0 	str	x0, [x29,#160]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ad218:	f82668e4 	str	x4, [x7,x6]
	list->prev = list;
ffff8000113ad21c:	f9000484 	str	x4, [x4,#8]
	__READ_ONCE_SIZE;
ffff8000113ad220:	f94057a0 	ldr	x0, [x29,#168]
	if (!list_empty(list))
ffff8000113ad224:	f94047a6 	ldr	x6, [x29,#136]
ffff8000113ad228:	eb0000df 	cmp	x6, x0
ffff8000113ad22c:	54000100 	b.eq	ffff8000113ad24c <net_rx_action+0x26c>
		__list_splice(list, head->prev, head);
ffff8000113ad230:	f94053a1 	ldr	x1, [x29,#160]
	struct list_head *first = list->next;
ffff8000113ad234:	f94057a2 	ldr	x2, [x29,#168]
	struct list_head *last = list->prev;
ffff8000113ad238:	f9405ba0 	ldr	x0, [x29,#176]
	first->prev = prev;
ffff8000113ad23c:	f9000441 	str	x1, [x2,#8]
	prev->next = first;
ffff8000113ad240:	f9000022 	str	x2, [x1]
	last->next = next;
ffff8000113ad244:	f9000014 	str	x20, [x0]
	next->prev = last;
ffff8000113ad248:	f90053a0 	str	x0, [x29,#160]
ffff8000113ad24c:	f9404fa0 	ldr	x0, [x29,#152]
	if (!list_empty(list))
ffff8000113ad250:	eb00029f 	cmp	x20, x0
ffff8000113ad254:	54000160 	b.eq	ffff8000113ad280 <net_rx_action+0x2a0>
	struct list_head *first = list->next;
ffff8000113ad258:	f9404fa2 	ldr	x2, [x29,#152]
		__list_splice(list, head, head->next);
ffff8000113ad25c:	f9403ba4 	ldr	x4, [x29,#112]
ffff8000113ad260:	f9403fa7 	ldr	x7, [x29,#120]
	first->prev = prev;
ffff8000113ad264:	f94043a6 	ldr	x6, [x29,#128]
		__list_splice(list, head, head->next);
ffff8000113ad268:	f8676880 	ldr	x0, [x4,x7]
	struct list_head *last = list->prev;
ffff8000113ad26c:	f94053a1 	ldr	x1, [x29,#160]
	first->prev = prev;
ffff8000113ad270:	f9000446 	str	x6, [x2,#8]
	prev->next = first;
ffff8000113ad274:	f8276882 	str	x2, [x4,x7]
	last->next = next;
ffff8000113ad278:	f9000020 	str	x0, [x1]
	next->prev = last;
ffff8000113ad27c:	f9000401 	str	x1, [x0,#8]
ffff8000113ad280:	f9403ba4 	ldr	x4, [x29,#112]
ffff8000113ad284:	f9403fa7 	ldr	x7, [x29,#120]
	if (!list_empty(&sd->poll_list))
ffff8000113ad288:	f94043a6 	ldr	x6, [x29,#128]
ffff8000113ad28c:	f8676880 	ldr	x0, [x4,x7]
ffff8000113ad290:	eb0000df 	cmp	x6, x0
ffff8000113ad294:	54000060 	b.eq	ffff8000113ad2a0 <net_rx_action+0x2c0>
		__raise_softirq_irqoff(NET_RX_SOFTIRQ);
ffff8000113ad298:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113ad29c:	94000000 	bl	0 <__raise_softirq_irqoff>
			ffff8000113ad29c: R_AARCH64_CALL26	__raise_softirq_irqoff
	struct softnet_data *remsd = sd->rps_ipi_list;
ffff8000113ad2a0:	f94043a7 	ldr	x7, [x29,#128]
ffff8000113ad2a4:	f9401ce0 	ldr	x0, [x7,#56]
	if (remsd) {
ffff8000113ad2a8:	b40007e0 	cbz	x0, ffff8000113ad3a4 <net_rx_action+0x3c4>
		sd->rps_ipi_list = NULL;
ffff8000113ad2ac:	f9001cff 	str	xzr, [x7,#56]
	asm volatile(ALTERNATIVE(
ffff8000113ad2b0:	d2801c01 	mov	x1, #0xe0                  	// #224
ffff8000113ad2b4:	d50342ff 	msr	daifclr, #0x2
		net_rps_send_ipi(remsd);
ffff8000113ad2b8:	97ffd05c 	bl	ffff8000113a1428 <net_rps_send_ipi>
	__kfree_skb_flush();
ffff8000113ad2bc:	94000000 	bl	0 <__kfree_skb_flush>
			ffff8000113ad2bc: R_AARCH64_CALL26	__kfree_skb_flush
}
ffff8000113ad2c0:	90000002 	adrp	x2, 0 <__stack_chk_guard>
			ffff8000113ad2c0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ad2c4:	f9405fa1 	ldr	x1, [x29,#184]
ffff8000113ad2c8:	f9400040 	ldr	x0, [x2]
			ffff8000113ad2c8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ad2cc:	eb00003f 	cmp	x1, x0
ffff8000113ad2d0:	54000741 	b.ne	ffff8000113ad3b8 <net_rx_action+0x3d8>
ffff8000113ad2d4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ad2d8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ad2dc:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ad2e0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113ad2e4:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113ad2e8:	a8cc7bfd 	ldp	x29, x30, [sp],#192
ffff8000113ad2ec:	d65f03c0 	ret
		work = n->poll(n, weight);
ffff8000113ad2f0:	f9401782 	ldr	x2, [x28,#40]
ffff8000113ad2f4:	2a1b03e1 	mov	w1, w27
ffff8000113ad2f8:	aa1c03e0 	mov	x0, x28
ffff8000113ad2fc:	d63f0040 	blr	x2
ffff8000113ad300:	2a0003fa 	mov	w26, w0
ffff8000113ad304:	90000000 	adrp	x0, 0 <__tracepoint_napi_poll>
			ffff8000113ad304: R_AARCH64_ADR_PREL_PG_HI21	__tracepoint_napi_poll
ffff8000113ad308:	91000000 	add	x0, x0, #0x0
			ffff8000113ad308: R_AARCH64_ADD_ABS_LO12_NC	__tracepoint_napi_poll
ffff8000113ad30c:	b9400801 	ldr	w1, [x0,#8]
ffff8000113ad310:	6b1f003f 	cmp	w1, wzr
ffff8000113ad314:	54fff40d 	b.le	ffff8000113ad194 <net_rx_action+0x1b4>
ffff8000113ad318:	f94037a4 	ldr	x4, [x29,#104]
ffff8000113ad31c:	d538d081 	mrs	x1, tpidr_el1
ffff8000113ad320:	b8646821 	ldr	w1, [x1,x4]
ffff8000113ad324:	f94033a6 	ldr	x6, [x29,#96]
ffff8000113ad328:	1100fc22 	add	w2, w1, #0x3f
ffff8000113ad32c:	6b1f003f 	cmp	w1, wzr
ffff8000113ad330:	1a81b042 	csel	w2, w2, w1, lt
ffff8000113ad334:	13067c42 	asr	w2, w2, #6
ffff8000113ad338:	937d7c42 	sbfiz	x2, x2, #3, #32
ffff8000113ad33c:	f8666842 	ldr	x2, [x2,x6]
ffff8000113ad340:	9ac12441 	lsr	x1, x2, x1
ffff8000113ad344:	3607f281 	tbz	w1, #0, ffff8000113ad194 <net_rx_action+0x1b4>
ffff8000113ad348:	f9401018 	ldr	x24, [x0,#32]
ffff8000113ad34c:	b4000138 	cbz	x24, ffff8000113ad370 <net_rx_action+0x390>
ffff8000113ad350:	f9400308 	ldr	x8, [x24]
ffff8000113ad354:	f9400700 	ldr	x0, [x24,#8]
ffff8000113ad358:	aa1c03e1 	mov	x1, x28
ffff8000113ad35c:	2a1a03e2 	mov	w2, w26
ffff8000113ad360:	2a1b03e3 	mov	w3, w27
ffff8000113ad364:	d63f0100 	blr	x8
ffff8000113ad368:	f8418f08 	ldr	x8, [x24,#24]!
ffff8000113ad36c:	b5ffff48 	cbnz	x8, ffff8000113ad354 <net_rx_action+0x374>
ffff8000113ad370:	17ffff89 	b	ffff8000113ad194 <net_rx_action+0x1b4>
			if (!sd_has_rps_ipi_waiting(sd) && list_empty(&repoll))
ffff8000113ad374:	f94043a4 	ldr	x4, [x29,#128]
ffff8000113ad378:	f9401c80 	ldr	x0, [x4,#56]
ffff8000113ad37c:	b5fff300 	cbnz	x0, ffff8000113ad1dc <net_rx_action+0x1fc>
ffff8000113ad380:	f94057a0 	ldr	x0, [x29,#168]
ffff8000113ad384:	f94047a6 	ldr	x6, [x29,#136]
ffff8000113ad388:	eb0000df 	cmp	x6, x0
ffff8000113ad38c:	54fff281 	b.ne	ffff8000113ad1dc <net_rx_action+0x1fc>
ffff8000113ad390:	17ffffcb 	b	ffff8000113ad2bc <net_rx_action+0x2dc>
	return NULL;
ffff8000113ad394:	aa0903f9 	mov	x25, x9
ffff8000113ad398:	17ffff7b 	b	ffff8000113ad184 <net_rx_action+0x1a4>
ffff8000113ad39c:	aa0003f9 	mov	x25, x0
ffff8000113ad3a0:	17ffff79 	b	ffff8000113ad184 <net_rx_action+0x1a4>
ffff8000113ad3a4:	d2801c00 	mov	x0, #0xe0                  	// #224
ffff8000113ad3a8:	d50342ff 	msr	daifclr, #0x2
ffff8000113ad3ac:	17ffffc4 	b	ffff8000113ad2bc <net_rx_action+0x2dc>
	WARN_ON_ONCE(work > weight);
ffff8000113ad3b0:	d4210000 	brk	#0x800
ffff8000113ad3b4:	17ffff7a 	b	ffff8000113ad19c <net_rx_action+0x1bc>
}
ffff8000113ad3b8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ad3b8: R_AARCH64_CALL26	__stack_chk_fail
ffff8000113ad3bc:	f9400b81 	ldr	x1, [x28,#16]
ffff8000113ad3c0:	927e0021 	and	x1, x1, #0x4
	if (unlikely(napi_disable_pending(n))) {
ffff8000113ad3c4:	b5000321 	cbnz	x1, ffff8000113ad428 <net_rx_action+0x448>
	if (n->gro_bitmask) {
ffff8000113ad3c8:	f9401380 	ldr	x0, [x28,#32]
ffff8000113ad3cc:	b4000060 	cbz	x0, ffff8000113ad3d8 <net_rx_action+0x3f8>
		napi_gro_flush(n, HZ >= 1000);
ffff8000113ad3d0:	aa1c03e0 	mov	x0, x28
ffff8000113ad3d4:	94000000 	bl	ffff8000113ac90c <napi_gro_flush>
			ffff8000113ad3d4: R_AARCH64_CALL26	napi_gro_flush
	if (!napi->rx_count)
ffff8000113ad3d8:	b9411b80 	ldr	w0, [x28,#280]
ffff8000113ad3dc:	34000060 	cbz	w0, ffff8000113ad3e8 <net_rx_action+0x408>
ffff8000113ad3e0:	aa1c03e0 	mov	x0, x28
ffff8000113ad3e4:	97fffa1b 	bl	ffff8000113abc50 <gro_normal_list.part.134>
ffff8000113ad3e8:	f9400380 	ldr	x0, [x28]
	if (unlikely(!list_empty(&n->poll_list))) {
ffff8000113ad3ec:	eb00039f 	cmp	x28, x0
ffff8000113ad3f0:	54000241 	b.ne	ffff8000113ad438 <net_rx_action+0x458>
	__list_add(new, head->prev, head);
ffff8000113ad3f4:	f9405bbb 	ldr	x27, [x29,#176]
	if (!__list_add_valid(new, prev, next))
ffff8000113ad3f8:	aa1c03e0 	mov	x0, x28
ffff8000113ad3fc:	aa1b03e1 	mov	x1, x27
ffff8000113ad400:	9102a3a2 	add	x2, x29, #0xa8
ffff8000113ad404:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ad404: R_AARCH64_CALL26	__list_add_valid
ffff8000113ad408:	53001c00 	uxtb	w0, w0
ffff8000113ad40c:	34ffecc0 	cbz	w0, ffff8000113ad1a4 <net_rx_action+0x1c4>
	next->prev = new;
ffff8000113ad410:	f9005bbc 	str	x28, [x29,#176]
	new->next = next;
ffff8000113ad414:	9102a3a0 	add	x0, x29, #0xa8
ffff8000113ad418:	f9000380 	str	x0, [x28]
	new->prev = prev;
ffff8000113ad41c:	f900079b 	str	x27, [x28,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ad420:	f900037c 	str	x28, [x27]
ffff8000113ad424:	17ffff60 	b	ffff8000113ad1a4 <net_rx_action+0x1c4>
	return napi_complete_done(n, 0);
ffff8000113ad428:	aa1c03e0 	mov	x0, x28
ffff8000113ad42c:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113ad430:	94000000 	bl	ffff8000113aca6c <napi_complete_done>
			ffff8000113ad430: R_AARCH64_CALL26	napi_complete_done
ffff8000113ad434:	17ffff5c 	b	ffff8000113ad1a4 <net_rx_action+0x1c4>
		pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
ffff8000113ad438:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad438: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113ad43c:	91000000 	add	x0, x0, #0x0
			ffff8000113ad43c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113ad440:	39405801 	ldrb	w1, [x0,#22]
ffff8000113ad444:	35ffeb01 	cbnz	w1, ffff8000113ad1a4 <net_rx_action+0x1c4>
ffff8000113ad448:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113ad44c:	f9401f81 	ldr	x1, [x28,#56]
ffff8000113ad450:	39005802 	strb	w2, [x0,#22]
ffff8000113ad454:	b5000061 	cbnz	x1, ffff8000113ad460 <net_rx_action+0x480>
ffff8000113ad458:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad458: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x720
ffff8000113ad45c:	91000021 	add	x1, x1, #0x0
			ffff8000113ad45c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x720
ffff8000113ad460:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad460: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x728
ffff8000113ad464:	91000000 	add	x0, x0, #0x0
			ffff8000113ad464: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x728
ffff8000113ad468:	94000000 	bl	0 <printk>
			ffff8000113ad468: R_AARCH64_CALL26	printk
ffff8000113ad46c:	17ffff4e 	b	ffff8000113ad1a4 <net_rx_action+0x1c4>

ffff8000113ad470 <netdev_adjacent_rename_links>:
{
ffff8000113ad470:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113ad474:	910003fd 	mov	x29, sp
ffff8000113ad478:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ad47c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ad480:	f9001bf7 	str	x23, [sp,#48]
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113ad484:	aa0003f7 	mov	x23, x0
{
ffff8000113ad488:	aa0003f5 	mov	x21, x0
ffff8000113ad48c:	aa1e03e0 	mov	x0, x30
ffff8000113ad490:	aa0103f6 	mov	x22, x1
ffff8000113ad494:	94000000 	bl	0 <_mcount>
			ffff8000113ad494: R_AARCH64_CALL26	_mcount
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113ad498:	f84a8ef3 	ldr	x19, [x23,#168]!
ffff8000113ad49c:	f9427ab4 	ldr	x20, [x21,#1264]
ffff8000113ad4a0:	eb1302ff 	cmp	x23, x19
ffff8000113ad4a4:	d1006273 	sub	x19, x19, #0x18
ffff8000113ad4a8:	54000120 	b.eq	ffff8000113ad4cc <netdev_adjacent_rename_links+0x5c>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113ad4ac:	f9400260 	ldr	x0, [x19]
ffff8000113ad4b0:	f9427801 	ldr	x1, [x0,#1264]
ffff8000113ad4b4:	eb01029f 	cmp	x20, x1
ffff8000113ad4b8:	540002e0 	b.eq	ffff8000113ad514 <netdev_adjacent_rename_links+0xa4>
	list_for_each_entry(iter, &dev->adj_list.upper, list) {
ffff8000113ad4bc:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113ad4c0:	eb1302ff 	cmp	x23, x19
ffff8000113ad4c4:	d1006273 	sub	x19, x19, #0x18
ffff8000113ad4c8:	54ffff21 	b.ne	ffff8000113ad4ac <netdev_adjacent_rename_links+0x3c>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113ad4cc:	aa1503f7 	mov	x23, x21
ffff8000113ad4d0:	f84b8ef3 	ldr	x19, [x23,#184]!
ffff8000113ad4d4:	eb1302ff 	cmp	x23, x19
ffff8000113ad4d8:	d1006273 	sub	x19, x19, #0x18
ffff8000113ad4dc:	54000120 	b.eq	ffff8000113ad500 <netdev_adjacent_rename_links+0x90>
		if (!net_eq(net, dev_net(iter->dev)))
ffff8000113ad4e0:	f9400260 	ldr	x0, [x19]
ffff8000113ad4e4:	f9427803 	ldr	x3, [x0,#1264]
ffff8000113ad4e8:	eb03029f 	cmp	x20, x3
ffff8000113ad4ec:	54000240 	b.eq	ffff8000113ad534 <netdev_adjacent_rename_links+0xc4>
	list_for_each_entry(iter, &dev->adj_list.lower, list) {
ffff8000113ad4f0:	f9400e73 	ldr	x19, [x19,#24]
ffff8000113ad4f4:	eb1302ff 	cmp	x23, x19
ffff8000113ad4f8:	d1006273 	sub	x19, x19, #0x18
ffff8000113ad4fc:	54ffff21 	b.ne	ffff8000113ad4e0 <netdev_adjacent_rename_links+0x70>
}
ffff8000113ad500:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ad504:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ad508:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113ad50c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113ad510:	d65f03c0 	ret
		netdev_adjacent_sysfs_del(iter->dev, oldname,
ffff8000113ad514:	9102e002 	add	x2, x0, #0xb8
ffff8000113ad518:	aa1603e1 	mov	x1, x22
ffff8000113ad51c:	97ffcea0 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
					  &iter->dev->adj_list.lower);
ffff8000113ad520:	f9400260 	ldr	x0, [x19]
		netdev_adjacent_sysfs_add(iter->dev, dev,
ffff8000113ad524:	aa1503e1 	mov	x1, x21
ffff8000113ad528:	9102e002 	add	x2, x0, #0xb8
ffff8000113ad52c:	97ffce77 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
ffff8000113ad530:	17ffffe3 	b	ffff8000113ad4bc <netdev_adjacent_rename_links+0x4c>
		netdev_adjacent_sysfs_del(iter->dev, oldname,
ffff8000113ad534:	9102a002 	add	x2, x0, #0xa8
ffff8000113ad538:	aa1603e1 	mov	x1, x22
ffff8000113ad53c:	97ffce98 	bl	ffff8000113a0f9c <netdev_adjacent_sysfs_del>
					  &iter->dev->adj_list.upper);
ffff8000113ad540:	f9400260 	ldr	x0, [x19]
		netdev_adjacent_sysfs_add(iter->dev, dev,
ffff8000113ad544:	aa1503e1 	mov	x1, x21
ffff8000113ad548:	9102a002 	add	x2, x0, #0xa8
ffff8000113ad54c:	97ffce6f 	bl	ffff8000113a0f08 <netdev_adjacent_sysfs_add>
ffff8000113ad550:	17ffffe8 	b	ffff8000113ad4f0 <netdev_adjacent_rename_links+0x80>

ffff8000113ad554 <dev_change_name>:
{
ffff8000113ad554:	a9b57bfd 	stp	x29, x30, [sp,#-176]!
ffff8000113ad558:	910003fd 	mov	x29, sp
ffff8000113ad55c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ad560:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ad564:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ad568:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ad56c:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113ad570:	aa0003f4 	mov	x20, x0
ffff8000113ad574:	aa1e03e0 	mov	x0, x30
ffff8000113ad578:	aa0103fc 	mov	x28, x1
ffff8000113ad57c:	aa1e03f9 	mov	x25, x30
ffff8000113ad580:	94000000 	bl	0 <_mcount>
			ffff8000113ad580: R_AARCH64_CALL26	_mcount
ffff8000113ad584:	90000001 	adrp	x1, 0 <__stack_chk_guard>
			ffff8000113ad584: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ad588:	f9400020 	ldr	x0, [x1]
			ffff8000113ad588: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ad58c:	f90057a0 	str	x0, [x29,#168]
	ASSERT_RTNL();
ffff8000113ad590:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113ad590: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113ad594:	340016e0 	cbz	w0, ffff8000113ad870 <dev_change_name+0x31c>
ffff8000113ad598:	f9427a83 	ldr	x3, [x20,#1264]
ffff8000113ad59c:	f9003ba3 	str	x3, [x29,#112]
	BUG_ON(!dev_net(dev));
ffff8000113ad5a0:	b4001663 	cbz	x3, ffff8000113ad86c <dev_change_name+0x318>
	if (dev->flags & IFF_UP &&
ffff8000113ad5a4:	b9422a80 	ldr	w0, [x20,#552]
ffff8000113ad5a8:	36000200 	tbz	w0, #0, ffff8000113ad5e8 <dev_change_name+0x94>
	    likely(!(dev->priv_flags & IFF_LIVE_RENAME_OK)))
ffff8000113ad5ac:	b9422e81 	ldr	w1, [x20,#556]
		return -EBUSY;
ffff8000113ad5b0:	128001e0 	mov	w0, #0xfffffff0            	// #-16
	if (dev->flags & IFF_UP &&
ffff8000113ad5b4:	37f001a1 	tbnz	w1, #30, ffff8000113ad5e8 <dev_change_name+0x94>
}
ffff8000113ad5b8:	90000003 	adrp	x3, 0 <__stack_chk_guard>
			ffff8000113ad5b8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ad5bc:	f94057a2 	ldr	x2, [x29,#168]
ffff8000113ad5c0:	f9400061 	ldr	x1, [x3]
			ffff8000113ad5c0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ad5c4:	eb01005f 	cmp	x2, x1
ffff8000113ad5c8:	54001501 	b.ne	ffff8000113ad868 <dev_change_name+0x314>
ffff8000113ad5cc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ad5d0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ad5d4:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ad5d8:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113ad5dc:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113ad5e0:	a8cb7bfd 	ldp	x29, x30, [sp],#176
ffff8000113ad5e4:	d65f03c0 	ret
	s->sequence++;
ffff8000113ad5e8:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad5e8: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113ad5ec:	91000073 	add	x19, x3, #0x0
			ffff8000113ad5ec: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113ad5f0:	b9435260 	ldr	w0, [x19,#848]
ffff8000113ad5f4:	11000400 	add	w0, w0, #0x1
ffff8000113ad5f8:	b9035260 	str	w0, [x19,#848]
	smp_wmb();
ffff8000113ad5fc:	d5033abf 	dmb	ishst
	if (strncmp(newname, dev->name, IFNAMSIZ) == 0) {
ffff8000113ad600:	d2800202 	mov	x2, #0x10                  	// #16
ffff8000113ad604:	aa1c03e0 	mov	x0, x28
ffff8000113ad608:	aa1403e1 	mov	x1, x20
ffff8000113ad60c:	94000000 	bl	0 <strncmp>
			ffff8000113ad60c: R_AARCH64_CALL26	strncmp
ffff8000113ad610:	34000d40 	cbz	w0, ffff8000113ad7b8 <dev_change_name+0x264>
	return __builtin_memcpy(p, q, size);
ffff8000113ad614:	a9401684 	ldp	x4, x5, [x20]
	err = dev_get_valid_name(net, dev, newname);
ffff8000113ad618:	f9403ba0 	ldr	x0, [x29,#112]
ffff8000113ad61c:	910263b8 	add	x24, x29, #0x98
ffff8000113ad620:	aa1403e1 	mov	x1, x20
ffff8000113ad624:	aa1c03e2 	mov	x2, x28
ffff8000113ad628:	a9001704 	stp	x4, x5, [x24]
ffff8000113ad62c:	97ffd13a 	bl	ffff8000113a1b14 <dev_get_valid_name>
ffff8000113ad630:	2a0003fa 	mov	w26, w0
	if (err < 0) {
ffff8000113ad634:	37f80f7a 	tbnz	w26, #31, ffff8000113ad820 <dev_change_name+0x2cc>
	if (oldname[0] && !strchr(oldname, '%'))
ffff8000113ad638:	394263a0 	ldrb	w0, [x29,#152]
ffff8000113ad63c:	35000c80 	cbnz	w0, ffff8000113ad7cc <dev_change_name+0x278>
	old_assign_type = dev->name_assign_type;
ffff8000113ad640:	3949f282 	ldrb	w2, [x20,#636]
	s->sequence++;
ffff8000113ad644:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad644: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113ad648:	91000037 	add	x23, x1, #0x0
			ffff8000113ad648: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113ad64c:	91144283 	add	x3, x20, #0x510
	dev->name_assign_type = NET_NAME_RENAMED;
ffff8000113ad650:	52800080 	mov	w0, #0x4                   	// #4
	old_assign_type = dev->name_assign_type;
ffff8000113ad654:	b9007fa2 	str	w2, [x29,#124]
ffff8000113ad658:	f90037a3 	str	x3, [x29,#104]
	dev->name_assign_type = NET_NAME_RENAMED;
ffff8000113ad65c:	3909f280 	strb	w0, [x20,#636]
__CMPXCHG_CASE(w,  , acq_, 32,        , a,  , "memory", K)
ffff8000113ad660:	910cc2f3 	add	x19, x23, #0x330
ffff8000113ad664:	d2800016 	mov	x22, #0x0                   	// #0
ffff8000113ad668:	52801ff5 	mov	w21, #0xff                  	// #255
ffff8000113ad66c:	d538411b 	mrs	x27, sp_el0
ffff8000113ad670:	14000011 	b	ffff8000113ad6b4 <dev_change_name+0x160>
ffff8000113ad674:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113ad678:	4b000042 	sub	w2, w2, w0
		if (err >= 0) {
ffff8000113ad67c:	37f80dfa 	tbnz	w26, #31, ffff8000113ad838 <dev_change_name+0x2e4>
	s->sequence++;
ffff8000113ad680:	b94352e1 	ldr	w1, [x23,#848]
ffff8000113ad684:	11000421 	add	w1, w1, #0x1
ffff8000113ad688:	b90352e1 	str	w1, [x23,#848]
	smp_wmb();
ffff8000113ad68c:	d5033abf 	dmb	ishst
ffff8000113ad690:	a9401704 	ldp	x4, x5, [x24]
			dev->name_assign_type = old_assign_type;
ffff8000113ad694:	3941f3a0 	ldrb	w0, [x29,#124]
ffff8000113ad698:	a9001684 	stp	x4, x5, [x20]
ffff8000113ad69c:	a9401784 	ldp	x4, x5, [x28]
ffff8000113ad6a0:	2a0203fa 	mov	w26, w2
			old_assign_type = NET_NAME_RENAMED;
ffff8000113ad6a4:	52800082 	mov	w2, #0x4                   	// #4
ffff8000113ad6a8:	a9001704 	stp	x4, x5, [x24]
			dev->name_assign_type = old_assign_type;
ffff8000113ad6ac:	3909f280 	strb	w0, [x20,#636]
			old_assign_type = NET_NAME_RENAMED;
ffff8000113ad6b0:	b9007fa2 	str	w2, [x29,#124]
	ret = device_rename(&dev->dev, dev->name);
ffff8000113ad6b4:	f94037a0 	ldr	x0, [x29,#104]
ffff8000113ad6b8:	aa1403e1 	mov	x1, x20
ffff8000113ad6bc:	94000000 	bl	0 <device_rename>
			ffff8000113ad6bc: R_AARCH64_CALL26	device_rename
	if (ret) {
ffff8000113ad6c0:	350009a0 	cbnz	w0, ffff8000113ad7f4 <dev_change_name+0x2a0>
	smp_wmb();
ffff8000113ad6c4:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113ad6c8:	b94352e2 	ldr	w2, [x23,#848]
	netdev_adjacent_rename_links(dev, oldname);
ffff8000113ad6cc:	aa1403e0 	mov	x0, x20
ffff8000113ad6d0:	11000442 	add	w2, w2, #0x1
ffff8000113ad6d4:	aa1803e1 	mov	x1, x24
ffff8000113ad6d8:	b90352e2 	str	w2, [x23,#848]
ffff8000113ad6dc:	94000000 	bl	ffff8000113ad470 <netdev_adjacent_rename_links>
			ffff8000113ad6dc: R_AARCH64_CALL26	netdev_adjacent_rename_links
	__READ_ONCE_SIZE;
ffff8000113ad6e0:	b9401b60 	ldr	w0, [x27,#24]
ffff8000113ad6e4:	11080000 	add	w0, w0, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113ad6e8:	b9001b60 	str	w0, [x27,#24]
ffff8000113ad6ec:	f9800271 	prfm	pstl1strm, [x19]
ffff8000113ad6f0:	885ffe60 	ldaxr	w0, [x19]
ffff8000113ad6f4:	4a160001 	eor	w1, w0, w22
ffff8000113ad6f8:	35000061 	cbnz	w1, ffff8000113ad704 <dev_change_name+0x1b0>
ffff8000113ad6fc:	88017e75 	stxr	w1, w21, [x19]
ffff8000113ad700:	35ffff81 	cbnz	w1, ffff8000113ad6f0 <dev_change_name+0x19c>
	if (likely(atomic_try_cmpxchg_acquire(&lock->cnts, &cnts, _QW_LOCKED)))
ffff8000113ad704:	35000a60 	cbnz	w0, ffff8000113ad850 <dev_change_name+0x2fc>
	netdev_name_node_del(dev->name_node);
ffff8000113ad708:	f9400a80 	ldr	x0, [x20,#16]
	struct hlist_node *next = n->next;
ffff8000113ad70c:	f9400001 	ldr	x1, [x0]
	struct hlist_node **pprev = n->pprev;
ffff8000113ad710:	f9400402 	ldr	x2, [x0,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ad714:	f9000041 	str	x1, [x2]
	if (next)
ffff8000113ad718:	b4000041 	cbz	x1, ffff8000113ad720 <dev_change_name+0x1cc>
ffff8000113ad71c:	f9000422 	str	x2, [x1,#8]
ffff8000113ad720:	d2802441 	mov	x1, #0x122                 	// #290
ffff8000113ad724:	f2fbd5a1 	movk	x1, #0xdead, lsl #48
ffff8000113ad728:	f9000401 	str	x1, [x0,#8]
	smp_store_release(&lock->wlocked, 0);
ffff8000113ad72c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ad730:	089ffe60 	stlrb	w0, [x19]
ffff8000113ad734:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113ad738:	aa1903e0 	mov	x0, x25
ffff8000113ad73c:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113ad73c: R_AARCH64_CALL26	__local_bh_enable_ip
	synchronize_rcu();
ffff8000113ad740:	94000000 	bl	0 <synchronize_rcu>
			ffff8000113ad740: R_AARCH64_CALL26	synchronize_rcu
ffff8000113ad744:	d5384100 	mrs	x0, sp_el0
	__READ_ONCE_SIZE;
ffff8000113ad748:	b9401801 	ldr	w1, [x0,#24]
ffff8000113ad74c:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113ad750:	b9001801 	str	w1, [x0,#24]
ffff8000113ad754:	f9800271 	prfm	pstl1strm, [x19]
ffff8000113ad758:	885ffe60 	ldaxr	w0, [x19]
ffff8000113ad75c:	4a160001 	eor	w1, w0, w22
ffff8000113ad760:	35000061 	cbnz	w1, ffff8000113ad76c <dev_change_name+0x218>
ffff8000113ad764:	88017e75 	stxr	w1, w21, [x19]
ffff8000113ad768:	35ffff81 	cbnz	w1, ffff8000113ad758 <dev_change_name+0x204>
	if (likely(atomic_try_cmpxchg_acquire(&lock->cnts, &cnts, _QW_LOCKED)))
ffff8000113ad76c:	35000780 	cbnz	w0, ffff8000113ad85c <dev_change_name+0x308>
	netdev_name_node_add(net, dev->name_node);
ffff8000113ad770:	f9403ba0 	ldr	x0, [x29,#112]
ffff8000113ad774:	f9400a81 	ldr	x1, [x20,#16]
ffff8000113ad778:	97ffd60a 	bl	ffff8000113a2fa0 <netdev_name_node_add>
	smp_store_release(&lock->wlocked, 0);
ffff8000113ad77c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ad780:	089ffe60 	stlrb	w0, [x19]
ffff8000113ad784:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113ad788:	aa1903e0 	mov	x0, x25
ffff8000113ad78c:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113ad78c: R_AARCH64_CALL26	__local_bh_enable_ip
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ad790:	d2800160 	mov	x0, #0xb                   	// #11
ffff8000113ad794:	910223a1 	add	x1, x29, #0x88
	struct netdev_notifier_info info = {
ffff8000113ad798:	f90047b4 	str	x20, [x29,#136]
ffff8000113ad79c:	f9004bbf 	str	xzr, [x29,#144]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ad7a0:	97ffca56 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113ad7a4:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113ad7a8:	7100041f 	cmp	w0, #0x1
ffff8000113ad7ac:	54fff64c 	b.gt	ffff8000113ad674 <dev_change_name+0x120>
ffff8000113ad7b0:	2a1a03e0 	mov	w0, w26
ffff8000113ad7b4:	17ffff81 	b	ffff8000113ad5b8 <dev_change_name+0x64>
	smp_wmb();
ffff8000113ad7b8:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113ad7bc:	b9435261 	ldr	w1, [x19,#848]
ffff8000113ad7c0:	11000421 	add	w1, w1, #0x1
ffff8000113ad7c4:	b9035261 	str	w1, [x19,#848]
		return 0;
ffff8000113ad7c8:	17ffff7c 	b	ffff8000113ad5b8 <dev_change_name+0x64>
	if (oldname[0] && !strchr(oldname, '%'))
ffff8000113ad7cc:	aa1803e0 	mov	x0, x24
ffff8000113ad7d0:	528004a1 	mov	w1, #0x25                  	// #37
ffff8000113ad7d4:	94000000 	bl	0 <strchr>
			ffff8000113ad7d4: R_AARCH64_CALL26	strchr
ffff8000113ad7d8:	b5fff340 	cbnz	x0, ffff8000113ad640 <dev_change_name+0xec>
		netdev_info(dev, "renamed from %s\n", oldname);
ffff8000113ad7dc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad7dc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x758
ffff8000113ad7e0:	aa1403e0 	mov	x0, x20
ffff8000113ad7e4:	91000021 	add	x1, x1, #0x0
			ffff8000113ad7e4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x758
ffff8000113ad7e8:	aa1803e2 	mov	x2, x24
ffff8000113ad7ec:	94000000 	bl	ffff80001139eaac <__netdev_walk_all_upper_dev+0x30>
			ffff8000113ad7ec: R_AARCH64_CALL26	netdev_info
ffff8000113ad7f0:	17ffff94 	b	ffff8000113ad640 <dev_change_name+0xec>
ffff8000113ad7f4:	a9400f02 	ldp	x2, x3, [x24]
		dev->name_assign_type = old_assign_type;
ffff8000113ad7f8:	3941f3a1 	ldrb	w1, [x29,#124]
ffff8000113ad7fc:	a9000e82 	stp	x2, x3, [x20]
ffff8000113ad800:	3909f281 	strb	w1, [x20,#636]
	smp_wmb();
ffff8000113ad804:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113ad808:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad808: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113ad80c:	91000041 	add	x1, x2, #0x0
			ffff8000113ad80c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113ad810:	b9435022 	ldr	w2, [x1,#848]
ffff8000113ad814:	11000442 	add	w2, w2, #0x1
ffff8000113ad818:	b9035022 	str	w2, [x1,#848]
		return ret;
ffff8000113ad81c:	17ffff67 	b	ffff8000113ad5b8 <dev_change_name+0x64>
	smp_wmb();
ffff8000113ad820:	d5033abf 	dmb	ishst
	s->sequence++;
ffff8000113ad824:	b9435261 	ldr	w1, [x19,#848]
		return err;
ffff8000113ad828:	2a1a03e0 	mov	w0, w26
ffff8000113ad82c:	11000421 	add	w1, w1, #0x1
ffff8000113ad830:	b9035261 	str	w1, [x19,#848]
ffff8000113ad834:	17ffff61 	b	ffff8000113ad5b8 <dev_change_name+0x64>
			pr_err("%s: name change rollback failed: %d\n",
ffff8000113ad838:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad838: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x770
ffff8000113ad83c:	91000000 	add	x0, x0, #0x0
			ffff8000113ad83c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x770
ffff8000113ad840:	aa1403e1 	mov	x1, x20
ffff8000113ad844:	94000000 	bl	0 <printk>
			ffff8000113ad844: R_AARCH64_CALL26	printk
ffff8000113ad848:	2a1a03e0 	mov	w0, w26
ffff8000113ad84c:	17ffff5b 	b	ffff8000113ad5b8 <dev_change_name+0x64>
	queued_write_lock_slowpath(lock);
ffff8000113ad850:	aa1303e0 	mov	x0, x19
ffff8000113ad854:	94000000 	bl	0 <queued_write_lock_slowpath>
			ffff8000113ad854: R_AARCH64_CALL26	queued_write_lock_slowpath
ffff8000113ad858:	17ffffac 	b	ffff8000113ad708 <dev_change_name+0x1b4>
ffff8000113ad85c:	aa1303e0 	mov	x0, x19
ffff8000113ad860:	94000000 	bl	0 <queued_write_lock_slowpath>
			ffff8000113ad860: R_AARCH64_CALL26	queued_write_lock_slowpath
ffff8000113ad864:	17ffffc3 	b	ffff8000113ad770 <dev_change_name+0x21c>
}
ffff8000113ad868:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ad868: R_AARCH64_CALL26	__stack_chk_fail
	BUG_ON(!dev_net(dev));
ffff8000113ad86c:	d4210000 	brk	#0x800
	ASSERT_RTNL();
ffff8000113ad870:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad870: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113ad874:	91000063 	add	x3, x3, #0x0
			ffff8000113ad874: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113ad878:	39405c60 	ldrb	w0, [x3,#23]
ffff8000113ad87c:	35ffe8e0 	cbnz	w0, ffff8000113ad598 <dev_change_name+0x44>
ffff8000113ad880:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad880: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113ad884:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ad884: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113ad888:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113ad88c:	91000000 	add	x0, x0, #0x0
			ffff8000113ad88c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113ad890:	91000021 	add	x1, x1, #0x0
			ffff8000113ad890: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113ad894:	52809742 	mov	w2, #0x4ba                 	// #1210
ffff8000113ad898:	39005c64 	strb	w4, [x3,#23]
ffff8000113ad89c:	94000000 	bl	0 <__warn_printk>
			ffff8000113ad89c: R_AARCH64_CALL26	__warn_printk
ffff8000113ad8a0:	d4210000 	brk	#0x800
ffff8000113ad8a4:	17ffff3d 	b	ffff8000113ad598 <dev_change_name+0x44>

ffff8000113ad8a8 <__dev_notify_flags>:
{
ffff8000113ad8a8:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ad8ac:	910003fd 	mov	x29, sp
ffff8000113ad8b0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ad8b4:	f90013f5 	str	x21, [sp,#32]
ffff8000113ad8b8:	aa0003f3 	mov	x19, x0
ffff8000113ad8bc:	aa1e03e0 	mov	x0, x30
ffff8000113ad8c0:	2a0103f5 	mov	w21, w1
ffff8000113ad8c4:	f9001fa2 	str	x2, [x29,#56]
ffff8000113ad8c8:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113ad8c8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ad8cc:	94000000 	bl	0 <_mcount>
			ffff8000113ad8cc: R_AARCH64_CALL26	_mcount
ffff8000113ad8d0:	f9400280 	ldr	x0, [x20]
			ffff8000113ad8d0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	unsigned int changes = dev->flags ^ old_flags;
ffff8000113ad8d4:	b9422a63 	ldr	w3, [x19,#552]
	if (gchanges)
ffff8000113ad8d8:	f9401fa2 	ldr	x2, [x29,#56]
{
ffff8000113ad8dc:	f9002fa0 	str	x0, [x29,#88]
	unsigned int changes = dev->flags ^ old_flags;
ffff8000113ad8e0:	4a0302b5 	eor	w21, w21, w3
	if (gchanges)
ffff8000113ad8e4:	350002c2 	cbnz	w2, ffff8000113ad93c <__dev_notify_flags+0x94>
	if (changes & IFF_UP) {
ffff8000113ad8e8:	36000115 	tbz	w21, #0, ffff8000113ad908 <__dev_notify_flags+0x60>
		if (dev->flags & IFF_UP)
ffff8000113ad8ec:	37000343 	tbnz	w3, #0, ffff8000113ad954 <__dev_notify_flags+0xac>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ad8f0:	d2800040 	mov	x0, #0x2                   	// #2
ffff8000113ad8f4:	910103a1 	add	x1, x29, #0x40
	struct netdev_notifier_info info = {
ffff8000113ad8f8:	f90023b3 	str	x19, [x29,#64]
ffff8000113ad8fc:	f90027bf 	str	xzr, [x29,#72]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ad900:	97ffc9fe 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113ad904:	b9422a63 	ldr	w3, [x19,#552]
	if (dev->flags & IFF_UP &&
ffff8000113ad908:	360000a3 	tbz	w3, #0, ffff8000113ad91c <__dev_notify_flags+0x74>
	    (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) {
ffff8000113ad90c:	529e1480 	mov	w0, #0xf0a4                	// #61604
ffff8000113ad910:	72bfff00 	movk	w0, #0xfff8, lsl #16
	if (dev->flags & IFF_UP &&
ffff8000113ad914:	6a0002bf 	tst	w21, w0
ffff8000113ad918:	54000221 	b.ne	ffff8000113ad95c <__dev_notify_flags+0xb4>
}
ffff8000113ad91c:	f9402fa1 	ldr	x1, [x29,#88]
ffff8000113ad920:	f9400280 	ldr	x0, [x20]
			ffff8000113ad920: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ad924:	eb00003f 	cmp	x1, x0
ffff8000113ad928:	540002a1 	b.ne	ffff8000113ad97c <__dev_notify_flags+0xd4>
ffff8000113ad92c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ad930:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113ad934:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113ad938:	d65f03c0 	ret
		rtmsg_ifinfo(RTM_NEWLINK, dev, gchanges, GFP_ATOMIC);
ffff8000113ad93c:	52814403 	mov	w3, #0xa20                 	// #2592
ffff8000113ad940:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113ad944:	aa1303e1 	mov	x1, x19
ffff8000113ad948:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113ad948: R_AARCH64_CALL26	rtmsg_ifinfo
ffff8000113ad94c:	b9422a63 	ldr	w3, [x19,#552]
ffff8000113ad950:	17ffffe6 	b	ffff8000113ad8e8 <__dev_notify_flags+0x40>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ad954:	d2800020 	mov	x0, #0x1                   	// #1
ffff8000113ad958:	17ffffe7 	b	ffff8000113ad8f4 <__dev_notify_flags+0x4c>
		struct netdev_notifier_change_info change_info = {
ffff8000113ad95c:	a9047fbf 	stp	xzr, xzr, [x29,#64]
ffff8000113ad960:	f9002bbf 	str	xzr, [x29,#80]
		call_netdevice_notifiers_info(NETDEV_CHANGE, &change_info.info);
ffff8000113ad964:	910103a1 	add	x1, x29, #0x40
ffff8000113ad968:	d2800080 	mov	x0, #0x4                   	// #4
		struct netdev_notifier_change_info change_info = {
ffff8000113ad96c:	f90023b3 	str	x19, [x29,#64]
ffff8000113ad970:	b90053b5 	str	w21, [x29,#80]
		call_netdevice_notifiers_info(NETDEV_CHANGE, &change_info.info);
ffff8000113ad974:	97ffc9e1 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113ad978:	17ffffe9 	b	ffff8000113ad91c <__dev_notify_flags+0x74>
}
ffff8000113ad97c:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ad97c: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ad980 <__dev_set_promiscuity>:
{
ffff8000113ad980:	d10203ff 	sub	sp, sp, #0x80
ffff8000113ad984:	a9027bfd 	stp	x29, x30, [sp,#32]
ffff8000113ad988:	910083fd 	add	x29, sp, #0x20
ffff8000113ad98c:	a90353f3 	stp	x19, x20, [sp,#48]
ffff8000113ad990:	a9045bf5 	stp	x21, x22, [sp,#64]
ffff8000113ad994:	a90563f7 	stp	x23, x24, [sp,#80]
ffff8000113ad998:	a9066bf9 	stp	x25, x26, [sp,#96]
ffff8000113ad99c:	aa0003f3 	mov	x19, x0
ffff8000113ad9a0:	aa1e03e0 	mov	x0, x30
ffff8000113ad9a4:	2a0103f4 	mov	w20, w1
ffff8000113ad9a8:	53001c56 	uxtb	w22, w2
ffff8000113ad9ac:	94000000 	bl	0 <_mcount>
			ffff8000113ad9ac: R_AARCH64_CALL26	_mcount
	unsigned int old_flags = dev->flags;
ffff8000113ad9b0:	b9422a75 	ldr	w21, [x19,#552]
	ASSERT_RTNL();
ffff8000113ad9b4:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113ad9b4: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113ad9b8:	34000460 	cbz	w0, ffff8000113ada44 <__dev_set_promiscuity+0xc4>
	dev->flags |= IFF_PROMISC;
ffff8000113ad9bc:	b9422a64 	ldr	w4, [x19,#552]
	dev->promiscuity += inc;
ffff8000113ad9c0:	b942d261 	ldr	w1, [x19,#720]
	dev->flags |= IFF_PROMISC;
ffff8000113ad9c4:	32180080 	orr	w0, w4, #0x100
	dev->promiscuity += inc;
ffff8000113ad9c8:	0b010283 	add	w3, w20, w1
	dev->flags |= IFF_PROMISC;
ffff8000113ad9cc:	b9022a60 	str	w0, [x19,#552]
	dev->promiscuity += inc;
ffff8000113ad9d0:	b902d263 	str	w3, [x19,#720]
	if (dev->promiscuity == 0) {
ffff8000113ad9d4:	35000083 	cbnz	w3, ffff8000113ad9e4 <__dev_set_promiscuity+0x64>
		if (inc < 0)
ffff8000113ad9d8:	36f80294 	tbz	w20, #31, ffff8000113ada28 <__dev_set_promiscuity+0xa8>
			dev->flags &= ~IFF_PROMISC;
ffff8000113ad9dc:	12177880 	and	w0, w4, #0xfffffeff
ffff8000113ad9e0:	b9022a60 	str	w0, [x19,#552]
	if (dev->flags != old_flags) {
ffff8000113ad9e4:	6b0002bf 	cmp	w21, w0
ffff8000113ad9e8:	540004a1 	b.ne	ffff8000113ada7c <__dev_set_promiscuity+0xfc>
	return 0;
ffff8000113ad9ec:	52800014 	mov	w20, #0x0                   	// #0
	if (notify)
ffff8000113ad9f0:	340000b6 	cbz	w22, ffff8000113ada04 <__dev_set_promiscuity+0x84>
		__dev_notify_flags(dev, old_flags, IFF_PROMISC);
ffff8000113ad9f4:	aa1303e0 	mov	x0, x19
ffff8000113ad9f8:	2a1503e1 	mov	w1, w21
ffff8000113ad9fc:	52802002 	mov	w2, #0x100                 	// #256
ffff8000113ada00:	94000000 	bl	ffff8000113ad8a8 <__dev_notify_flags>
			ffff8000113ada00: R_AARCH64_CALL26	__dev_notify_flags
}
ffff8000113ada04:	d10083bf 	sub	sp, x29, #0x20
ffff8000113ada08:	2a1403e0 	mov	w0, w20
ffff8000113ada0c:	a9445bf5 	ldp	x21, x22, [sp,#64]
ffff8000113ada10:	a94353f3 	ldp	x19, x20, [sp,#48]
ffff8000113ada14:	a94563f7 	ldp	x23, x24, [sp,#80]
ffff8000113ada18:	a9466bf9 	ldp	x25, x26, [sp,#96]
ffff8000113ada1c:	a9427bfd 	ldp	x29, x30, [sp,#32]
ffff8000113ada20:	910203ff 	add	sp, sp, #0x80
ffff8000113ada24:	d65f03c0 	ret
			pr_warn("%s: promiscuity touches roof, set promiscuity failed. promiscuity feature of device might be broken.\n",
ffff8000113ada28:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada28: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x7a8
			dev->promiscuity -= inc;
ffff8000113ada2c:	b902d261 	str	w1, [x19,#720]
			pr_warn("%s: promiscuity touches roof, set promiscuity failed. promiscuity feature of device might be broken.\n",
ffff8000113ada30:	91000000 	add	x0, x0, #0x0
			ffff8000113ada30: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x7a8
ffff8000113ada34:	aa1303e1 	mov	x1, x19
ffff8000113ada38:	94000000 	bl	0 <printk>
			ffff8000113ada38: R_AARCH64_CALL26	printk
			return -EOVERFLOW;
ffff8000113ada3c:	12800954 	mov	w20, #0xffffffb5            	// #-75
ffff8000113ada40:	17fffff1 	b	ffff8000113ada04 <__dev_set_promiscuity+0x84>
	ASSERT_RTNL();
ffff8000113ada44:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada44: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113ada48:	91000063 	add	x3, x3, #0x0
			ffff8000113ada48: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113ada4c:	39406060 	ldrb	w0, [x3,#24]
ffff8000113ada50:	35fffb60 	cbnz	w0, ffff8000113ad9bc <__dev_set_promiscuity+0x3c>
ffff8000113ada54:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada54: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113ada58:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada58: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113ada5c:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113ada60:	91000000 	add	x0, x0, #0x0
			ffff8000113ada60: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113ada64:	91000021 	add	x1, x1, #0x0
			ffff8000113ada64: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113ada68:	5283dd82 	mov	w2, #0x1eec                	// #7916
ffff8000113ada6c:	39006064 	strb	w4, [x3,#24]
ffff8000113ada70:	94000000 	bl	0 <__warn_printk>
			ffff8000113ada70: R_AARCH64_CALL26	__warn_printk
ffff8000113ada74:	d4210000 	brk	#0x800
ffff8000113ada78:	17ffffd1 	b	ffff8000113ad9bc <__dev_set_promiscuity+0x3c>
		pr_info("device %s %s promiscuous mode\n",
ffff8000113ada7c:	36400220 	tbz	w0, #8, ffff8000113adac0 <__dev_set_promiscuity+0x140>
ffff8000113ada80:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada80: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x798
ffff8000113ada84:	91000042 	add	x2, x2, #0x0
			ffff8000113ada84: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x798
ffff8000113ada88:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ada88: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x810
ffff8000113ada8c:	91000000 	add	x0, x0, #0x0
			ffff8000113ada8c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x810
ffff8000113ada90:	aa1303e1 	mov	x1, x19
ffff8000113ada94:	94000000 	bl	0 <printk>
			ffff8000113ada94: R_AARCH64_CALL26	printk
		if (audit_enabled) {
ffff8000113ada98:	90000000 	adrp	x0, 0 <audit_enabled>
			ffff8000113ada98: R_AARCH64_ADR_PREL_PG_HI21	audit_enabled
ffff8000113ada9c:	b9400000 	ldr	w0, [x0]
			ffff8000113ada9c: R_AARCH64_LDST32_ABS_LO12_NC	audit_enabled
ffff8000113adaa0:	35000160 	cbnz	w0, ffff8000113adacc <__dev_set_promiscuity+0x14c>
	if (ops->ndo_change_rx_flags)
ffff8000113adaa4:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113adaa8:	f9401c02 	ldr	x2, [x0,#56]
ffff8000113adaac:	b4fffa02 	cbz	x2, ffff8000113ad9ec <__dev_set_promiscuity+0x6c>
		ops->ndo_change_rx_flags(dev, flags);
ffff8000113adab0:	aa1303e0 	mov	x0, x19
ffff8000113adab4:	52802001 	mov	w1, #0x100                 	// #256
ffff8000113adab8:	d63f0040 	blr	x2
ffff8000113adabc:	17ffffcc 	b	ffff8000113ad9ec <__dev_set_promiscuity+0x6c>
		pr_info("device %s %s promiscuous mode\n",
ffff8000113adac0:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adac0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x7a0
ffff8000113adac4:	91000042 	add	x2, x2, #0x0
			ffff8000113adac4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x7a0
ffff8000113adac8:	17fffff0 	b	ffff8000113ada88 <__dev_set_promiscuity+0x108>
ffff8000113adacc:	d5384114 	mrs	x20, sp_el0
			audit_log(audit_context(), GFP_ATOMIC,
ffff8000113adad0:	b9422a65 	ldr	w5, [x19,#552]
			current_uid_gid(&uid, &gid);
ffff8000113adad4:	f9446680 	ldr	x0, [x20,#2248]
			audit_log(audit_context(), GFP_ATOMIC,
ffff8000113adad8:	90000017 	adrp	x23, 0 <init_user_ns>
			ffff8000113adad8: R_AARCH64_ADR_PREL_PG_HI21	init_user_ns
ffff8000113adadc:	910002f7 	add	x23, x23, #0x0
			ffff8000113adadc: R_AARCH64_ADD_ABS_LO12_NC	init_user_ns
ffff8000113adae0:	b9498a81 	ldr	w1, [x20,#2440]
			current_uid_gid(&uid, &gid);
ffff8000113adae4:	b9400419 	ldr	w25, [x0,#4]
ffff8000113adae8:	b940081a 	ldr	w26, [x0,#8]
			audit_log(audit_context(), GFP_ATOMIC,
ffff8000113adaec:	121800a5 	and	w5, w5, #0x100
ffff8000113adaf0:	aa1703e0 	mov	x0, x23
	task->audit_context = ctx;
}

static inline struct audit_context *audit_context(void)
{
	return current->audit_context;
ffff8000113adaf4:	f944c298 	ldr	x24, [x20,#2432]
ffff8000113adaf8:	f9002ba5 	str	x5, [x29,#80]
ffff8000113adafc:	94000000 	bl	0 <from_kuid>
			ffff8000113adafc: R_AARCH64_CALL26	from_kuid
ffff8000113adb00:	2a0003e7 	mov	w7, w0
ffff8000113adb04:	2a1903e1 	mov	w1, w25
ffff8000113adb08:	aa1703e0 	mov	x0, x23
ffff8000113adb0c:	f9002fa7 	str	x7, [x29,#88]
ffff8000113adb10:	94000000 	bl	0 <from_kuid>
			ffff8000113adb10: R_AARCH64_CALL26	from_kuid
ffff8000113adb14:	2a0003f9 	mov	w25, w0
ffff8000113adb18:	2a1a03e1 	mov	w1, w26
ffff8000113adb1c:	aa1703e0 	mov	x0, x23
ffff8000113adb20:	94000000 	bl	0 <from_kgid>
			ffff8000113adb20: R_AARCH64_CALL26	from_kgid
ffff8000113adb24:	b90003f9 	str	w25, [sp]
ffff8000113adb28:	b9000be0 	str	w0, [sp,#8]
ffff8000113adb2c:	b9498e80 	ldr	w0, [x20,#2444]
ffff8000113adb30:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adb30: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x838
ffff8000113adb34:	f9402ba5 	ldr	x5, [x29,#80]
ffff8000113adb38:	f9402fa7 	ldr	x7, [x29,#88]
ffff8000113adb3c:	b90013e0 	str	w0, [sp,#16]
ffff8000113adb40:	52814401 	mov	w1, #0xa20                 	// #2592
ffff8000113adb44:	aa1803e0 	mov	x0, x24
ffff8000113adb48:	5280d482 	mov	w2, #0x6a4                 	// #1700
ffff8000113adb4c:	91000063 	add	x3, x3, #0x0
			ffff8000113adb4c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x838
ffff8000113adb50:	aa1303e4 	mov	x4, x19
ffff8000113adb54:	121802a6 	and	w6, w21, #0x100
ffff8000113adb58:	94000000 	bl	0 <audit_log>
			ffff8000113adb58: R_AARCH64_CALL26	audit_log
ffff8000113adb5c:	17ffffd2 	b	ffff8000113adaa4 <__dev_set_promiscuity+0x124>

ffff8000113adb60 <__dev_set_rx_mode>:
{
ffff8000113adb60:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113adb64:	910003fd 	mov	x29, sp
ffff8000113adb68:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adb6c:	f90013f5 	str	x21, [sp,#32]
ffff8000113adb70:	aa0003f3 	mov	x19, x0
ffff8000113adb74:	aa1e03e0 	mov	x0, x30
ffff8000113adb78:	94000000 	bl	0 <_mcount>
			ffff8000113adb78: R_AARCH64_CALL26	_mcount
	if (!(dev->flags&IFF_UP))
ffff8000113adb7c:	b9422a60 	ldr	w0, [x19,#552]
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113adb80:	f940fa74 	ldr	x20, [x19,#496]
	if (!(dev->flags&IFF_UP))
ffff8000113adb84:	360001a0 	tbz	w0, #0, ffff8000113adbb8 <__dev_set_rx_mode+0x58>
ffff8000113adb88:	f9402260 	ldr	x0, [x19,#64]
	if (!netif_device_present(dev))
ffff8000113adb8c:	36080160 	tbz	w0, #1, ffff8000113adbb8 <__dev_set_rx_mode+0x58>
	if (!(dev->priv_flags & IFF_UNICAST_FLT)) {
ffff8000113adb90:	b9422e60 	ldr	w0, [x19,#556]
ffff8000113adb94:	376000a0 	tbnz	w0, #12, ffff8000113adba8 <__dev_set_rx_mode+0x48>
		if (!netdev_uc_empty(dev) && !dev->uc_promisc) {
ffff8000113adb98:	b9429275 	ldr	w21, [x19,#656]
ffff8000113adb9c:	35000175 	cbnz	w21, ffff8000113adbc8 <__dev_set_rx_mode+0x68>
		} else if (netdev_uc_empty(dev) && dev->uc_promisc) {
ffff8000113adba0:	3949f660 	ldrb	w0, [x19,#637]
ffff8000113adba4:	35000220 	cbnz	w0, ffff8000113adbe8 <__dev_set_rx_mode+0x88>
	if (ops->ndo_set_rx_mode)
ffff8000113adba8:	f9402281 	ldr	x1, [x20,#64]
ffff8000113adbac:	b4000061 	cbz	x1, ffff8000113adbb8 <__dev_set_rx_mode+0x58>
		ops->ndo_set_rx_mode(dev);
ffff8000113adbb0:	aa1303e0 	mov	x0, x19
ffff8000113adbb4:	d63f0020 	blr	x1
}
ffff8000113adbb8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113adbbc:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113adbc0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113adbc4:	d65f03c0 	ret
		if (!netdev_uc_empty(dev) && !dev->uc_promisc) {
ffff8000113adbc8:	3949f662 	ldrb	w2, [x19,#637]
ffff8000113adbcc:	35fffee2 	cbnz	w2, ffff8000113adba8 <__dev_set_rx_mode+0x48>
			__dev_set_promiscuity(dev, 1, false);
ffff8000113adbd0:	aa1303e0 	mov	x0, x19
ffff8000113adbd4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113adbd8:	97ffff6a 	bl	ffff8000113ad980 <__dev_set_promiscuity>
			dev->uc_promisc = true;
ffff8000113adbdc:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113adbe0:	3909f660 	strb	w0, [x19,#637]
ffff8000113adbe4:	17fffff1 	b	ffff8000113adba8 <__dev_set_rx_mode+0x48>
			__dev_set_promiscuity(dev, -1, false);
ffff8000113adbe8:	aa1303e0 	mov	x0, x19
ffff8000113adbec:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113adbf0:	2a1503e2 	mov	w2, w21
ffff8000113adbf4:	97ffff63 	bl	ffff8000113ad980 <__dev_set_promiscuity>
			dev->uc_promisc = false;
ffff8000113adbf8:	3909f675 	strb	w21, [x19,#637]
ffff8000113adbfc:	17ffffeb 	b	ffff8000113adba8 <__dev_set_rx_mode+0x48>

ffff8000113adc00 <dev_set_rx_mode>:
{
ffff8000113adc00:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113adc04:	910003fd 	mov	x29, sp
ffff8000113adc08:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adc0c:	aa0003f3 	mov	x19, x0
ffff8000113adc10:	aa1e03e0 	mov	x0, x30
ffff8000113adc14:	aa1e03f4 	mov	x20, x30
ffff8000113adc18:	94000000 	bl	0 <_mcount>
			ffff8000113adc18: R_AARCH64_CALL26	_mcount
ffff8000113adc1c:	d5384100 	mrs	x0, sp_el0
	__READ_ONCE_SIZE;
ffff8000113adc20:	b9401801 	ldr	w1, [x0,#24]
ffff8000113adc24:	11080021 	add	w1, w1, #0x200
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113adc28:	b9001801 	str	w1, [x0,#24]
ffff8000113adc2c:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113adc30:	9109e260 	add	x0, x19, #0x278
ffff8000113adc34:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113adc38:	f9800011 	prfm	pstl1strm, [x0]
ffff8000113adc3c:	885ffc01 	ldaxr	w1, [x0]
ffff8000113adc40:	4a020024 	eor	w4, w1, w2
ffff8000113adc44:	35000064 	cbnz	w4, ffff8000113adc50 <dev_set_rx_mode+0x50>
ffff8000113adc48:	88047c03 	stxr	w4, w3, [x0]
ffff8000113adc4c:	35ffff84 	cbnz	w4, ffff8000113adc3c <dev_set_rx_mode+0x3c>
ffff8000113adc50:	35000181 	cbnz	w1, ffff8000113adc80 <dev_set_rx_mode+0x80>
	__dev_set_rx_mode(dev);
ffff8000113adc54:	aa1303e0 	mov	x0, x19
ffff8000113adc58:	94000000 	bl	ffff8000113adb60 <__dev_set_rx_mode>
			ffff8000113adc58: R_AARCH64_CALL26	__dev_set_rx_mode
	smp_store_release(&lock->locked, 0);
ffff8000113adc5c:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113adc60:	9109e273 	add	x19, x19, #0x278
ffff8000113adc64:	089ffe60 	stlrb	w0, [x19]
	__local_bh_enable_ip(_RET_IP_, SOFTIRQ_LOCK_OFFSET);
ffff8000113adc68:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113adc6c:	aa1403e0 	mov	x0, x20
ffff8000113adc70:	94000000 	bl	0 <__local_bh_enable_ip>
			ffff8000113adc70: R_AARCH64_CALL26	__local_bh_enable_ip
}
ffff8000113adc74:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113adc78:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113adc7c:	d65f03c0 	ret
	queued_spin_lock_slowpath(lock, val);
ffff8000113adc80:	94000000 	bl	0 <queued_spin_lock_slowpath>
			ffff8000113adc80: R_AARCH64_CALL26	queued_spin_lock_slowpath
ffff8000113adc84:	17fffff4 	b	ffff8000113adc54 <dev_set_rx_mode+0x54>

ffff8000113adc88 <__dev_open>:
{
ffff8000113adc88:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113adc8c:	910003fd 	mov	x29, sp
ffff8000113adc90:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adc94:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113adc98:	aa0003f3 	mov	x19, x0
ffff8000113adc9c:	aa1e03e0 	mov	x0, x30
ffff8000113adca0:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113adca0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113adca4:	aa0103f5 	mov	x21, x1
ffff8000113adca8:	94000000 	bl	0 <_mcount>
			ffff8000113adca8: R_AARCH64_CALL26	_mcount
ffff8000113adcac:	f9400280 	ldr	x0, [x20]
			ffff8000113adcac: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113adcb0:	f940fa76 	ldr	x22, [x19,#496]
{
ffff8000113adcb4:	f90027a0 	str	x0, [x29,#72]
	ASSERT_RTNL();
ffff8000113adcb8:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113adcb8: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113adcbc:	340008e0 	cbz	w0, ffff8000113addd8 <__dev_open+0x150>
ffff8000113adcc0:	f9402260 	ldr	x0, [x19,#64]
	if (!netif_device_present(dev))
ffff8000113adcc4:	36080800 	tbz	w0, #1, ffff8000113addc4 <__dev_open+0x13c>
	netpoll_poll_disable(dev);
ffff8000113adcc8:	aa1303e0 	mov	x0, x19
ffff8000113adccc:	94000000 	bl	0 <netpoll_poll_disable>
			ffff8000113adccc: R_AARCH64_CALL26	netpoll_poll_disable
	return call_netdevice_notifiers_info(val, &info);
ffff8000113adcd0:	d28001c0 	mov	x0, #0xe                   	// #14
ffff8000113adcd4:	9100e3a1 	add	x1, x29, #0x38
	struct netdev_notifier_info info = {
ffff8000113adcd8:	f9001fb3 	str	x19, [x29,#56]
ffff8000113adcdc:	f90023b5 	str	x21, [x29,#64]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113adce0:	97ffc906 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113adce4:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113adce8:	7100041f 	cmp	w0, #0x1
ffff8000113adcec:	5400016d 	b.le	ffff8000113add18 <__dev_open+0x90>
ffff8000113adcf0:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113adcf4:	4b000020 	sub	w0, w1, w0
}
ffff8000113adcf8:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113adcfc:	f9400281 	ldr	x1, [x20]
			ffff8000113adcfc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113add00:	eb01005f 	cmp	x2, x1
ffff8000113add04:	54000681 	b.ne	ffff8000113addd4 <__dev_open+0x14c>
ffff8000113add08:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113add0c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113add10:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113add14:	d65f03c0 	ret
ATOMIC64_OPS(or, orr, L)
ffff8000113add18:	91010262 	add	x2, x19, #0x40
ffff8000113add1c:	f9800051 	prfm	pstl1strm, [x2]
ffff8000113add20:	c85f7c40 	ldxr	x0, [x2]
ffff8000113add24:	b2400000 	orr	x0, x0, #0x1
ffff8000113add28:	c8017c40 	stxr	w1, x0, [x2]
ffff8000113add2c:	35ffffa1 	cbnz	w1, ffff8000113add20 <__dev_open+0x98>
	if (ops->ndo_validate_addr)
ffff8000113add30:	f9402ac1 	ldr	x1, [x22,#80]
ffff8000113add34:	b4000201 	cbz	x1, ffff8000113add74 <__dev_open+0xec>
		ret = ops->ndo_validate_addr(dev);
ffff8000113add38:	aa1303e0 	mov	x0, x19
ffff8000113add3c:	d63f0020 	blr	x1
ffff8000113add40:	2a0003f5 	mov	w21, w0
	if (!ret && ops->ndo_open)
ffff8000113add44:	34000180 	cbz	w0, ffff8000113add74 <__dev_open+0xec>
	netpoll_poll_enable(dev);
ffff8000113add48:	aa1303e0 	mov	x0, x19
ffff8000113add4c:	94000000 	bl	0 <netpoll_poll_enable>
			ffff8000113add4c: R_AARCH64_CALL26	netpoll_poll_enable
ATOMIC64_OPS(andnot, bic, )
ffff8000113add50:	d2800021 	mov	x1, #0x1                   	// #1
ffff8000113add54:	91010263 	add	x3, x19, #0x40
ffff8000113add58:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113add5c:	c85f7c60 	ldxr	x0, [x3]
ffff8000113add60:	8a210000 	bic	x0, x0, x1
ffff8000113add64:	c8027c60 	stxr	w2, x0, [x3]
ffff8000113add68:	35ffffa2 	cbnz	w2, ffff8000113add5c <__dev_open+0xd4>
ffff8000113add6c:	2a1503e0 	mov	w0, w21
ffff8000113add70:	17ffffe2 	b	ffff8000113adcf8 <__dev_open+0x70>
	if (!ret && ops->ndo_open)
ffff8000113add74:	f9400ac1 	ldr	x1, [x22,#16]
		ret = ops->ndo_open(dev);
ffff8000113add78:	aa1303e0 	mov	x0, x19
	if (!ret && ops->ndo_open)
ffff8000113add7c:	b4000281 	cbz	x1, ffff8000113addcc <__dev_open+0x144>
		ret = ops->ndo_open(dev);
ffff8000113add80:	d63f0020 	blr	x1
ffff8000113add84:	2a0003f5 	mov	w21, w0
	netpoll_poll_enable(dev);
ffff8000113add88:	aa1303e0 	mov	x0, x19
ffff8000113add8c:	94000000 	bl	0 <netpoll_poll_enable>
			ffff8000113add8c: R_AARCH64_CALL26	netpoll_poll_enable
	if (ret)
ffff8000113add90:	35fffe15 	cbnz	w21, ffff8000113add50 <__dev_open+0xc8>
		dev->flags |= IFF_UP;
ffff8000113add94:	b9422a61 	ldr	w1, [x19,#552]
		dev_set_rx_mode(dev);
ffff8000113add98:	aa1303e0 	mov	x0, x19
		dev->flags |= IFF_UP;
ffff8000113add9c:	32000021 	orr	w1, w1, #0x1
ffff8000113adda0:	b9022a61 	str	w1, [x19,#552]
		dev_set_rx_mode(dev);
ffff8000113adda4:	94000000 	bl	ffff8000113adc00 <dev_set_rx_mode>
			ffff8000113adda4: R_AARCH64_CALL26	dev_set_rx_mode
		dev_activate(dev);
ffff8000113adda8:	aa1303e0 	mov	x0, x19
ffff8000113addac:	94000000 	bl	0 <dev_activate>
			ffff8000113addac: R_AARCH64_CALL26	dev_activate
		add_device_randomness(dev->dev_addr, dev->addr_len);
ffff8000113addb0:	f9418e60 	ldr	x0, [x19,#792]
ffff8000113addb4:	3949be61 	ldrb	w1, [x19,#623]
ffff8000113addb8:	94000000 	bl	0 <add_device_randomness>
			ffff8000113addb8: R_AARCH64_CALL26	add_device_randomness
ffff8000113addbc:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113addc0:	17ffffce 	b	ffff8000113adcf8 <__dev_open+0x70>
		return -ENODEV;
ffff8000113addc4:	12800240 	mov	w0, #0xffffffed            	// #-19
ffff8000113addc8:	17ffffcc 	b	ffff8000113adcf8 <__dev_open+0x70>
	netpoll_poll_enable(dev);
ffff8000113addcc:	94000000 	bl	0 <netpoll_poll_enable>
			ffff8000113addcc: R_AARCH64_CALL26	netpoll_poll_enable
ffff8000113addd0:	17fffff1 	b	ffff8000113add94 <__dev_open+0x10c>
}
ffff8000113addd4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113addd4: R_AARCH64_CALL26	__stack_chk_fail
	ASSERT_RTNL();
ffff8000113addd8:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113addd8: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113adddc:	91000063 	add	x3, x3, #0x0
			ffff8000113adddc: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113adde0:	39406460 	ldrb	w0, [x3,#25]
ffff8000113adde4:	35fff6e0 	cbnz	w0, ffff8000113adcc0 <__dev_open+0x38>
ffff8000113adde8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adde8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113addec:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113addec: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113addf0:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113addf4:	91000000 	add	x0, x0, #0x0
			ffff8000113addf4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113addf8:	91000021 	add	x1, x1, #0x0
			ffff8000113addf8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113addfc:	5280b0c2 	mov	w2, #0x586                 	// #1414
ffff8000113ade00:	39006464 	strb	w4, [x3,#25]
ffff8000113ade04:	94000000 	bl	0 <__warn_printk>
			ffff8000113ade04: R_AARCH64_CALL26	__warn_printk
ffff8000113ade08:	d4210000 	brk	#0x800
ffff8000113ade0c:	17ffffad 	b	ffff8000113adcc0 <__dev_open+0x38>

ffff8000113ade10 <dev_open>:
{
ffff8000113ade10:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ade14:	910003fd 	mov	x29, sp
ffff8000113ade18:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ade1c:	f90013f5 	str	x21, [sp,#32]
ffff8000113ade20:	aa0003f4 	mov	x20, x0
ffff8000113ade24:	aa1e03e0 	mov	x0, x30
ffff8000113ade28:	f9001fa1 	str	x1, [x29,#56]
ffff8000113ade2c:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113ade2c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ade30:	94000000 	bl	0 <_mcount>
			ffff8000113ade30: R_AARCH64_CALL26	_mcount
ffff8000113ade34:	f9400260 	ldr	x0, [x19]
			ffff8000113ade34: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (dev->flags & IFF_UP)
ffff8000113ade38:	b9422a82 	ldr	w2, [x20,#552]
{
ffff8000113ade3c:	f9002fa0 	str	x0, [x29,#88]
	if (dev->flags & IFF_UP)
ffff8000113ade40:	f9401fa1 	ldr	x1, [x29,#56]
		return 0;
ffff8000113ade44:	52800000 	mov	w0, #0x0                   	// #0
	if (dev->flags & IFF_UP)
ffff8000113ade48:	36000122 	tbz	w2, #0, ffff8000113ade6c <dev_open+0x5c>
}
ffff8000113ade4c:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113ade50:	f9400261 	ldr	x1, [x19]
			ffff8000113ade50: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ade54:	eb01005f 	cmp	x2, x1
ffff8000113ade58:	540002a1 	b.ne	ffff8000113adeac <dev_open+0x9c>
ffff8000113ade5c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ade60:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113ade64:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113ade68:	d65f03c0 	ret
	ret = __dev_open(dev, extack);
ffff8000113ade6c:	aa1403e0 	mov	x0, x20
ffff8000113ade70:	97ffff86 	bl	ffff8000113adc88 <__dev_open>
ffff8000113ade74:	2a0003f5 	mov	w21, w0
	if (ret < 0)
ffff8000113ade78:	37f80175 	tbnz	w21, #31, ffff8000113adea4 <dev_open+0x94>
	rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING, GFP_KERNEL);
ffff8000113ade7c:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113ade80:	aa1403e1 	mov	x1, x20
ffff8000113ade84:	52800822 	mov	w2, #0x41                  	// #65
ffff8000113ade88:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113ade8c:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113ade8c: R_AARCH64_CALL26	rtmsg_ifinfo
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ade90:	d2800020 	mov	x0, #0x1                   	// #1
ffff8000113ade94:	910123a1 	add	x1, x29, #0x48
	struct netdev_notifier_info info = {
ffff8000113ade98:	f90027b4 	str	x20, [x29,#72]
ffff8000113ade9c:	f9002bbf 	str	xzr, [x29,#80]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113adea0:	97ffc896 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret = __dev_open(dev, extack);
ffff8000113adea4:	2a1503e0 	mov	w0, w21
ffff8000113adea8:	17ffffe9 	b	ffff8000113ade4c <dev_open+0x3c>
}
ffff8000113adeac:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113adeac: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113adeb0 <dev_set_promiscuity>:
{
ffff8000113adeb0:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113adeb4:	910003fd 	mov	x29, sp
ffff8000113adeb8:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adebc:	f90013f5 	str	x21, [sp,#32]
ffff8000113adec0:	aa0003f3 	mov	x19, x0
ffff8000113adec4:	aa1e03e0 	mov	x0, x30
ffff8000113adec8:	f9001fa1 	str	x1, [x29,#56]
ffff8000113adecc:	94000000 	bl	0 <_mcount>
			ffff8000113adecc: R_AARCH64_CALL26	_mcount
	err = __dev_set_promiscuity(dev, inc, true);
ffff8000113aded0:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113aded4:	aa1303e0 	mov	x0, x19
ffff8000113aded8:	52800022 	mov	w2, #0x1                   	// #1
	unsigned int old_flags = dev->flags;
ffff8000113adedc:	b9422a75 	ldr	w21, [x19,#552]
	err = __dev_set_promiscuity(dev, inc, true);
ffff8000113adee0:	97fffea8 	bl	ffff8000113ad980 <__dev_set_promiscuity>
ffff8000113adee4:	2a0003f4 	mov	w20, w0
	if (err < 0)
ffff8000113adee8:	37f800d4 	tbnz	w20, #31, ffff8000113adf00 <dev_set_promiscuity+0x50>
	if (dev->flags != old_flags)
ffff8000113adeec:	b9422a60 	ldr	w0, [x19,#552]
ffff8000113adef0:	6b15001f 	cmp	w0, w21
ffff8000113adef4:	54000060 	b.eq	ffff8000113adf00 <dev_set_promiscuity+0x50>
		dev_set_rx_mode(dev);
ffff8000113adef8:	aa1303e0 	mov	x0, x19
ffff8000113adefc:	94000000 	bl	ffff8000113adc00 <dev_set_rx_mode>
			ffff8000113adefc: R_AARCH64_CALL26	dev_set_rx_mode
}
ffff8000113adf00:	2a1403e0 	mov	w0, w20
ffff8000113adf04:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113adf08:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113adf0c:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113adf10:	d65f03c0 	ret

ffff8000113adf14 <__dev_set_allmulti>:
{
ffff8000113adf14:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113adf18:	910003fd 	mov	x29, sp
ffff8000113adf1c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113adf20:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113adf24:	f9001bf7 	str	x23, [sp,#48]
ffff8000113adf28:	aa0003f3 	mov	x19, x0
ffff8000113adf2c:	aa1e03e0 	mov	x0, x30
ffff8000113adf30:	2a0103f4 	mov	w20, w1
ffff8000113adf34:	53001c56 	uxtb	w22, w2
ffff8000113adf38:	94000000 	bl	0 <_mcount>
			ffff8000113adf38: R_AARCH64_CALL26	_mcount
	unsigned int old_flags = dev->flags, old_gflags = dev->gflags;
ffff8000113adf3c:	b9422a75 	ldr	w21, [x19,#552]
ffff8000113adf40:	79446277 	ldrh	w23, [x19,#560]
	ASSERT_RTNL();
ffff8000113adf44:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113adf44: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113adf48:	34000520 	cbz	w0, ffff8000113adfec <__dev_set_allmulti+0xd8>
	dev->flags |= IFF_ALLMULTI;
ffff8000113adf4c:	b9422a64 	ldr	w4, [x19,#552]
	dev->allmulti += inc;
ffff8000113adf50:	b942d661 	ldr	w1, [x19,#724]
	dev->flags |= IFF_ALLMULTI;
ffff8000113adf54:	32170080 	orr	w0, w4, #0x200
	dev->allmulti += inc;
ffff8000113adf58:	0b010283 	add	w3, w20, w1
	dev->flags |= IFF_ALLMULTI;
ffff8000113adf5c:	b9022a60 	str	w0, [x19,#552]
	dev->allmulti += inc;
ffff8000113adf60:	b902d663 	str	w3, [x19,#724]
	if (dev->allmulti == 0) {
ffff8000113adf64:	35000083 	cbnz	w3, ffff8000113adf74 <__dev_set_allmulti+0x60>
		if (inc < 0)
ffff8000113adf68:	36f80354 	tbz	w20, #31, ffff8000113adfd0 <__dev_set_allmulti+0xbc>
			dev->flags &= ~IFF_ALLMULTI;
ffff8000113adf6c:	12167880 	and	w0, w4, #0xfffffdff
ffff8000113adf70:	b9022a60 	str	w0, [x19,#552]
	if (dev->flags ^ old_flags) {
ffff8000113adf74:	6b0002bf 	cmp	w21, w0
ffff8000113adf78:	54000140 	b.eq	ffff8000113adfa0 <__dev_set_allmulti+0x8c>
	if (ops->ndo_change_rx_flags)
ffff8000113adf7c:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113adf80:	f9401c03 	ldr	x3, [x0,#56]
ffff8000113adf84:	b4000083 	cbz	x3, ffff8000113adf94 <__dev_set_allmulti+0x80>
		ops->ndo_change_rx_flags(dev, flags);
ffff8000113adf88:	aa1303e0 	mov	x0, x19
ffff8000113adf8c:	52804001 	mov	w1, #0x200                 	// #512
ffff8000113adf90:	d63f0060 	blr	x3
		dev_set_rx_mode(dev);
ffff8000113adf94:	aa1303e0 	mov	x0, x19
ffff8000113adf98:	94000000 	bl	ffff8000113adc00 <dev_set_rx_mode>
			ffff8000113adf98: R_AARCH64_CALL26	dev_set_rx_mode
		if (notify)
ffff8000113adf9c:	350000f6 	cbnz	w22, ffff8000113adfb8 <__dev_set_allmulti+0xa4>
	return 0;
ffff8000113adfa0:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113adfa4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113adfa8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113adfac:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113adfb0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113adfb4:	d65f03c0 	ret
			__dev_notify_flags(dev, old_flags,
ffff8000113adfb8:	79446262 	ldrh	w2, [x19,#560]
ffff8000113adfbc:	aa1303e0 	mov	x0, x19
ffff8000113adfc0:	2a1503e1 	mov	w1, w21
ffff8000113adfc4:	4a170042 	eor	w2, w2, w23
ffff8000113adfc8:	94000000 	bl	ffff8000113ad8a8 <__dev_notify_flags>
			ffff8000113adfc8: R_AARCH64_CALL26	__dev_notify_flags
ffff8000113adfcc:	17fffff5 	b	ffff8000113adfa0 <__dev_set_allmulti+0x8c>
			pr_warn("%s: allmulti touches roof, set allmulti failed. allmulti feature of device might be broken.\n",
ffff8000113adfd0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adfd0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x870
			dev->allmulti -= inc;
ffff8000113adfd4:	b902d661 	str	w1, [x19,#724]
			pr_warn("%s: allmulti touches roof, set allmulti failed. allmulti feature of device might be broken.\n",
ffff8000113adfd8:	91000000 	add	x0, x0, #0x0
			ffff8000113adfd8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x870
ffff8000113adfdc:	aa1303e1 	mov	x1, x19
ffff8000113adfe0:	94000000 	bl	0 <printk>
			ffff8000113adfe0: R_AARCH64_CALL26	printk
			return -EOVERFLOW;
ffff8000113adfe4:	12800940 	mov	w0, #0xffffffb5            	// #-75
ffff8000113adfe8:	17ffffef 	b	ffff8000113adfa4 <__dev_set_allmulti+0x90>
	ASSERT_RTNL();
ffff8000113adfec:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adfec: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113adff0:	91000063 	add	x3, x3, #0x0
			ffff8000113adff0: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113adff4:	39406860 	ldrb	w0, [x3,#26]
ffff8000113adff8:	35fffaa0 	cbnz	w0, ffff8000113adf4c <__dev_set_allmulti+0x38>
ffff8000113adffc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113adffc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113ae000:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae000: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113ae004:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113ae008:	91000000 	add	x0, x0, #0x0
			ffff8000113ae008: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113ae00c:	91000021 	add	x1, x1, #0x0
			ffff8000113ae00c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113ae010:	5283e662 	mov	w2, #0x1f33                	// #7987
ffff8000113ae014:	39006864 	strb	w4, [x3,#26]
ffff8000113ae018:	94000000 	bl	0 <__warn_printk>
			ffff8000113ae018: R_AARCH64_CALL26	__warn_printk
ffff8000113ae01c:	d4210000 	brk	#0x800
ffff8000113ae020:	17ffffcb 	b	ffff8000113adf4c <__dev_set_allmulti+0x38>

ffff8000113ae024 <dev_set_allmulti>:
{
ffff8000113ae024:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113ae028:	910003fd 	mov	x29, sp
ffff8000113ae02c:	f9000bf3 	str	x19, [sp,#16]
ffff8000113ae030:	aa0003f3 	mov	x19, x0
ffff8000113ae034:	aa1e03e0 	mov	x0, x30
ffff8000113ae038:	f90017a1 	str	x1, [x29,#40]
ffff8000113ae03c:	94000000 	bl	0 <_mcount>
			ffff8000113ae03c: R_AARCH64_CALL26	_mcount
	return __dev_set_allmulti(dev, inc, true);
ffff8000113ae040:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113ae044:	aa1303e0 	mov	x0, x19
ffff8000113ae048:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113ae04c:	97ffffb2 	bl	ffff8000113adf14 <__dev_set_allmulti>
}
ffff8000113ae050:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113ae054:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ae058:	d65f03c0 	ret

ffff8000113ae05c <__dev_change_flags>:
{
ffff8000113ae05c:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113ae060:	910003fd 	mov	x29, sp
ffff8000113ae064:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae068:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae06c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ae070:	f90023f9 	str	x25, [sp,#64]
ffff8000113ae074:	aa0003f3 	mov	x19, x0
ffff8000113ae078:	aa1e03e0 	mov	x0, x30
ffff8000113ae07c:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113ae07c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae080:	2a0103f4 	mov	w20, w1
ffff8000113ae084:	aa0203f9 	mov	x25, x2
ffff8000113ae088:	94000000 	bl	0 <_mcount>
			ffff8000113ae088: R_AARCH64_CALL26	_mcount
ffff8000113ae08c:	f94002a0 	ldr	x0, [x21]
			ffff8000113ae08c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	unsigned int old_flags = dev->flags;
ffff8000113ae090:	b9422a78 	ldr	w24, [x19,#552]
{
ffff8000113ae094:	f90037a0 	str	x0, [x29,#104]
	ASSERT_RTNL();
ffff8000113ae098:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113ae098: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113ae09c:	34000be0 	cbz	w0, ffff8000113ae218 <__dev_change_flags+0x1bc>
		     (dev->flags & (IFF_UP | IFF_VOLATILE | IFF_PROMISC |
ffff8000113ae0a0:	b9422a62 	ldr	w2, [x19,#552]
ffff8000113ae0a4:	5281eb60 	mov	w0, #0xf5b                 	// #3931
ffff8000113ae0a8:	72a000e0 	movk	w0, #0x7, lsl #16
	dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
ffff8000113ae0ac:	529e1481 	mov	w1, #0xf0a4                	// #61604
ffff8000113ae0b0:	0a010281 	and	w1, w20, w1
		     (dev->flags & (IFF_UP | IFF_VOLATILE | IFF_PROMISC |
ffff8000113ae0b4:	0a000040 	and	w0, w2, w0
			       IFF_AUTOMEDIA)) |
ffff8000113ae0b8:	2a000020 	orr	w0, w1, w0
	dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
ffff8000113ae0bc:	b9022a60 	str	w0, [x19,#552]
	if ((old_flags ^ flags) & IFF_MULTICAST)
ffff8000113ae0c0:	4a180296 	eor	w22, w20, w24
ffff8000113ae0c4:	366000f6 	tbz	w22, #12, ffff8000113ae0e0 <__dev_change_flags+0x84>
	if (ops->ndo_change_rx_flags)
ffff8000113ae0c8:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113ae0cc:	f9401c02 	ldr	x2, [x0,#56]
ffff8000113ae0d0:	b4000082 	cbz	x2, ffff8000113ae0e0 <__dev_change_flags+0x84>
		ops->ndo_change_rx_flags(dev, flags);
ffff8000113ae0d4:	aa1303e0 	mov	x0, x19
ffff8000113ae0d8:	52820001 	mov	w1, #0x1000                	// #4096
ffff8000113ae0dc:	d63f0040 	blr	x2
	dev_set_rx_mode(dev);
ffff8000113ae0e0:	aa1303e0 	mov	x0, x19
ffff8000113ae0e4:	94000000 	bl	ffff8000113adc00 <dev_set_rx_mode>
			ffff8000113ae0e4: R_AARCH64_CALL26	dev_set_rx_mode
	ret = 0;
ffff8000113ae0e8:	52800017 	mov	w23, #0x0                   	// #0
	if ((old_flags ^ flags) & IFF_UP) {
ffff8000113ae0ec:	36000376 	tbz	w22, #0, ffff8000113ae158 <__dev_change_flags+0xfc>
		if (old_flags & IFF_UP)
ffff8000113ae0f0:	36000898 	tbz	w24, #0, ffff8000113ae200 <__dev_change_flags+0x1a4>
	LIST_HEAD(single);
ffff8000113ae0f4:	910163b6 	add	x22, x29, #0x58
	list_add(&dev->close_list, &single);
ffff8000113ae0f8:	9101e277 	add	x23, x19, #0x78
	if (!__list_add_valid(new, prev, next))
ffff8000113ae0fc:	aa1703e0 	mov	x0, x23
ffff8000113ae100:	aa1603e1 	mov	x1, x22
ffff8000113ae104:	aa1603e2 	mov	x2, x22
	LIST_HEAD(single);
ffff8000113ae108:	f9002fb6 	str	x22, [x29,#88]
ffff8000113ae10c:	f90033b6 	str	x22, [x29,#96]
ffff8000113ae110:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ae110: R_AARCH64_CALL26	__list_add_valid
ffff8000113ae114:	53001c00 	uxtb	w0, w0
ffff8000113ae118:	340000a0 	cbz	w0, ffff8000113ae12c <__dev_change_flags+0xd0>
	new->next = next;
ffff8000113ae11c:	f9003e76 	str	x22, [x19,#120]
	next->prev = new;
ffff8000113ae120:	f90033b7 	str	x23, [x29,#96]
	new->prev = prev;
ffff8000113ae124:	f9004276 	str	x22, [x19,#128]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ae128:	f9002fb7 	str	x23, [x29,#88]
	__dev_close_many(&single);
ffff8000113ae12c:	aa1603e0 	mov	x0, x22
ffff8000113ae130:	97ffc8d4 	bl	ffff8000113a0480 <__dev_close_many>
	if (!__list_del_entry_valid(entry))
ffff8000113ae134:	aa1603e0 	mov	x0, x22
ffff8000113ae138:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ae138: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ae13c:	53001c00 	uxtb	w0, w0
ffff8000113ae140:	340000a0 	cbz	w0, ffff8000113ae154 <__dev_change_flags+0xf8>
	__list_del(entry->prev, entry->next);
ffff8000113ae144:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113ae148:	f9402fa1 	ldr	x1, [x29,#88]
	next->prev = prev;
ffff8000113ae14c:	f9000420 	str	x0, [x1,#8]
ffff8000113ae150:	f9000001 	str	x1, [x0]
	ret = 0;
ffff8000113ae154:	52800017 	mov	w23, #0x0                   	// #0
	if ((flags ^ dev->gflags) & IFF_PROMISC) {
ffff8000113ae158:	79446261 	ldrh	w1, [x19,#560]
ffff8000113ae15c:	4a010282 	eor	w2, w20, w1
ffff8000113ae160:	36400262 	tbz	w2, #8, ffff8000113ae1ac <__dev_change_flags+0x150>
		int inc = (flags & IFF_PROMISC) ? 1 : -1;
ffff8000113ae164:	12180280 	and	w0, w20, #0x100
		dev->gflags ^= IFF_PROMISC;
ffff8000113ae168:	52180021 	eor	w1, w1, #0x100
		int inc = (flags & IFF_PROMISC) ? 1 : -1;
ffff8000113ae16c:	6b1f001f 	cmp	w0, wzr
		dev->gflags ^= IFF_PROMISC;
ffff8000113ae170:	79046261 	strh	w1, [x19,#560]
		if (__dev_set_promiscuity(dev, inc, false) >= 0)
ffff8000113ae174:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113ae178:	1a9f0421 	csinc	w1, w1, wzr, eq
ffff8000113ae17c:	aa1303e0 	mov	x0, x19
ffff8000113ae180:	52800002 	mov	w2, #0x0                   	// #0
		unsigned int old_flags = dev->flags;
ffff8000113ae184:	b9422a76 	ldr	w22, [x19,#552]
		if (__dev_set_promiscuity(dev, inc, false) >= 0)
ffff8000113ae188:	97fffdfe 	bl	ffff8000113ad980 <__dev_set_promiscuity>
ffff8000113ae18c:	37f800c0 	tbnz	w0, #31, ffff8000113ae1a4 <__dev_change_flags+0x148>
			if (dev->flags != old_flags)
ffff8000113ae190:	b9422a60 	ldr	w0, [x19,#552]
ffff8000113ae194:	6b16001f 	cmp	w0, w22
ffff8000113ae198:	54000060 	b.eq	ffff8000113ae1a4 <__dev_change_flags+0x148>
				dev_set_rx_mode(dev);
ffff8000113ae19c:	aa1303e0 	mov	x0, x19
ffff8000113ae1a0:	94000000 	bl	ffff8000113adc00 <dev_set_rx_mode>
			ffff8000113ae1a0: R_AARCH64_CALL26	dev_set_rx_mode
ffff8000113ae1a4:	79446261 	ldrh	w1, [x19,#560]
ffff8000113ae1a8:	4a010282 	eor	w2, w20, w1
	if ((flags ^ dev->gflags) & IFF_ALLMULTI) {
ffff8000113ae1ac:	36480142 	tbz	w2, #9, ffff8000113ae1d4 <__dev_change_flags+0x178>
		dev->gflags ^= IFF_ALLMULTI;
ffff8000113ae1b0:	52170021 	eor	w1, w1, #0x200
		int inc = (flags & IFF_ALLMULTI) ? 1 : -1;
ffff8000113ae1b4:	12170294 	and	w20, w20, #0x200
ffff8000113ae1b8:	6b1f029f 	cmp	w20, wzr
		dev->gflags ^= IFF_ALLMULTI;
ffff8000113ae1bc:	79046261 	strh	w1, [x19,#560]
		__dev_set_allmulti(dev, inc, false);
ffff8000113ae1c0:	12800001 	mov	w1, #0xffffffff            	// #-1
ffff8000113ae1c4:	aa1303e0 	mov	x0, x19
ffff8000113ae1c8:	1a9f0421 	csinc	w1, w1, wzr, eq
ffff8000113ae1cc:	52800002 	mov	w2, #0x0                   	// #0
ffff8000113ae1d0:	97ffff51 	bl	ffff8000113adf14 <__dev_set_allmulti>
}
ffff8000113ae1d4:	f94037a2 	ldr	x2, [x29,#104]
ffff8000113ae1d8:	f94002a1 	ldr	x1, [x21]
			ffff8000113ae1d8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae1dc:	2a1703e0 	mov	w0, w23
ffff8000113ae1e0:	eb01005f 	cmp	x2, x1
ffff8000113ae1e4:	54000181 	b.ne	ffff8000113ae214 <__dev_change_flags+0x1b8>
ffff8000113ae1e8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae1ec:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae1f0:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ae1f4:	f94023f9 	ldr	x25, [sp,#64]
ffff8000113ae1f8:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113ae1fc:	d65f03c0 	ret
			ret = __dev_open(dev, extack);
ffff8000113ae200:	aa1303e0 	mov	x0, x19
ffff8000113ae204:	aa1903e1 	mov	x1, x25
ffff8000113ae208:	97fffea0 	bl	ffff8000113adc88 <__dev_open>
ffff8000113ae20c:	2a0003f7 	mov	w23, w0
ffff8000113ae210:	17ffffd2 	b	ffff8000113ae158 <__dev_change_flags+0xfc>
}
ffff8000113ae214:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae214: R_AARCH64_CALL26	__stack_chk_fail
	ASSERT_RTNL();
ffff8000113ae218:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae218: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113ae21c:	91000063 	add	x3, x3, #0x0
			ffff8000113ae21c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113ae220:	39406c60 	ldrb	w0, [x3,#27]
ffff8000113ae224:	35fff3e0 	cbnz	w0, ffff8000113ae0a0 <__dev_change_flags+0x44>
ffff8000113ae228:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae228: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113ae22c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae22c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113ae230:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113ae234:	91000000 	add	x0, x0, #0x0
			ffff8000113ae234: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113ae238:	91000021 	add	x1, x1, #0x0
			ffff8000113ae238: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113ae23c:	5283f602 	mov	w2, #0x1fb0                	// #8112
ffff8000113ae240:	39006c64 	strb	w4, [x3,#27]
ffff8000113ae244:	94000000 	bl	0 <__warn_printk>
			ffff8000113ae244: R_AARCH64_CALL26	__warn_printk
ffff8000113ae248:	d4210000 	brk	#0x800
ffff8000113ae24c:	17ffff95 	b	ffff8000113ae0a0 <__dev_change_flags+0x44>

ffff8000113ae250 <dev_change_flags>:
{
ffff8000113ae250:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113ae254:	910003fd 	mov	x29, sp
ffff8000113ae258:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae25c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae260:	aa0003f3 	mov	x19, x0
ffff8000113ae264:	aa1e03e0 	mov	x0, x30
ffff8000113ae268:	f9001fa1 	str	x1, [x29,#56]
ffff8000113ae26c:	f9001ba2 	str	x2, [x29,#48]
ffff8000113ae270:	94000000 	bl	0 <_mcount>
			ffff8000113ae270: R_AARCH64_CALL26	_mcount
	ret = __dev_change_flags(dev, flags, extack);
ffff8000113ae274:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113ae278:	f9401ba2 	ldr	x2, [x29,#48]
ffff8000113ae27c:	aa1303e0 	mov	x0, x19
	unsigned int changes, old_flags = dev->flags, old_gflags = dev->gflags;
ffff8000113ae280:	b9422a75 	ldr	w21, [x19,#552]
ffff8000113ae284:	79446276 	ldrh	w22, [x19,#560]
	ret = __dev_change_flags(dev, flags, extack);
ffff8000113ae288:	94000000 	bl	ffff8000113ae05c <__dev_change_flags>
			ffff8000113ae288: R_AARCH64_CALL26	__dev_change_flags
ffff8000113ae28c:	2a0003f4 	mov	w20, w0
	if (ret < 0)
ffff8000113ae290:	37f80134 	tbnz	w20, #31, ffff8000113ae2b4 <dev_change_flags+0x64>
	changes = (old_flags ^ dev->flags) | (old_gflags ^ dev->gflags);
ffff8000113ae294:	79446260 	ldrh	w0, [x19,#560]
ffff8000113ae298:	b9422a62 	ldr	w2, [x19,#552]
ffff8000113ae29c:	4a160016 	eor	w22, w0, w22
ffff8000113ae2a0:	4a0202a2 	eor	w2, w21, w2
	__dev_notify_flags(dev, old_flags, changes);
ffff8000113ae2a4:	aa1303e0 	mov	x0, x19
ffff8000113ae2a8:	2a1503e1 	mov	w1, w21
ffff8000113ae2ac:	2a0202c2 	orr	w2, w22, w2
ffff8000113ae2b0:	94000000 	bl	ffff8000113ad8a8 <__dev_notify_flags>
			ffff8000113ae2b0: R_AARCH64_CALL26	__dev_notify_flags
}
ffff8000113ae2b4:	2a1403e0 	mov	w0, w20
ffff8000113ae2b8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae2bc:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae2c0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113ae2c4:	d65f03c0 	ret

ffff8000113ae2c8 <dev_validate_mtu>:
{
ffff8000113ae2c8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113ae2cc:	910003fd 	mov	x29, sp
ffff8000113ae2d0:	f9000bf3 	str	x19, [sp,#16]
ffff8000113ae2d4:	aa0003f3 	mov	x19, x0
ffff8000113ae2d8:	aa1e03e0 	mov	x0, x30
ffff8000113ae2dc:	f90017a1 	str	x1, [x29,#40]
ffff8000113ae2e0:	f90013a2 	str	x2, [x29,#32]
ffff8000113ae2e4:	94000000 	bl	0 <_mcount>
			ffff8000113ae2e4: R_AARCH64_CALL26	_mcount
	if (new_mtu < 0 || new_mtu < dev->min_mtu) {
ffff8000113ae2e8:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113ae2ec:	f94013a2 	ldr	x2, [x29,#32]
ffff8000113ae2f0:	37f80081 	tbnz	w1, #31, ffff8000113ae300 <dev_validate_mtu+0x38>
ffff8000113ae2f4:	b9423e60 	ldr	w0, [x19,#572]
ffff8000113ae2f8:	6b00003f 	cmp	w1, w0
ffff8000113ae2fc:	54000142 	b.cs	ffff8000113ae324 <dev_validate_mtu+0x5c>
		NL_SET_ERR_MSG(extack, "mtu less than device minimum");
ffff8000113ae300:	b40002e2 	cbz	x2, ffff8000113ae35c <dev_validate_mtu+0x94>
ffff8000113ae304:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae304: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113ae308:	91000000 	add	x0, x0, #0x0
			ffff8000113ae308: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113ae30c:	91024000 	add	x0, x0, #0x90
ffff8000113ae310:	f9000040 	str	x0, [x2]
		return -EINVAL;
ffff8000113ae314:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113ae318:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113ae31c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ae320:	d65f03c0 	ret
	if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
ffff8000113ae324:	b9424263 	ldr	w3, [x19,#576]
	return 0;
ffff8000113ae328:	52800000 	mov	w0, #0x0                   	// #0
	if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
ffff8000113ae32c:	34ffff63 	cbz	w3, ffff8000113ae318 <dev_validate_mtu+0x50>
ffff8000113ae330:	6b03003f 	cmp	w1, w3
ffff8000113ae334:	54ffff29 	b.ls	ffff8000113ae318 <dev_validate_mtu+0x50>
		NL_SET_ERR_MSG(extack, "mtu greater than device maximum");
ffff8000113ae338:	b4000122 	cbz	x2, ffff8000113ae35c <dev_validate_mtu+0x94>
ffff8000113ae33c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae33c: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113ae340:	91000000 	add	x0, x0, #0x0
			ffff8000113ae340: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113ae344:	9102c000 	add	x0, x0, #0xb0
ffff8000113ae348:	f9000040 	str	x0, [x2]
}
ffff8000113ae34c:	f9400bf3 	ldr	x19, [sp,#16]
		return -EINVAL;
ffff8000113ae350:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113ae354:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ae358:	d65f03c0 	ret
ffff8000113ae35c:	f9400bf3 	ldr	x19, [sp,#16]
		return -EINVAL;
ffff8000113ae360:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113ae364:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113ae368:	d65f03c0 	ret

ffff8000113ae36c <dev_set_mtu_ext>:
{
ffff8000113ae36c:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113ae370:	910003fd 	mov	x29, sp
ffff8000113ae374:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae378:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae37c:	f9001bf7 	str	x23, [sp,#48]
ffff8000113ae380:	aa0003f3 	mov	x19, x0
ffff8000113ae384:	aa1e03e0 	mov	x0, x30
ffff8000113ae388:	2a0103f4 	mov	w20, w1
ffff8000113ae38c:	f90027a2 	str	x2, [x29,#72]
ffff8000113ae390:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113ae390: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae394:	94000000 	bl	0 <_mcount>
			ffff8000113ae394: R_AARCH64_CALL26	_mcount
ffff8000113ae398:	f94002a1 	ldr	x1, [x21]
			ffff8000113ae398: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (new_mtu == dev->mtu)
ffff8000113ae39c:	b9423a60 	ldr	w0, [x19,#568]
{
ffff8000113ae3a0:	f90037a1 	str	x1, [x29,#104]
	if (new_mtu == dev->mtu)
ffff8000113ae3a4:	6b00029f 	cmp	w20, w0
ffff8000113ae3a8:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113ae3ac:	54000560 	b.eq	ffff8000113ae458 <dev_set_mtu_ext+0xec>
	if (new_mtu < 0 || new_mtu < dev->min_mtu) {
ffff8000113ae3b0:	37f80094 	tbnz	w20, #31, ffff8000113ae3c0 <dev_set_mtu_ext+0x54>
ffff8000113ae3b4:	b9423e60 	ldr	w0, [x19,#572]
ffff8000113ae3b8:	6b00029f 	cmp	w20, w0
ffff8000113ae3bc:	54000202 	b.cs	ffff8000113ae3fc <dev_set_mtu_ext+0x90>
		NL_SET_ERR_MSG(extack, "mtu less than device minimum");
ffff8000113ae3c0:	b40000a2 	cbz	x2, ffff8000113ae3d4 <dev_set_mtu_ext+0x68>
ffff8000113ae3c4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae3c4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113ae3c8:	91000000 	add	x0, x0, #0x0
			ffff8000113ae3c8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113ae3cc:	91024000 	add	x0, x0, #0x90
ffff8000113ae3d0:	f9000040 	str	x0, [x2]
		return 0;
ffff8000113ae3d4:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113ae3d8:	f94037a2 	ldr	x2, [x29,#104]
ffff8000113ae3dc:	f94002a1 	ldr	x1, [x21]
			ffff8000113ae3dc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae3e0:	eb01005f 	cmp	x2, x1
ffff8000113ae3e4:	54000901 	b.ne	ffff8000113ae504 <dev_set_mtu_ext+0x198>
ffff8000113ae3e8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae3ec:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae3f0:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113ae3f4:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113ae3f8:	d65f03c0 	ret
	if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
ffff8000113ae3fc:	b9424260 	ldr	w0, [x19,#576]
ffff8000113ae400:	34000120 	cbz	w0, ffff8000113ae424 <dev_set_mtu_ext+0xb8>
ffff8000113ae404:	6b00029f 	cmp	w20, w0
ffff8000113ae408:	540000e9 	b.ls	ffff8000113ae424 <dev_set_mtu_ext+0xb8>
		NL_SET_ERR_MSG(extack, "mtu greater than device maximum");
ffff8000113ae40c:	b4fffe42 	cbz	x2, ffff8000113ae3d4 <dev_set_mtu_ext+0x68>
ffff8000113ae410:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae410: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113ae414:	91000000 	add	x0, x0, #0x0
			ffff8000113ae414: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113ae418:	9102c000 	add	x0, x0, #0xb0
ffff8000113ae41c:	f9000040 	str	x0, [x2]
ffff8000113ae420:	17ffffed 	b	ffff8000113ae3d4 <dev_set_mtu_ext+0x68>
ffff8000113ae424:	f9402260 	ldr	x0, [x19,#64]
	if (!netif_device_present(dev))
ffff8000113ae428:	36080660 	tbz	w0, #1, ffff8000113ae4f4 <dev_set_mtu_ext+0x188>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ae42c:	d28002e0 	mov	x0, #0x17                  	// #23
ffff8000113ae430:	910143a1 	add	x1, x29, #0x50
	struct netdev_notifier_info info = {
ffff8000113ae434:	f9002bb3 	str	x19, [x29,#80]
ffff8000113ae438:	f9002fbf 	str	xzr, [x29,#88]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ae43c:	97ffc72f 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113ae440:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113ae444:	7100041f 	cmp	w0, #0x1
ffff8000113ae448:	540000cd 	b.le	ffff8000113ae460 <dev_set_mtu_ext+0xf4>
ffff8000113ae44c:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113ae450:	4b000020 	sub	w0, w1, w0
ffff8000113ae454:	17ffffe1 	b	ffff8000113ae3d8 <dev_set_mtu_ext+0x6c>
		return 0;
ffff8000113ae458:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ae45c:	17ffffdf 	b	ffff8000113ae3d8 <dev_set_mtu_ext+0x6c>
	if (ops->ndo_change_mtu)
ffff8000113ae460:	f940fa60 	ldr	x0, [x19,#496]
	orig_mtu = dev->mtu;
ffff8000113ae464:	b9423a76 	ldr	w22, [x19,#568]
	if (ops->ndo_change_mtu)
ffff8000113ae468:	f9403402 	ldr	x2, [x0,#104]
ffff8000113ae46c:	b40000c2 	cbz	x2, ffff8000113ae484 <dev_set_mtu_ext+0x118>
		return ops->ndo_change_mtu(dev, new_mtu);
ffff8000113ae470:	aa1303e0 	mov	x0, x19
ffff8000113ae474:	2a1403e1 	mov	w1, w20
ffff8000113ae478:	d63f0040 	blr	x2
	if (!err) {
ffff8000113ae47c:	35fffae0 	cbnz	w0, ffff8000113ae3d8 <dev_set_mtu_ext+0x6c>
ffff8000113ae480:	14000002 	b	ffff8000113ae488 <dev_set_mtu_ext+0x11c>
	case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
ffff8000113ae484:	b9023a74 	str	w20, [x19,#568]
	struct netdev_notifier_info_ext info = {
ffff8000113ae488:	a9057fbf 	stp	xzr, xzr, [x29,#80]
ffff8000113ae48c:	f90033bf 	str	xzr, [x29,#96]
	return call_netdevice_notifiers_info(val, &info.info);
ffff8000113ae490:	d28000e0 	mov	x0, #0x7                   	// #7
ffff8000113ae494:	910143a1 	add	x1, x29, #0x50
	struct netdev_notifier_info_ext info = {
ffff8000113ae498:	f9002bb3 	str	x19, [x29,#80]
ffff8000113ae49c:	b90063b6 	str	w22, [x29,#96]
	return call_netdevice_notifiers_info(val, &info.info);
ffff8000113ae4a0:	97ffc716 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113ae4a4:	12107817 	and	w23, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113ae4a8:	710006ff 	cmp	w23, #0x1
ffff8000113ae4ac:	54fffd6d 	b.le	ffff8000113ae458 <dev_set_mtu_ext+0xec>
	if (ops->ndo_change_mtu)
ffff8000113ae4b0:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113ae4b4:	f9403402 	ldr	x2, [x0,#104]
ffff8000113ae4b8:	b4000222 	cbz	x2, ffff8000113ae4fc <dev_set_mtu_ext+0x190>
		return ops->ndo_change_mtu(dev, new_mtu);
ffff8000113ae4bc:	aa1303e0 	mov	x0, x19
ffff8000113ae4c0:	2a1603e1 	mov	w1, w22
ffff8000113ae4c4:	d63f0040 	blr	x2
ffff8000113ae4c8:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113ae4cc:	4b170017 	sub	w23, w0, w23
	struct netdev_notifier_info_ext info = {
ffff8000113ae4d0:	a9057fbf 	stp	xzr, xzr, [x29,#80]
ffff8000113ae4d4:	f90033bf 	str	xzr, [x29,#96]
	return call_netdevice_notifiers_info(val, &info.info);
ffff8000113ae4d8:	d28000e0 	mov	x0, #0x7                   	// #7
ffff8000113ae4dc:	910143a1 	add	x1, x29, #0x50
	struct netdev_notifier_info_ext info = {
ffff8000113ae4e0:	f9002bb3 	str	x19, [x29,#80]
ffff8000113ae4e4:	b90063b4 	str	w20, [x29,#96]
	return call_netdevice_notifiers_info(val, &info.info);
ffff8000113ae4e8:	97ffc704 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113ae4ec:	2a1703e0 	mov	w0, w23
ffff8000113ae4f0:	17ffffba 	b	ffff8000113ae3d8 <dev_set_mtu_ext+0x6c>
		return -ENODEV;
ffff8000113ae4f4:	12800240 	mov	w0, #0xffffffed            	// #-19
ffff8000113ae4f8:	17ffffb8 	b	ffff8000113ae3d8 <dev_set_mtu_ext+0x6c>
ffff8000113ae4fc:	b9023a76 	str	w22, [x19,#568]
ffff8000113ae500:	17fffff2 	b	ffff8000113ae4c8 <dev_set_mtu_ext+0x15c>
}
ffff8000113ae504:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae504: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ae508 <dev_set_mtu>:
{
ffff8000113ae508:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
ffff8000113ae50c:	910003fd 	mov	x29, sp
ffff8000113ae510:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae514:	f90013f5 	str	x21, [sp,#32]
ffff8000113ae518:	aa0003f5 	mov	x21, x0
ffff8000113ae51c:	aa1e03e0 	mov	x0, x30
ffff8000113ae520:	f9001fa1 	str	x1, [x29,#56]
ffff8000113ae524:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113ae524: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae528:	94000000 	bl	0 <_mcount>
			ffff8000113ae528: R_AARCH64_CALL26	_mcount
ffff8000113ae52c:	f9400263 	ldr	x3, [x19]
			ffff8000113ae52c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	err = dev_set_mtu_ext(dev, new_mtu, &extack);
ffff8000113ae530:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113ae534:	aa1503e0 	mov	x0, x21
ffff8000113ae538:	910103a2 	add	x2, x29, #0x40
{
ffff8000113ae53c:	f90037a3 	str	x3, [x29,#104]
	return __builtin_memset(p, c, size);
ffff8000113ae540:	a9047fbf 	stp	xzr, xzr, [x29,#64]
ffff8000113ae544:	a9057fbf 	stp	xzr, xzr, [x29,#80]
ffff8000113ae548:	f90033bf 	str	xzr, [x29,#96]
	err = dev_set_mtu_ext(dev, new_mtu, &extack);
ffff8000113ae54c:	94000000 	bl	ffff8000113ae36c <dev_set_mtu_ext>
			ffff8000113ae54c: R_AARCH64_CALL26	dev_set_mtu_ext
ffff8000113ae550:	2a0003f4 	mov	w20, w0
	if (err && extack._msg)
ffff8000113ae554:	340000a0 	cbz	w0, ffff8000113ae568 <dev_set_mtu+0x60>
ffff8000113ae558:	f94023a0 	ldr	x0, [x29,#64]
ffff8000113ae55c:	b4000060 	cbz	x0, ffff8000113ae568 <dev_set_mtu+0x60>
		net_err_ratelimited("%s: %s\n", dev->name, extack._msg);
ffff8000113ae560:	94000000 	bl	0 <net_ratelimit>
			ffff8000113ae560: R_AARCH64_CALL26	net_ratelimit
ffff8000113ae564:	35000140 	cbnz	w0, ffff8000113ae58c <dev_set_mtu+0x84>
}
ffff8000113ae568:	f94037a2 	ldr	x2, [x29,#104]
ffff8000113ae56c:	f9400261 	ldr	x1, [x19]
			ffff8000113ae56c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae570:	2a1403e0 	mov	w0, w20
ffff8000113ae574:	eb01005f 	cmp	x2, x1
ffff8000113ae578:	54000161 	b.ne	ffff8000113ae5a4 <dev_set_mtu+0x9c>
ffff8000113ae57c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae580:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113ae584:	a8c77bfd 	ldp	x29, x30, [sp],#112
ffff8000113ae588:	d65f03c0 	ret
		net_err_ratelimited("%s: %s\n", dev->name, extack._msg);
ffff8000113ae58c:	f94023a2 	ldr	x2, [x29,#64]
ffff8000113ae590:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae590: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x8d0
ffff8000113ae594:	aa1503e1 	mov	x1, x21
ffff8000113ae598:	91000000 	add	x0, x0, #0x0
			ffff8000113ae598: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x8d0
ffff8000113ae59c:	94000000 	bl	0 <printk>
			ffff8000113ae59c: R_AARCH64_CALL26	printk
ffff8000113ae5a0:	17fffff2 	b	ffff8000113ae568 <dev_set_mtu+0x60>
}
ffff8000113ae5a4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae5a4: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ae5a8 <dev_change_tx_queue_len>:
{
ffff8000113ae5a8:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ae5ac:	910003fd 	mov	x29, sp
ffff8000113ae5b0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae5b4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae5b8:	aa0003f3 	mov	x19, x0
ffff8000113ae5bc:	aa1e03e0 	mov	x0, x30
ffff8000113ae5c0:	f9001fa1 	str	x1, [x29,#56]
ffff8000113ae5c4:	94000000 	bl	0 <_mcount>
			ffff8000113ae5c4: R_AARCH64_CALL26	_mcount
	if (new_len != (unsigned int)new_len)
ffff8000113ae5c8:	f9401fa1 	ldr	x1, [x29,#56]
{
ffff8000113ae5cc:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113ae5cc: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae5d0:	f9400280 	ldr	x0, [x20]
			ffff8000113ae5d0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (new_len != (unsigned int)new_len)
ffff8000113ae5d4:	92407c22 	and	x2, x1, #0xffffffff
{
ffff8000113ae5d8:	f9002fa0 	str	x0, [x29,#88]
	if (new_len != (unsigned int)new_len)
ffff8000113ae5dc:	eb01005f 	cmp	x2, x1
	unsigned int orig_len = dev->tx_queue_len;
ffff8000113ae5e0:	b943da75 	ldr	w21, [x19,#984]
	if (new_len != (unsigned int)new_len)
ffff8000113ae5e4:	54000441 	b.ne	ffff8000113ae66c <dev_change_tx_queue_len+0xc4>
	if (new_len != orig_len) {
ffff8000113ae5e8:	eb35405f 	cmp	x2, w21, uxtw
ffff8000113ae5ec:	540003c0 	b.eq	ffff8000113ae664 <dev_change_tx_queue_len+0xbc>
		dev->tx_queue_len = new_len;
ffff8000113ae5f0:	b903da62 	str	w2, [x19,#984]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ae5f4:	d28003c0 	mov	x0, #0x1e                  	// #30
ffff8000113ae5f8:	910123a1 	add	x1, x29, #0x48
	struct netdev_notifier_info info = {
ffff8000113ae5fc:	f90027b3 	str	x19, [x29,#72]
ffff8000113ae600:	f9002bbf 	str	xzr, [x29,#80]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113ae604:	97ffc6bd 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113ae608:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113ae60c:	7100041f 	cmp	w0, #0x1
ffff8000113ae610:	5400022d 	b.le	ffff8000113ae654 <dev_change_tx_queue_len+0xac>
ffff8000113ae614:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113ae618:	4b000036 	sub	w22, w1, w0
	netdev_err(dev, "refused to change device tx_queue_len\n");
ffff8000113ae61c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae61c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x8e0
ffff8000113ae620:	aa1303e0 	mov	x0, x19
ffff8000113ae624:	91000021 	add	x1, x1, #0x0
			ffff8000113ae624: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x8e0
ffff8000113ae628:	94000000 	bl	ffff80001139e8b4 <passthru_features_check+0xc>
			ffff8000113ae628: R_AARCH64_CALL26	netdev_err
	return res;
ffff8000113ae62c:	2a1603e0 	mov	w0, w22
	dev->tx_queue_len = orig_len;
ffff8000113ae630:	b903da75 	str	w21, [x19,#984]
}
ffff8000113ae634:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113ae638:	f9400281 	ldr	x1, [x20]
			ffff8000113ae638: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae63c:	eb01005f 	cmp	x2, x1
ffff8000113ae640:	540001a1 	b.ne	ffff8000113ae674 <dev_change_tx_queue_len+0xcc>
ffff8000113ae644:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae648:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae64c:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113ae650:	d65f03c0 	ret
		res = dev_qdisc_change_tx_queue_len(dev);
ffff8000113ae654:	aa1303e0 	mov	x0, x19
ffff8000113ae658:	94000000 	bl	0 <dev_qdisc_change_tx_queue_len>
			ffff8000113ae658: R_AARCH64_CALL26	dev_qdisc_change_tx_queue_len
ffff8000113ae65c:	2a0003f6 	mov	w22, w0
		if (res)
ffff8000113ae660:	35fffde0 	cbnz	w0, ffff8000113ae61c <dev_change_tx_queue_len+0x74>
	return 0;
ffff8000113ae664:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113ae668:	17fffff3 	b	ffff8000113ae634 <dev_change_tx_queue_len+0x8c>
		return -ERANGE;
ffff8000113ae66c:	12800420 	mov	w0, #0xffffffde            	// #-34
ffff8000113ae670:	17fffff1 	b	ffff8000113ae634 <dev_change_tx_queue_len+0x8c>
}
ffff8000113ae674:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae674: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ae678 <__dev_xdp_query>:
{
ffff8000113ae678:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113ae67c:	910003fd 	mov	x29, sp
ffff8000113ae680:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae684:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae688:	aa0003f6 	mov	x22, x0
ffff8000113ae68c:	aa1e03e0 	mov	x0, x30
ffff8000113ae690:	aa0103f4 	mov	x20, x1
ffff8000113ae694:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113ae694: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae698:	2a0203f5 	mov	w21, w2
ffff8000113ae69c:	94000000 	bl	0 <_mcount>
			ffff8000113ae69c: R_AARCH64_CALL26	_mcount
ffff8000113ae6a0:	f9400261 	ldr	x1, [x19]
			ffff8000113ae6a0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae6a4:	f9002fa1 	str	x1, [x29,#88]
	if (!bpf_op)
ffff8000113ae6a8:	b40002d4 	cbz	x20, ffff8000113ae700 <__dev_xdp_query+0x88>
ffff8000113ae6ac:	9100e3a3 	add	x3, x29, #0x38
ffff8000113ae6b0:	a9007c7f 	stp	xzr, xzr, [x3]
	WARN_ON(bpf_op(dev, &xdp) < 0 && cmd == XDP_QUERY_PROG);
ffff8000113ae6b4:	aa0303e1 	mov	x1, x3
ffff8000113ae6b8:	aa1603e0 	mov	x0, x22
ffff8000113ae6bc:	a9017c7f 	stp	xzr, xzr, [x3,#16]
	xdp.command = cmd;
ffff8000113ae6c0:	b9003bb5 	str	w21, [x29,#56]
	WARN_ON(bpf_op(dev, &xdp) < 0 && cmd == XDP_QUERY_PROG);
ffff8000113ae6c4:	d63f0280 	blr	x20
ffff8000113ae6c8:	37f80140 	tbnz	w0, #31, ffff8000113ae6f0 <__dev_xdp_query+0x78>
	return xdp.prog_id;
ffff8000113ae6cc:	b94043a0 	ldr	w0, [x29,#64]
}
ffff8000113ae6d0:	f9402fa2 	ldr	x2, [x29,#88]
ffff8000113ae6d4:	f9400261 	ldr	x1, [x19]
			ffff8000113ae6d4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae6d8:	eb01005f 	cmp	x2, x1
ffff8000113ae6dc:	54000161 	b.ne	ffff8000113ae708 <__dev_xdp_query+0x90>
ffff8000113ae6e0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae6e4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae6e8:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113ae6ec:	d65f03c0 	ret
	WARN_ON(bpf_op(dev, &xdp) < 0 && cmd == XDP_QUERY_PROG);
ffff8000113ae6f0:	71000abf 	cmp	w21, #0x2
ffff8000113ae6f4:	54fffec1 	b.ne	ffff8000113ae6cc <__dev_xdp_query+0x54>
ffff8000113ae6f8:	d4210000 	brk	#0x800
ffff8000113ae6fc:	17fffff4 	b	ffff8000113ae6cc <__dev_xdp_query+0x54>
		return 0;
ffff8000113ae700:	2a1403e0 	mov	w0, w20
ffff8000113ae704:	17fffff3 	b	ffff8000113ae6d0 <__dev_xdp_query+0x58>
}
ffff8000113ae708:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae708: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ae70c <dev_xdp_install>:
{
ffff8000113ae70c:	a9b77bfd 	stp	x29, x30, [sp,#-144]!
ffff8000113ae710:	910003fd 	mov	x29, sp
ffff8000113ae714:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae718:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae71c:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ae720:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ae724:	f9002bfb 	str	x27, [sp,#80]
ffff8000113ae728:	aa0003fa 	mov	x26, x0
ffff8000113ae72c:	aa1e03e0 	mov	x0, x30
	bool non_hw = !(flags & XDP_FLAGS_HW_MODE);
ffff8000113ae730:	121d0076 	and	w22, w3, #0x8
{
ffff8000113ae734:	2a0303f5 	mov	w21, w3
ffff8000113ae738:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113ae738: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae73c:	aa0103f9 	mov	x25, x1
ffff8000113ae740:	aa0203fb 	mov	x27, x2
ffff8000113ae744:	aa0403f7 	mov	x23, x4
ffff8000113ae748:	94000000 	bl	0 <_mcount>
			ffff8000113ae748: R_AARCH64_CALL26	_mcount
ffff8000113ae74c:	f9400280 	ldr	x0, [x20]
			ffff8000113ae74c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	bool non_hw = !(flags & XDP_FLAGS_HW_MODE);
ffff8000113ae750:	6b1f02df 	cmp	w22, wzr
{
ffff8000113ae754:	f90047a0 	str	x0, [x29,#136]
	bool non_hw = !(flags & XDP_FLAGS_HW_MODE);
ffff8000113ae758:	1a9f17f8 	cset	w24, eq
	struct bpf_prog *prev_prog = NULL;
ffff8000113ae75c:	d2800013 	mov	x19, #0x0                   	// #0
	if (non_hw) {
ffff8000113ae760:	35000438 	cbnz	w24, ffff8000113ae7e4 <dev_xdp_install+0xd8>
ffff8000113ae764:	9101a3a1 	add	x1, x29, #0x68
ffff8000113ae768:	a9007c3f 	stp	xzr, xzr, [x1]
	if (flags & XDP_FLAGS_HW_MODE)
ffff8000113ae76c:	34000076 	cbz	w22, ffff8000113ae778 <dev_xdp_install+0x6c>
		xdp.command = XDP_SETUP_PROG_HW;
ffff8000113ae770:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113ae774:	b9006ba0 	str	w0, [x29,#104]
	xdp.flags = flags;
ffff8000113ae778:	b90073b5 	str	w21, [x29,#112]
	err = bpf_op(dev, &xdp);
ffff8000113ae77c:	aa1a03e0 	mov	x0, x26
	xdp.extack = extack;
ffff8000113ae780:	f90043bb 	str	x27, [x29,#128]
	xdp.prog = prog;
ffff8000113ae784:	f9003fb7 	str	x23, [x29,#120]
	err = bpf_op(dev, &xdp);
ffff8000113ae788:	d63f0320 	blr	x25
ffff8000113ae78c:	2a0003f5 	mov	w21, w0
	if (!err && non_hw)
ffff8000113ae790:	34000200 	cbz	w0, ffff8000113ae7d0 <dev_xdp_install+0xc4>
	if (prev_prog)
ffff8000113ae794:	b4000073 	cbz	x19, ffff8000113ae7a0 <dev_xdp_install+0x94>
		bpf_prog_put(prev_prog);
ffff8000113ae798:	aa1303e0 	mov	x0, x19
ffff8000113ae79c:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113ae79c: R_AARCH64_CALL26	bpf_prog_put
}
ffff8000113ae7a0:	f94047a2 	ldr	x2, [x29,#136]
ffff8000113ae7a4:	f9400281 	ldr	x1, [x20]
			ffff8000113ae7a4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113ae7a8:	2a1503e0 	mov	w0, w21
ffff8000113ae7ac:	eb01005f 	cmp	x2, x1
ffff8000113ae7b0:	540002a1 	b.ne	ffff8000113ae804 <dev_xdp_install+0xf8>
ffff8000113ae7b4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113ae7b8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113ae7bc:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113ae7c0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113ae7c4:	f9402bfb 	ldr	x27, [sp,#80]
ffff8000113ae7c8:	a8c97bfd 	ldp	x29, x30, [sp],#144
ffff8000113ae7cc:	d65f03c0 	ret
	if (!err && non_hw)
ffff8000113ae7d0:	34fffe38 	cbz	w24, ffff8000113ae794 <dev_xdp_install+0x88>
		bpf_prog_change_xdp(prev_prog, prog);
ffff8000113ae7d4:	aa1303e0 	mov	x0, x19
ffff8000113ae7d8:	aa1703e1 	mov	x1, x23
ffff8000113ae7dc:	94000000 	bl	0 <bpf_prog_change_xdp>
			ffff8000113ae7dc: R_AARCH64_CALL26	bpf_prog_change_xdp
ffff8000113ae7e0:	17ffffed 	b	ffff8000113ae794 <dev_xdp_install+0x88>
		prev_prog = bpf_prog_by_id(__dev_xdp_query(dev, bpf_op,
ffff8000113ae7e4:	aa1903e1 	mov	x1, x25
ffff8000113ae7e8:	52800042 	mov	w2, #0x2                   	// #2
ffff8000113ae7ec:	aa1a03e0 	mov	x0, x26
ffff8000113ae7f0:	94000000 	bl	ffff8000113ae678 <__dev_xdp_query>
			ffff8000113ae7f0: R_AARCH64_CALL26	__dev_xdp_query
ffff8000113ae7f4:	94000000 	bl	0 <bpf_prog_by_id>
			ffff8000113ae7f4: R_AARCH64_CALL26	bpf_prog_by_id
			prev_prog = NULL;
ffff8000113ae7f8:	b13ffc1f 	cmn	x0, #0xfff
ffff8000113ae7fc:	9a9f3013 	csel	x19, x0, xzr, cc
ffff8000113ae800:	17ffffd9 	b	ffff8000113ae764 <dev_xdp_install+0x58>
}
ffff8000113ae804:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113ae804: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113ae808 <rollback_registered_many>:
{
ffff8000113ae808:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff8000113ae80c:	910003fd 	mov	x29, sp
ffff8000113ae810:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113ae814:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113ae818:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113ae81c:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113ae820:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113ae824:	aa0003f6 	mov	x22, x0
ffff8000113ae828:	aa1e03e0 	mov	x0, x30
ffff8000113ae82c:	94000000 	bl	0 <_mcount>
			ffff8000113ae82c: R_AARCH64_CALL26	_mcount
ffff8000113ae830:	90000019 	adrp	x25, 0 <__stack_chk_guard>
			ffff8000113ae830: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113ae834:	f9400321 	ldr	x1, [x25]
			ffff8000113ae834: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	BUG_ON(dev_boot_phase);
ffff8000113ae838:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae838: R_AARCH64_ADR_PREL_PG_HI21	.data
	LIST_HEAD(close_head);
ffff8000113ae83c:	9101a3b7 	add	x23, x29, #0x68
	BUG_ON(dev_boot_phase);
ffff8000113ae840:	b9400000 	ldr	w0, [x0]
			ffff8000113ae840: R_AARCH64_LDST32_ABS_LO12_NC	.data
{
ffff8000113ae844:	f9004fa1 	str	x1, [x29,#152]
	LIST_HEAD(close_head);
ffff8000113ae848:	f90037b7 	str	x23, [x29,#104]
ffff8000113ae84c:	f9003bb7 	str	x23, [x29,#112]
	BUG_ON(dev_boot_phase);
ffff8000113ae850:	35002380 	cbnz	w0, ffff8000113aecc0 <rollback_registered_many+0x4b8>
	ASSERT_RTNL();
ffff8000113ae854:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113ae854: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113ae858:	34002680 	cbz	w0, ffff8000113aed28 <rollback_registered_many+0x520>
	list_for_each_entry_safe(dev, tmp, head, unreg_list) {
ffff8000113ae85c:	f94002d3 	ldr	x19, [x22]
ffff8000113ae860:	aa1303f4 	mov	x20, x19
ffff8000113ae864:	f8598695 	ldr	x21, [x20],#-104
ffff8000113ae868:	eb16027f 	cmp	x19, x22
ffff8000113ae86c:	d101a2b5 	sub	x21, x21, #0x68
ffff8000113ae870:	54000760 	b.eq	ffff8000113ae95c <rollback_registered_many+0x154>
			pr_debug("unregister_netdevice: device %s/%p never was registered\n",
ffff8000113ae874:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae874: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113ae878:	91000318 	add	x24, x24, #0x0
			ffff8000113ae878: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113ae87c:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae87c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x908
ffff8000113ae880:	91032318 	add	x24, x24, #0xc8
ffff8000113ae884:	9100035a 	add	x26, x26, #0x0
			ffff8000113ae884: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x908
ffff8000113ae888:	1400001a 	b	ffff8000113ae8f0 <rollback_registered_many+0xe8>
ffff8000113ae88c:	79404700 	ldrh	w0, [x24,#34]
ffff8000113ae890:	37102400 	tbnz	w0, #2, ffff8000113aed10 <rollback_registered_many+0x508>
			WARN_ON(1);
ffff8000113ae894:	d4210000 	brk	#0x800
	if (!__list_del_entry_valid(entry))
ffff8000113ae898:	aa1303e0 	mov	x0, x19
ffff8000113ae89c:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113ae89c: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113ae8a0:	53001c00 	uxtb	w0, w0
ffff8000113ae8a4:	9101a281 	add	x1, x20, #0x68
ffff8000113ae8a8:	340000a0 	cbz	w0, ffff8000113ae8bc <rollback_registered_many+0xb4>
	__list_del(entry->prev, entry->next);
ffff8000113ae8ac:	f9400420 	ldr	x0, [x1,#8]
ffff8000113ae8b0:	f9403682 	ldr	x2, [x20,#104]
	next->prev = prev;
ffff8000113ae8b4:	f9000440 	str	x0, [x2,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113ae8b8:	f9000002 	str	x2, [x0]
	entry->next = LIST_POISON1;
ffff8000113ae8bc:	d2802002 	mov	x2, #0x100                 	// #256
	entry->prev = LIST_POISON2;
ffff8000113ae8c0:	d2802440 	mov	x0, #0x122                 	// #290
	entry->next = LIST_POISON1;
ffff8000113ae8c4:	f2fbd5a2 	movk	x2, #0xdead, lsl #48
	entry->prev = LIST_POISON2;
ffff8000113ae8c8:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
	entry->next = LIST_POISON1;
ffff8000113ae8cc:	f9000022 	str	x2, [x1]
	entry->prev = LIST_POISON2;
ffff8000113ae8d0:	f9000420 	str	x0, [x1,#8]
	list_for_each_entry_safe(dev, tmp, head, unreg_list) {
ffff8000113ae8d4:	aa1503f3 	mov	x19, x21
ffff8000113ae8d8:	f8468e63 	ldr	x3, [x19,#104]!
ffff8000113ae8dc:	eb16027f 	cmp	x19, x22
ffff8000113ae8e0:	d101a063 	sub	x3, x3, #0x68
ffff8000113ae8e4:	54000140 	b.eq	ffff8000113ae90c <rollback_registered_many+0x104>
ffff8000113ae8e8:	aa1503f4 	mov	x20, x21
ffff8000113ae8ec:	aa0303f5 	mov	x21, x3
		if (dev->reg_state == NETREG_UNINITIALIZED) {
ffff8000113ae8f0:	39536283 	ldrb	w3, [x20,#1240]
ffff8000113ae8f4:	34fffcc3 	cbz	w3, ffff8000113ae88c <rollback_registered_many+0x84>
		dev->dismantle = true;
ffff8000113ae8f8:	52800020 	mov	w0, #0x1                   	// #1
ffff8000113ae8fc:	39136680 	strb	w0, [x20,#1241]
		BUG_ON(dev->reg_state != NETREG_REGISTERED);
ffff8000113ae900:	7100047f 	cmp	w3, #0x1
ffff8000113ae904:	54fffe80 	b.eq	ffff8000113ae8d4 <rollback_registered_many+0xcc>
ffff8000113ae908:	d4210000 	brk	#0x800
	list_for_each_entry(dev, head, unreg_list)
ffff8000113ae90c:	f94002d4 	ldr	x20, [x22]
ffff8000113ae910:	eb1402df 	cmp	x22, x20
ffff8000113ae914:	d101a294 	sub	x20, x20, #0x68
ffff8000113ae918:	54000220 	b.eq	ffff8000113ae95c <rollback_registered_many+0x154>
	__list_add(new, head->prev, head);
ffff8000113ae91c:	f94006f5 	ldr	x21, [x23,#8]
		list_add_tail(&dev->close_list, &close_head);
ffff8000113ae920:	9101e293 	add	x19, x20, #0x78
	if (!__list_add_valid(new, prev, next))
ffff8000113ae924:	aa1303e0 	mov	x0, x19
ffff8000113ae928:	aa1503e1 	mov	x1, x21
ffff8000113ae92c:	aa1703e2 	mov	x2, x23
ffff8000113ae930:	94000000 	bl	0 <__list_add_valid>
			ffff8000113ae930: R_AARCH64_CALL26	__list_add_valid
ffff8000113ae934:	53001c00 	uxtb	w0, w0
ffff8000113ae938:	340000a0 	cbz	w0, ffff8000113ae94c <rollback_registered_many+0x144>
	new->next = next;
ffff8000113ae93c:	f9003e97 	str	x23, [x20,#120]
	next->prev = new;
ffff8000113ae940:	f90006f3 	str	x19, [x23,#8]
	new->prev = prev;
ffff8000113ae944:	f9004295 	str	x21, [x20,#128]
ffff8000113ae948:	f90002b3 	str	x19, [x21]
	list_for_each_entry(dev, head, unreg_list)
ffff8000113ae94c:	f9403694 	ldr	x20, [x20,#104]
ffff8000113ae950:	eb1402df 	cmp	x22, x20
ffff8000113ae954:	d101a294 	sub	x20, x20, #0x68
ffff8000113ae958:	54fffe21 	b.ne	ffff8000113ae91c <rollback_registered_many+0x114>
	dev_close_many(&close_head, true);
ffff8000113ae95c:	aa1703e0 	mov	x0, x23
ffff8000113ae960:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113ae964:	94000000 	bl	ffff8000113a3cf0 <dev_close_many>
			ffff8000113ae964: R_AARCH64_CALL26	dev_close_many
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113ae968:	f94002d3 	ldr	x19, [x22]
		dev->reg_state = NETREG_UNREGISTERING;
ffff8000113ae96c:	52800054 	mov	w20, #0x2                   	// #2
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113ae970:	eb1302df 	cmp	x22, x19
ffff8000113ae974:	d101a273 	sub	x19, x19, #0x68
ffff8000113ae978:	54000100 	b.eq	ffff8000113ae998 <rollback_registered_many+0x190>
		unlist_netdevice(dev);
ffff8000113ae97c:	aa1303e0 	mov	x0, x19
ffff8000113ae980:	97ffd3bc 	bl	ffff8000113a3870 <unlist_netdevice>
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113ae984:	f9403660 	ldr	x0, [x19,#104]
		dev->reg_state = NETREG_UNREGISTERING;
ffff8000113ae988:	39136274 	strb	w20, [x19,#1240]
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113ae98c:	eb0002df 	cmp	x22, x0
ffff8000113ae990:	d101a013 	sub	x19, x0, #0x68
ffff8000113ae994:	54ffff41 	b.ne	ffff8000113ae97c <rollback_registered_many+0x174>
ffff8000113ae998:	90000018 	adrp	x24, 0 <nr_cpu_ids>
			ffff8000113ae998: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
			      per_cpu_ptr(&flush_works, cpu));
ffff8000113ae99c:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae99c: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu
	for_each_online_cpu(cpu)
ffff8000113ae9a0:	90000014 	adrp	x20, 0 <__cpu_online_mask>
			ffff8000113ae9a0: R_AARCH64_ADR_PREL_PG_HI21	__cpu_online_mask
			      per_cpu_ptr(&flush_works, cpu));
ffff8000113ae9a4:	910002b5 	add	x21, x21, #0x0
			ffff8000113ae9a4: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu
#endif	/* !CONFIG_HOTPLUG_CPU */

/* Wrappers which go away once all code is converted */
static inline void cpu_hotplug_begin(void) { cpus_write_lock(); }
static inline void cpu_hotplug_done(void) { cpus_write_unlock(); }
static inline void get_online_cpus(void) { cpus_read_lock(); }
ffff8000113ae9a8:	94000000 	bl	0 <cpus_read_lock>
			ffff8000113ae9a8: R_AARCH64_CALL26	cpus_read_lock
	for_each_online_cpu(cpu)
ffff8000113ae9ac:	12800013 	mov	w19, #0xffffffff            	// #-1
ffff8000113ae9b0:	91000294 	add	x20, x20, #0x0
			ffff8000113ae9b0: R_AARCH64_ADD_ABS_LO12_NC	__cpu_online_mask
ffff8000113ae9b4:	91000317 	add	x23, x24, #0x0
			ffff8000113ae9b4: R_AARCH64_ADD_ABS_LO12_NC	nr_cpu_ids
		queue_work_on(cpu, system_highpri_wq,
ffff8000113ae9b8:	9000001a 	adrp	x26, 0 <system_highpri_wq>
			ffff8000113ae9b8: R_AARCH64_ADR_PREL_PG_HI21	system_highpri_wq
ffff8000113ae9bc:	14000007 	b	ffff8000113ae9d8 <rollback_registered_many+0x1d0>
			      per_cpu_ptr(&flush_works, cpu));
ffff8000113ae9c0:	90000001 	adrp	x1, 0 <__per_cpu_offset>
			ffff8000113ae9c0: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113ae9c4:	91000021 	add	x1, x1, #0x0
			ffff8000113ae9c4: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113ae9c8:	f8735822 	ldr	x2, [x1,w19,uxtw #3]
		queue_work_on(cpu, system_highpri_wq,
ffff8000113ae9cc:	f9400341 	ldr	x1, [x26]
			ffff8000113ae9cc: R_AARCH64_LDST64_ABS_LO12_NC	system_highpri_wq
ffff8000113ae9d0:	8b0202a2 	add	x2, x21, x2
ffff8000113ae9d4:	94000000 	bl	0 <queue_work_on>
			ffff8000113ae9d4: R_AARCH64_CALL26	queue_work_on
	for_each_online_cpu(cpu)
ffff8000113ae9d8:	2a1303e0 	mov	w0, w19
ffff8000113ae9dc:	aa1403e1 	mov	x1, x20
ffff8000113ae9e0:	94000000 	bl	0 <cpumask_next>
			ffff8000113ae9e0: R_AARCH64_CALL26	cpumask_next
ffff8000113ae9e4:	b94002e2 	ldr	w2, [x23]
ffff8000113ae9e8:	2a0003f3 	mov	w19, w0
ffff8000113ae9ec:	6b02001f 	cmp	w0, w2
ffff8000113ae9f0:	54fffe83 	b.cc	ffff8000113ae9c0 <rollback_registered_many+0x1b8>
		flush_work(per_cpu_ptr(&flush_works, cpu));
ffff8000113ae9f4:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113ae9f4: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu
ffff8000113ae9f8:	910002b5 	add	x21, x21, #0x0
			ffff8000113ae9f8: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu
	for_each_online_cpu(cpu)
ffff8000113ae9fc:	12800013 	mov	w19, #0xffffffff            	// #-1
	for_each_online_cpu(cpu)
ffff8000113aea00:	91000318 	add	x24, x24, #0x0
			ffff8000113aea00: R_AARCH64_ADD_ABS_LO12_NC	nr_cpu_ids
		flush_work(per_cpu_ptr(&flush_works, cpu));
ffff8000113aea04:	90000017 	adrp	x23, 0 <__per_cpu_offset>
			ffff8000113aea04: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff8000113aea08:	14000005 	b	ffff8000113aea1c <rollback_registered_many+0x214>
ffff8000113aea0c:	910002e0 	add	x0, x23, #0x0
			ffff8000113aea0c: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
ffff8000113aea10:	f8735800 	ldr	x0, [x0,w19,uxtw #3]
ffff8000113aea14:	8b0002a0 	add	x0, x21, x0
ffff8000113aea18:	94000000 	bl	0 <flush_work>
			ffff8000113aea18: R_AARCH64_CALL26	flush_work
	for_each_online_cpu(cpu)
ffff8000113aea1c:	2a1303e0 	mov	w0, w19
ffff8000113aea20:	aa1403e1 	mov	x1, x20
ffff8000113aea24:	94000000 	bl	0 <cpumask_next>
			ffff8000113aea24: R_AARCH64_CALL26	cpumask_next
ffff8000113aea28:	2a0003f3 	mov	w19, w0
ffff8000113aea2c:	b9400300 	ldr	w0, [x24]
ffff8000113aea30:	6b00027f 	cmp	w19, w0
ffff8000113aea34:	54fffec3 	b.cc	ffff8000113aea0c <rollback_registered_many+0x204>
static inline void put_online_cpus(void) { cpus_read_unlock(); }
ffff8000113aea38:	94000000 	bl	0 <cpus_read_unlock>
			ffff8000113aea38: R_AARCH64_CALL26	cpus_read_unlock
	synchronize_net();
ffff8000113aea3c:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113aea3c: R_AARCH64_CALL26	synchronize_net
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113aea40:	f94002d4 	ldr	x20, [x22]
ffff8000113aea44:	eb1402df 	cmp	x22, x20
ffff8000113aea48:	d101a294 	sub	x20, x20, #0x68
ffff8000113aea4c:	54000de0 	b.eq	ffff8000113aec08 <rollback_registered_many+0x400>
	ASSERT_RTNL();
ffff8000113aea50:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aea50: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113aea54:	9000001c 	adrp	x28, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aea54: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113aea58:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aea58: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113aea5c:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aea5c: R_AARCH64_ADR_PREL_PG_HI21	.text+0x11b1c
ffff8000113aea60:	9101e3b5 	add	x21, x29, #0x78
ffff8000113aea64:	9100035a 	add	x26, x26, #0x0
			ffff8000113aea64: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113aea68:	9100039c 	add	x28, x28, #0x0
			ffff8000113aea68: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113aea6c:	9100037b 	add	x27, x27, #0x0
			ffff8000113aea6c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
		dev_shutdown(dev);
ffff8000113aea70:	aa1403e0 	mov	x0, x20
ffff8000113aea74:	94000000 	bl	0 <dev_shutdown>
			ffff8000113aea74: R_AARCH64_CALL26	dev_shutdown
	WARN_ON(dev_xdp_install(dev, generic_xdp_install, NULL, 0, NULL));
ffff8000113aea78:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113aea7c:	aa1403e0 	mov	x0, x20
ffff8000113aea80:	91000301 	add	x1, x24, #0x0
			ffff8000113aea80: R_AARCH64_ADD_ABS_LO12_NC	.text+0x11b1c
ffff8000113aea84:	2a0203e3 	mov	w3, w2
ffff8000113aea88:	aa0203e4 	mov	x4, x2
ffff8000113aea8c:	97ffff20 	bl	ffff8000113ae70c <dev_xdp_install>
ffff8000113aea90:	350013c0 	cbnz	w0, ffff8000113aed08 <rollback_registered_many+0x500>
	ndo_bpf = dev->netdev_ops->ndo_bpf;
ffff8000113aea94:	f940fa80 	ldr	x0, [x20,#496]
ffff8000113aea98:	f9412413 	ldr	x19, [x0,#584]
	if (!ndo_bpf)
ffff8000113aea9c:	b40002b3 	cbz	x19, ffff8000113aeaf0 <rollback_registered_many+0x2e8>
	xdp.command = XDP_QUERY_PROG;
ffff8000113aeaa0:	52800040 	mov	w0, #0x2                   	// #2
ffff8000113aeaa4:	a9007ebf 	stp	xzr, xzr, [x21]
ffff8000113aeaa8:	b90002a0 	str	w0, [x21]
ffff8000113aeaac:	a9017ebf 	stp	xzr, xzr, [x21,#16]
	WARN_ON(ndo_bpf(dev, &xdp));
ffff8000113aeab0:	aa1403e0 	mov	x0, x20
ffff8000113aeab4:	aa1503e1 	mov	x1, x21
ffff8000113aeab8:	d63f0260 	blr	x19
ffff8000113aeabc:	35001220 	cbnz	w0, ffff8000113aed00 <rollback_registered_many+0x4f8>
	if (xdp.prog_id)
ffff8000113aeac0:	b9400aa0 	ldr	w0, [x21,#8]
ffff8000113aeac4:	35000da0 	cbnz	w0, ffff8000113aec78 <rollback_registered_many+0x470>
	xdp.command = XDP_QUERY_PROG_HW;
ffff8000113aeac8:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113aeacc:	a9007ebf 	stp	xzr, xzr, [x21]
ffff8000113aead0:	b90002a0 	str	w0, [x21]
ffff8000113aead4:	a9017ebf 	stp	xzr, xzr, [x21,#16]
	if (!ndo_bpf(dev, &xdp) && xdp.prog_id)
ffff8000113aead8:	aa1403e0 	mov	x0, x20
ffff8000113aeadc:	aa1503e1 	mov	x1, x21
ffff8000113aeae0:	d63f0260 	blr	x19
ffff8000113aeae4:	35000060 	cbnz	w0, ffff8000113aeaf0 <rollback_registered_many+0x2e8>
ffff8000113aeae8:	b9400aa0 	ldr	w0, [x21,#8]
ffff8000113aeaec:	35000d80 	cbnz	w0, ffff8000113aec9c <rollback_registered_many+0x494>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113aeaf0:	d28000c0 	mov	x0, #0x6                   	// #6
ffff8000113aeaf4:	aa1503e1 	mov	x1, x21
	struct netdev_notifier_info info = {
ffff8000113aeaf8:	f90002b4 	str	x20, [x21]
ffff8000113aeafc:	f90006bf 	str	xzr, [x21,#8]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113aeb00:	97ffc57e 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
		if (!dev->rtnl_link_ops ||
ffff8000113aeb04:	f9441a80 	ldr	x0, [x20,#2096]
ffff8000113aeb08:	b4000080 	cbz	x0, ffff8000113aeb18 <rollback_registered_many+0x310>
ffff8000113aeb0c:	7949b680 	ldrh	w0, [x20,#1242]
		struct sk_buff *skb = NULL;
ffff8000113aeb10:	d2800017 	mov	x23, #0x0                   	// #0
		if (!dev->rtnl_link_ops ||
ffff8000113aeb14:	35000140 	cbnz	w0, ffff8000113aeb3c <rollback_registered_many+0x334>
			skb = rtmsg_ifinfo_build_skb(RTM_DELLINK, dev, ~0U, 0,
ffff8000113aeb18:	d2800005 	mov	x5, #0x0                   	// #0
ffff8000113aeb1c:	52800220 	mov	w0, #0x11                  	// #17
ffff8000113aeb20:	aa1403e1 	mov	x1, x20
ffff8000113aeb24:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113aeb28:	52800003 	mov	w3, #0x0                   	// #0
ffff8000113aeb2c:	52819804 	mov	w4, #0xcc0                 	// #3264
ffff8000113aeb30:	2a0503e6 	mov	w6, w5
ffff8000113aeb34:	94000000 	bl	0 <rtmsg_ifinfo_build_skb>
			ffff8000113aeb34: R_AARCH64_CALL26	rtmsg_ifinfo_build_skb
ffff8000113aeb38:	aa0003f7 	mov	x23, x0
		dev_uc_flush(dev);
ffff8000113aeb3c:	aa1403e0 	mov	x0, x20
ffff8000113aeb40:	94000000 	bl	0 <dev_uc_flush>
			ffff8000113aeb40: R_AARCH64_CALL26	dev_uc_flush
		dev_mc_flush(dev);
ffff8000113aeb44:	aa1403e0 	mov	x0, x20
ffff8000113aeb48:	94000000 	bl	0 <dev_mc_flush>
			ffff8000113aeb48: R_AARCH64_CALL26	dev_mc_flush
	list_for_each_entry_safe(name_node, tmp, &dev->name_node->list, list)
ffff8000113aeb4c:	f9400a81 	ldr	x1, [x20,#16]
ffff8000113aeb50:	f9400820 	ldr	x0, [x1,#16]
ffff8000113aeb54:	f85f0413 	ldr	x19, [x0],#-16
ffff8000113aeb58:	eb00003f 	cmp	x1, x0
ffff8000113aeb5c:	d1004273 	sub	x19, x19, #0x10
ffff8000113aeb60:	54000081 	b.ne	ffff8000113aeb70 <rollback_registered_many+0x368>
ffff8000113aeb64:	14000009 	b	ffff8000113aeb88 <rollback_registered_many+0x380>
ffff8000113aeb68:	aa1303e0 	mov	x0, x19
ffff8000113aeb6c:	aa0203f3 	mov	x19, x2
		__netdev_name_node_alt_destroy(name_node);
ffff8000113aeb70:	97ffd16f 	bl	ffff8000113a312c <__netdev_name_node_alt_destroy>
	list_for_each_entry_safe(name_node, tmp, &dev->name_node->list, list)
ffff8000113aeb74:	f9400a81 	ldr	x1, [x20,#16]
ffff8000113aeb78:	f9400a60 	ldr	x0, [x19,#16]
ffff8000113aeb7c:	eb01027f 	cmp	x19, x1
ffff8000113aeb80:	d1004002 	sub	x2, x0, #0x10
ffff8000113aeb84:	54ffff21 	b.ne	ffff8000113aeb68 <rollback_registered_many+0x360>
	kfree(name_node);
ffff8000113aeb88:	aa0103e0 	mov	x0, x1
ffff8000113aeb8c:	94000000 	bl	0 <kfree>
			ffff8000113aeb8c: R_AARCH64_CALL26	kfree
		if (dev->netdev_ops->ndo_uninit)
ffff8000113aeb90:	f940fa80 	ldr	x0, [x20,#496]
ffff8000113aeb94:	f9400401 	ldr	x1, [x0,#8]
ffff8000113aeb98:	b4000061 	cbz	x1, ffff8000113aeba4 <rollback_registered_many+0x39c>
			dev->netdev_ops->ndo_uninit(dev);
ffff8000113aeb9c:	aa1403e0 	mov	x0, x20
ffff8000113aeba0:	d63f0020 	blr	x1
		if (skb)
ffff8000113aeba4:	b40000b7 	cbz	x23, ffff8000113aebb8 <rollback_registered_many+0x3b0>
			rtmsg_ifinfo_send(skb, dev, GFP_KERNEL);
ffff8000113aeba8:	aa1703e0 	mov	x0, x23
ffff8000113aebac:	aa1403e1 	mov	x1, x20
ffff8000113aebb0:	52819802 	mov	w2, #0xcc0                 	// #3264
ffff8000113aebb4:	94000000 	bl	0 <rtmsg_ifinfo_send>
			ffff8000113aebb4: R_AARCH64_CALL26	rtmsg_ifinfo_send
		WARN_ON(netdev_has_any_upper_dev(dev));
ffff8000113aebb8:	aa1403e0 	mov	x0, x20
ffff8000113aebbc:	94000000 	bl	ffff80001139fe98 <netdev_has_any_upper_dev>
			ffff8000113aebbc: R_AARCH64_CALL26	netdev_has_any_upper_dev
ffff8000113aebc0:	53001c00 	uxtb	w0, w0
ffff8000113aebc4:	350009a0 	cbnz	w0, ffff8000113aecf8 <rollback_registered_many+0x4f0>
	ASSERT_RTNL();
ffff8000113aebc8:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113aebc8: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113aebcc:	34000820 	cbz	w0, ffff8000113aecd0 <rollback_registered_many+0x4c8>
	__READ_ONCE_SIZE;
ffff8000113aebd0:	aa1403e0 	mov	x0, x20
ffff8000113aebd4:	f84b8c01 	ldr	x1, [x0,#184]!
		WARN_ON(netdev_has_any_lower_dev(dev));
ffff8000113aebd8:	eb01001f 	cmp	x0, x1
ffff8000113aebdc:	54000761 	b.ne	ffff8000113aecc8 <rollback_registered_many+0x4c0>
		netdev_unregister_kobject(dev);
ffff8000113aebe0:	aa1403e0 	mov	x0, x20
ffff8000113aebe4:	94000000 	bl	0 <netdev_unregister_kobject>
			ffff8000113aebe4: R_AARCH64_CALL26	netdev_unregister_kobject
	netif_reset_xps_queues(dev, index, dev->num_tx_queues - index);
ffff8000113aebe8:	79479282 	ldrh	w2, [x20,#968]
ffff8000113aebec:	aa1403e0 	mov	x0, x20
ffff8000113aebf0:	52800001 	mov	w1, #0x0                   	// #0
ffff8000113aebf4:	97ffd704 	bl	ffff8000113a4804 <netif_reset_xps_queues>
	list_for_each_entry(dev, head, unreg_list) {
ffff8000113aebf8:	f9403694 	ldr	x20, [x20,#104]
ffff8000113aebfc:	eb1402df 	cmp	x22, x20
ffff8000113aec00:	d101a294 	sub	x20, x20, #0x68
ffff8000113aec04:	54fff361 	b.ne	ffff8000113aea70 <rollback_registered_many+0x268>
	synchronize_net();
ffff8000113aec08:	94000000 	bl	ffff8000113a1384 <synchronize_net>
			ffff8000113aec08: R_AARCH64_CALL26	synchronize_net
	list_for_each_entry(dev, head, unreg_list)
ffff8000113aec0c:	f94002c2 	ldr	x2, [x22]
PERCPU_OP(add, add, stadd)
ffff8000113aec10:	12800003 	mov	w3, #0xffffffff            	// #-1
ffff8000113aec14:	eb0202df 	cmp	x22, x2
ffff8000113aec18:	d101a042 	sub	x2, x2, #0x68
ffff8000113aec1c:	54000180 	b.eq	ffff8000113aec4c <rollback_registered_many+0x444>
	this_cpu_dec(*dev->pcpu_refcnt);
ffff8000113aec20:	f9426040 	ldr	x0, [x2,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113aec24:	d538d081 	mrs	x1, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113aec28:	8b000026 	add	x6, x1, x0
ffff8000113aec2c:	885f7cc5 	ldxr	w5, [x6]
ffff8000113aec30:	0b0300a5 	add	w5, w5, w3
ffff8000113aec34:	88047cc5 	stxr	w4, w5, [x6]
ffff8000113aec38:	35ffffa4 	cbnz	w4, ffff8000113aec2c <rollback_registered_many+0x424>
ffff8000113aec3c:	f9403442 	ldr	x2, [x2,#104]
ffff8000113aec40:	eb0202df 	cmp	x22, x2
ffff8000113aec44:	d101a042 	sub	x2, x2, #0x68
ffff8000113aec48:	54fffec1 	b.ne	ffff8000113aec20 <rollback_registered_many+0x418>
}
ffff8000113aec4c:	f9404fa1 	ldr	x1, [x29,#152]
ffff8000113aec50:	f9400320 	ldr	x0, [x25]
			ffff8000113aec50: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113aec54:	eb00003f 	cmp	x1, x0
ffff8000113aec58:	54000361 	b.ne	ffff8000113aecc4 <rollback_registered_many+0x4bc>
ffff8000113aec5c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aec60:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aec64:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113aec68:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113aec6c:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113aec70:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff8000113aec74:	d65f03c0 	ret
		WARN_ON(dev_xdp_install(dev, ndo_bpf, NULL, xdp.prog_flags,
ffff8000113aec78:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113aec7c:	b9400ea3 	ldr	w3, [x21,#12]
ffff8000113aec80:	aa1403e0 	mov	x0, x20
ffff8000113aec84:	aa1303e1 	mov	x1, x19
ffff8000113aec88:	aa0203e4 	mov	x4, x2
ffff8000113aec8c:	97fffea0 	bl	ffff8000113ae70c <dev_xdp_install>
ffff8000113aec90:	34fff1c0 	cbz	w0, ffff8000113aeac8 <rollback_registered_many+0x2c0>
ffff8000113aec94:	d4210000 	brk	#0x800
ffff8000113aec98:	17ffff8c 	b	ffff8000113aeac8 <rollback_registered_many+0x2c0>
		WARN_ON(dev_xdp_install(dev, ndo_bpf, NULL, xdp.prog_flags,
ffff8000113aec9c:	d2800002 	mov	x2, #0x0                   	// #0
ffff8000113aeca0:	b9400ea3 	ldr	w3, [x21,#12]
ffff8000113aeca4:	aa1403e0 	mov	x0, x20
ffff8000113aeca8:	aa1303e1 	mov	x1, x19
ffff8000113aecac:	aa0203e4 	mov	x4, x2
ffff8000113aecb0:	97fffe97 	bl	ffff8000113ae70c <dev_xdp_install>
ffff8000113aecb4:	34fff1e0 	cbz	w0, ffff8000113aeaf0 <rollback_registered_many+0x2e8>
ffff8000113aecb8:	d4210000 	brk	#0x800
ffff8000113aecbc:	17ffff8d 	b	ffff8000113aeaf0 <rollback_registered_many+0x2e8>
	BUG_ON(dev_boot_phase);
ffff8000113aecc0:	d4210000 	brk	#0x800
}
ffff8000113aecc4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113aecc4: R_AARCH64_CALL26	__stack_chk_fail
		WARN_ON(netdev_has_any_lower_dev(dev));
ffff8000113aecc8:	d4210000 	brk	#0x800
ffff8000113aeccc:	17ffffc5 	b	ffff8000113aebe0 <rollback_registered_many+0x3d8>
	ASSERT_RTNL();
ffff8000113aecd0:	39407740 	ldrb	w0, [x26,#29]
ffff8000113aecd4:	35fff7e0 	cbnz	w0, ffff8000113aebd0 <rollback_registered_many+0x3c8>
ffff8000113aecd8:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113aecdc:	aa1c03e0 	mov	x0, x28
ffff8000113aece0:	aa1b03e1 	mov	x1, x27
ffff8000113aece4:	528352a2 	mov	w2, #0x1a95                	// #6805
ffff8000113aece8:	39007743 	strb	w3, [x26,#29]
ffff8000113aecec:	94000000 	bl	0 <__warn_printk>
			ffff8000113aecec: R_AARCH64_CALL26	__warn_printk
ffff8000113aecf0:	d4210000 	brk	#0x800
ffff8000113aecf4:	17ffffb7 	b	ffff8000113aebd0 <rollback_registered_many+0x3c8>
		WARN_ON(netdev_has_any_upper_dev(dev));
ffff8000113aecf8:	d4210000 	brk	#0x800
ffff8000113aecfc:	17ffffb3 	b	ffff8000113aebc8 <rollback_registered_many+0x3c0>
	WARN_ON(ndo_bpf(dev, &xdp));
ffff8000113aed00:	d4210000 	brk	#0x800
ffff8000113aed04:	17ffff6f 	b	ffff8000113aeac0 <rollback_registered_many+0x2b8>
	WARN_ON(dev_xdp_install(dev, generic_xdp_install, NULL, 0, NULL));
ffff8000113aed08:	d4210000 	brk	#0x800
ffff8000113aed0c:	17ffff62 	b	ffff8000113aea94 <rollback_registered_many+0x28c>
			pr_debug("unregister_netdevice: device %s/%p never was registered\n",
ffff8000113aed10:	aa1803e0 	mov	x0, x24
ffff8000113aed14:	aa1a03e1 	mov	x1, x26
ffff8000113aed18:	aa1403e2 	mov	x2, x20
ffff8000113aed1c:	aa1403e3 	mov	x3, x20
ffff8000113aed20:	94000000 	bl	0 <__dynamic_pr_debug>
			ffff8000113aed20: R_AARCH64_CALL26	__dynamic_pr_debug
ffff8000113aed24:	17fffedc 	b	ffff8000113ae894 <rollback_registered_many+0x8c>
	ASSERT_RTNL();
ffff8000113aed28:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aed28: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113aed2c:	91000063 	add	x3, x3, #0x0
			ffff8000113aed2c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113aed30:	39407060 	ldrb	w0, [x3,#28]
ffff8000113aed34:	35ffd940 	cbnz	w0, ffff8000113ae85c <rollback_registered_many+0x54>
ffff8000113aed38:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aed38: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113aed3c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aed3c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113aed40:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113aed44:	91000000 	add	x0, x0, #0x0
			ffff8000113aed44: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113aed48:	91000021 	add	x1, x1, #0x0
			ffff8000113aed48: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113aed4c:	528449e2 	mov	w2, #0x224f                	// #8783
ffff8000113aed50:	39007064 	strb	w4, [x3,#28]
ffff8000113aed54:	94000000 	bl	0 <__warn_printk>
			ffff8000113aed54: R_AARCH64_CALL26	__warn_printk
ffff8000113aed58:	d4210000 	brk	#0x800
ffff8000113aed5c:	17fffec0 	b	ffff8000113ae85c <rollback_registered_many+0x54>

ffff8000113aed60 <rollback_registered>:
{
ffff8000113aed60:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113aed64:	910003fd 	mov	x29, sp
ffff8000113aed68:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113aed6c:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113aed70:	aa0003f6 	mov	x22, x0
ffff8000113aed74:	aa1e03e0 	mov	x0, x30
ffff8000113aed78:	94000000 	bl	0 <_mcount>
			ffff8000113aed78: R_AARCH64_CALL26	_mcount
ffff8000113aed7c:	90000015 	adrp	x21, 0 <__stack_chk_guard>
			ffff8000113aed7c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	LIST_HEAD(single);
ffff8000113aed80:	9100e3b3 	add	x19, x29, #0x38
{
ffff8000113aed84:	f94002a3 	ldr	x3, [x21]
			ffff8000113aed84: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	list_add(&dev->unreg_list, &single);
ffff8000113aed88:	9101a2d4 	add	x20, x22, #0x68
	if (!__list_add_valid(new, prev, next))
ffff8000113aed8c:	aa1403e0 	mov	x0, x20
ffff8000113aed90:	aa1303e1 	mov	x1, x19
ffff8000113aed94:	aa1303e2 	mov	x2, x19
{
ffff8000113aed98:	f90027a3 	str	x3, [x29,#72]
	LIST_HEAD(single);
ffff8000113aed9c:	f9001fb3 	str	x19, [x29,#56]
ffff8000113aeda0:	f90023b3 	str	x19, [x29,#64]
ffff8000113aeda4:	94000000 	bl	0 <__list_add_valid>
			ffff8000113aeda4: R_AARCH64_CALL26	__list_add_valid
ffff8000113aeda8:	53001c00 	uxtb	w0, w0
ffff8000113aedac:	340000a0 	cbz	w0, ffff8000113aedc0 <rollback_registered+0x60>
	new->next = next;
ffff8000113aedb0:	f90036d3 	str	x19, [x22,#104]
	next->prev = new;
ffff8000113aedb4:	f90023b4 	str	x20, [x29,#64]
	new->prev = prev;
ffff8000113aedb8:	f9003ad3 	str	x19, [x22,#112]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113aedbc:	f9001fb4 	str	x20, [x29,#56]
	rollback_registered_many(&single);
ffff8000113aedc0:	aa1303e0 	mov	x0, x19
ffff8000113aedc4:	97fffe91 	bl	ffff8000113ae808 <rollback_registered_many>
	if (!__list_del_entry_valid(entry))
ffff8000113aedc8:	aa1303e0 	mov	x0, x19
ffff8000113aedcc:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113aedcc: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113aedd0:	53001c00 	uxtb	w0, w0
ffff8000113aedd4:	340000a0 	cbz	w0, ffff8000113aede8 <rollback_registered+0x88>
	__list_del(entry->prev, entry->next);
ffff8000113aedd8:	f94023a0 	ldr	x0, [x29,#64]
ffff8000113aeddc:	f9401fa1 	ldr	x1, [x29,#56]
	next->prev = prev;
ffff8000113aede0:	f9000420 	str	x0, [x1,#8]
ffff8000113aede4:	f9000001 	str	x1, [x0]
}
ffff8000113aede8:	f94027a1 	ldr	x1, [x29,#72]
ffff8000113aedec:	f94002a0 	ldr	x0, [x21]
			ffff8000113aedec: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113aedf0:	eb00003f 	cmp	x1, x0
ffff8000113aedf4:	540000a1 	b.ne	ffff8000113aee08 <rollback_registered+0xa8>
ffff8000113aedf8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aedfc:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aee00:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113aee04:	d65f03c0 	ret
ffff8000113aee08:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113aee08: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113aee0c <unregister_netdevice_queue>:
{
ffff8000113aee0c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113aee10:	910003fd 	mov	x29, sp
ffff8000113aee14:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113aee18:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113aee1c:	aa0003f5 	mov	x21, x0
ffff8000113aee20:	aa1e03e0 	mov	x0, x30
ffff8000113aee24:	aa0103f3 	mov	x19, x1
ffff8000113aee28:	94000000 	bl	0 <_mcount>
			ffff8000113aee28: R_AARCH64_CALL26	_mcount
	ASSERT_RTNL();
ffff8000113aee2c:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113aee2c: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113aee30:	34000660 	cbz	w0, ffff8000113aeefc <unregister_netdevice_queue+0xf0>
	if (head) {
ffff8000113aee34:	b4000333 	cbz	x19, ffff8000113aee98 <unregister_netdevice_queue+0x8c>
		list_move_tail(&dev->unreg_list, head);
ffff8000113aee38:	9101a2b4 	add	x20, x21, #0x68
	if (!__list_del_entry_valid(entry))
ffff8000113aee3c:	aa1403e0 	mov	x0, x20
ffff8000113aee40:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113aee40: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113aee44:	53001c00 	uxtb	w0, w0
ffff8000113aee48:	340000a0 	cbz	w0, ffff8000113aee5c <unregister_netdevice_queue+0x50>
	__list_del(entry->prev, entry->next);
ffff8000113aee4c:	f9400680 	ldr	x0, [x20,#8]
ffff8000113aee50:	f94036a1 	ldr	x1, [x21,#104]
	next->prev = prev;
ffff8000113aee54:	f9000420 	str	x0, [x1,#8]
ffff8000113aee58:	f9000001 	str	x1, [x0]
	__list_add(new, head->prev, head);
ffff8000113aee5c:	f9400676 	ldr	x22, [x19,#8]
	if (!__list_add_valid(new, prev, next))
ffff8000113aee60:	aa1403e0 	mov	x0, x20
ffff8000113aee64:	aa1603e1 	mov	x1, x22
ffff8000113aee68:	aa1303e2 	mov	x2, x19
ffff8000113aee6c:	94000000 	bl	0 <__list_add_valid>
			ffff8000113aee6c: R_AARCH64_CALL26	__list_add_valid
ffff8000113aee70:	53001c00 	uxtb	w0, w0
ffff8000113aee74:	340000a0 	cbz	w0, ffff8000113aee88 <unregister_netdevice_queue+0x7c>
	next->prev = new;
ffff8000113aee78:	f9000674 	str	x20, [x19,#8]
	new->next = next;
ffff8000113aee7c:	f90036b3 	str	x19, [x21,#104]
	new->prev = prev;
ffff8000113aee80:	f9000696 	str	x22, [x20,#8]
ffff8000113aee84:	f90002d4 	str	x20, [x22]
}
ffff8000113aee88:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aee8c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aee90:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113aee94:	d65f03c0 	ret
	__list_add(new, head->prev, head);
ffff8000113aee98:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aee98: R_AARCH64_ADR_PREL_PG_HI21	.data
		rollback_registered(dev);
ffff8000113aee9c:	aa1503e0 	mov	x0, x21
ffff8000113aeea0:	91000273 	add	x19, x19, #0x0
			ffff8000113aeea0: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113aeea4:	97ffffaf 	bl	ffff8000113aed60 <rollback_registered>
ffff8000113aeea8:	f9408276 	ldr	x22, [x19,#256]
	list_add_tail(&dev->todo_list, &net_todo_list);
ffff8000113aeeac:	9112c2b4 	add	x20, x21, #0x4b0
ffff8000113aeeb0:	9103e273 	add	x19, x19, #0xf8
	if (!__list_add_valid(new, prev, next))
ffff8000113aeeb4:	aa1403e0 	mov	x0, x20
ffff8000113aeeb8:	aa1603e1 	mov	x1, x22
ffff8000113aeebc:	aa1303e2 	mov	x2, x19
ffff8000113aeec0:	94000000 	bl	0 <__list_add_valid>
			ffff8000113aeec0: R_AARCH64_CALL26	__list_add_valid
ffff8000113aeec4:	53001c00 	uxtb	w0, w0
ffff8000113aeec8:	340000a0 	cbz	w0, ffff8000113aeedc <unregister_netdevice_queue+0xd0>
	new->next = next;
ffff8000113aeecc:	f9025ab3 	str	x19, [x21,#1200]
	next->prev = new;
ffff8000113aeed0:	f9000674 	str	x20, [x19,#8]
	new->prev = prev;
ffff8000113aeed4:	f9025eb6 	str	x22, [x21,#1208]
ffff8000113aeed8:	f90002d4 	str	x20, [x22]
ffff8000113aeedc:	f9427aa0 	ldr	x0, [x21,#1264]
	dev_net(dev)->dev_unreg_count++;
ffff8000113aeee0:	b9400c01 	ldr	w1, [x0,#12]
ffff8000113aeee4:	11000421 	add	w1, w1, #0x1
ffff8000113aeee8:	b9000c01 	str	w1, [x0,#12]
}
ffff8000113aeeec:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aeef0:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113aeef4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113aeef8:	d65f03c0 	ret
	ASSERT_RTNL();
ffff8000113aeefc:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aeefc: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113aef00:	91000063 	add	x3, x3, #0x0
			ffff8000113aef00: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113aef04:	39407860 	ldrb	w0, [x3,#30]
ffff8000113aef08:	35fff960 	cbnz	w0, ffff8000113aee34 <unregister_netdevice_queue+0x28>
ffff8000113aef0c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aef0c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113aef10:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aef10: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113aef14:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113aef18:	91000000 	add	x0, x0, #0x0
			ffff8000113aef18: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113aef1c:	91000021 	add	x1, x1, #0x0
			ffff8000113aef1c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113aef20:	5284dd82 	mov	w2, #0x26ec                	// #9964
ffff8000113aef24:	39007864 	strb	w4, [x3,#30]
ffff8000113aef28:	94000000 	bl	0 <__warn_printk>
			ffff8000113aef28: R_AARCH64_CALL26	__warn_printk
ffff8000113aef2c:	d4210000 	brk	#0x800
ffff8000113aef30:	17ffffc1 	b	ffff8000113aee34 <unregister_netdevice_queue+0x28>

ffff8000113aef34 <unregister_netdev>:
{
ffff8000113aef34:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113aef38:	910003fd 	mov	x29, sp
ffff8000113aef3c:	f9000bf3 	str	x19, [sp,#16]
ffff8000113aef40:	aa0003f3 	mov	x19, x0
ffff8000113aef44:	aa1e03e0 	mov	x0, x30
ffff8000113aef48:	94000000 	bl	0 <_mcount>
			ffff8000113aef48: R_AARCH64_CALL26	_mcount
	rtnl_lock();
ffff8000113aef4c:	94000000 	bl	0 <rtnl_lock>
			ffff8000113aef4c: R_AARCH64_CALL26	rtnl_lock
	unregister_netdevice_queue(dev, NULL);
ffff8000113aef50:	aa1303e0 	mov	x0, x19
ffff8000113aef54:	d2800001 	mov	x1, #0x0                   	// #0
ffff8000113aef58:	94000000 	bl	ffff8000113aee0c <unregister_netdevice_queue>
			ffff8000113aef58: R_AARCH64_CALL26	unregister_netdevice_queue
	rtnl_unlock();
ffff8000113aef5c:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113aef5c: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113aef60:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113aef64:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113aef68:	d65f03c0 	ret

ffff8000113aef6c <unregister_netdevice_many>:
{
ffff8000113aef6c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113aef70:	910003fd 	mov	x29, sp
ffff8000113aef74:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113aef78:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113aef7c:	f9001bf7 	str	x23, [sp,#48]
ffff8000113aef80:	aa0003f7 	mov	x23, x0
ffff8000113aef84:	aa1e03e0 	mov	x0, x30
ffff8000113aef88:	94000000 	bl	0 <_mcount>
			ffff8000113aef88: R_AARCH64_CALL26	_mcount
	__READ_ONCE_SIZE;
ffff8000113aef8c:	f94002e0 	ldr	x0, [x23]
	if (!list_empty(head)) {
ffff8000113aef90:	eb0002ff 	cmp	x23, x0
ffff8000113aef94:	54000580 	b.eq	ffff8000113af044 <unregister_netdevice_many+0xd8>
		rollback_registered_many(head);
ffff8000113aef98:	aa1703e0 	mov	x0, x23
ffff8000113aef9c:	97fffe1b 	bl	ffff8000113ae808 <rollback_registered_many>
		list_for_each_entry(dev, head, unreg_list)
ffff8000113aefa0:	f94002f3 	ldr	x19, [x23]
ffff8000113aefa4:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aefa4: R_AARCH64_ADR_PREL_PG_HI21	.data
	__list_add(new, head->prev, head);
ffff8000113aefa8:	910002b5 	add	x21, x21, #0x0
			ffff8000113aefa8: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113aefac:	eb1302ff 	cmp	x23, x19
ffff8000113aefb0:	9103e2b5 	add	x21, x21, #0xf8
ffff8000113aefb4:	d101a273 	sub	x19, x19, #0x68
ffff8000113aefb8:	540002a0 	b.eq	ffff8000113af00c <unregister_netdevice_many+0xa0>
ffff8000113aefbc:	f94006b6 	ldr	x22, [x21,#8]
	list_add_tail(&dev->todo_list, &net_todo_list);
ffff8000113aefc0:	9112c274 	add	x20, x19, #0x4b0
	if (!__list_add_valid(new, prev, next))
ffff8000113aefc4:	aa1403e0 	mov	x0, x20
ffff8000113aefc8:	aa1603e1 	mov	x1, x22
ffff8000113aefcc:	aa1503e2 	mov	x2, x21
ffff8000113aefd0:	94000000 	bl	0 <__list_add_valid>
			ffff8000113aefd0: R_AARCH64_CALL26	__list_add_valid
ffff8000113aefd4:	53001c00 	uxtb	w0, w0
ffff8000113aefd8:	340000a0 	cbz	w0, ffff8000113aefec <unregister_netdevice_many+0x80>
	new->next = next;
ffff8000113aefdc:	f9025a75 	str	x21, [x19,#1200]
	new->prev = prev;
ffff8000113aefe0:	f9025e76 	str	x22, [x19,#1208]
	next->prev = new;
ffff8000113aefe4:	f90006b4 	str	x20, [x21,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113aefe8:	f90002d4 	str	x20, [x22]
ffff8000113aefec:	f9427a61 	ldr	x1, [x19,#1264]
	dev_net(dev)->dev_unreg_count++;
ffff8000113aeff0:	b9400c20 	ldr	w0, [x1,#12]
ffff8000113aeff4:	11000400 	add	w0, w0, #0x1
ffff8000113aeff8:	b9000c20 	str	w0, [x1,#12]
		list_for_each_entry(dev, head, unreg_list)
ffff8000113aeffc:	f9403673 	ldr	x19, [x19,#104]
ffff8000113af000:	eb1302ff 	cmp	x23, x19
ffff8000113af004:	d101a273 	sub	x19, x19, #0x68
ffff8000113af008:	54fffda1 	b.ne	ffff8000113aefbc <unregister_netdevice_many+0x50>
	if (!__list_del_entry_valid(entry))
ffff8000113af00c:	aa1703e0 	mov	x0, x23
ffff8000113af010:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113af010: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113af014:	53001c00 	uxtb	w0, w0
ffff8000113af018:	340000a0 	cbz	w0, ffff8000113af02c <unregister_netdevice_many+0xc0>
	__list_del(entry->prev, entry->next);
ffff8000113af01c:	f94006e0 	ldr	x0, [x23,#8]
ffff8000113af020:	f94002e1 	ldr	x1, [x23]
	next->prev = prev;
ffff8000113af024:	f9000420 	str	x0, [x1,#8]
ffff8000113af028:	f9000001 	str	x1, [x0]
	entry->next = LIST_POISON1;
ffff8000113af02c:	d2802001 	mov	x1, #0x100                 	// #256
	entry->prev = LIST_POISON2;
ffff8000113af030:	d2802440 	mov	x0, #0x122                 	// #290
	entry->next = LIST_POISON1;
ffff8000113af034:	f2fbd5a1 	movk	x1, #0xdead, lsl #48
	entry->prev = LIST_POISON2;
ffff8000113af038:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
	entry->next = LIST_POISON1;
ffff8000113af03c:	f90002e1 	str	x1, [x23]
	entry->prev = LIST_POISON2;
ffff8000113af040:	f90006e0 	str	x0, [x23,#8]
}
ffff8000113af044:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113af048:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af04c:	f9401bf7 	ldr	x23, [sp,#48]
ffff8000113af050:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113af054:	d65f03c0 	ret

ffff8000113af058 <default_device_exit_batch>:
	}
	remove_wait_queue(&netdev_unregistering_wq, &wait);
}

static void __net_exit default_device_exit_batch(struct list_head *net_list)
{
ffff8000113af058:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113af05c:	910003fd 	mov	x29, sp
ffff8000113af060:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113af064:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113af068:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113af06c:	aa0003f4 	mov	x20, x0
ffff8000113af070:	aa1e03e0 	mov	x0, x30
ffff8000113af074:	94000000 	bl	0 <_mcount>
			ffff8000113af074: R_AARCH64_CALL26	_mcount
ffff8000113af078:	90000016 	adrp	x22, 0 <__stack_chk_guard>
			ffff8000113af078: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	add_wait_queue(&netdev_unregistering_wq, &wait);
ffff8000113af07c:	90000013 	adrp	x19, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af07c: R_AARCH64_ADR_PREL_PG_HI21	.data
	DEFINE_WAIT_FUNC(wait, woken_wake_function);
ffff8000113af080:	a9057fbf 	stp	xzr, xzr, [x29,#80]
ffff8000113af084:	d5384103 	mrs	x3, sp_el0
{
ffff8000113af088:	f94002c4 	ldr	x4, [x22]
			ffff8000113af088: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	add_wait_queue(&netdev_unregistering_wq, &wait);
ffff8000113af08c:	91000260 	add	x0, x19, #0x0
			ffff8000113af08c: R_AARCH64_ADD_ABS_LO12_NC	.data
	DEFINE_WAIT_FUNC(wait, woken_wake_function);
ffff8000113af090:	f9002fa3 	str	x3, [x29,#88]
ffff8000113af094:	90000003 	adrp	x3, 0 <woken_wake_function>
			ffff8000113af094: R_AARCH64_ADR_PREL_PG_HI21	woken_wake_function
	 * Do this across as many network namespaces as possible to
	 * improve batching efficiency.
	 */
	struct net_device *dev;
	struct net *net;
	LIST_HEAD(dev_kill_list);
ffff8000113af098:	910103b5 	add	x21, x29, #0x40
	DEFINE_WAIT_FUNC(wait, woken_wake_function);
ffff8000113af09c:	9101a3a2 	add	x2, x29, #0x68
ffff8000113af0a0:	91000063 	add	x3, x3, #0x0
			ffff8000113af0a0: R_AARCH64_ADD_ABS_LO12_NC	woken_wake_function
ffff8000113af0a4:	910143a1 	add	x1, x29, #0x50
	add_wait_queue(&netdev_unregistering_wq, &wait);
ffff8000113af0a8:	91042000 	add	x0, x0, #0x108
{
ffff8000113af0ac:	f9003fa4 	str	x4, [x29,#120]
	LIST_HEAD(dev_kill_list);
ffff8000113af0b0:	f90023b5 	str	x21, [x29,#64]
ffff8000113af0b4:	f90027b5 	str	x21, [x29,#72]
	DEFINE_WAIT_FUNC(wait, woken_wake_function);
ffff8000113af0b8:	f90033a3 	str	x3, [x29,#96]
ffff8000113af0bc:	f90037a2 	str	x2, [x29,#104]
ffff8000113af0c0:	f9003ba2 	str	x2, [x29,#112]
	add_wait_queue(&netdev_unregistering_wq, &wait);
ffff8000113af0c4:	94000000 	bl	0 <add_wait_queue>
			ffff8000113af0c4: R_AARCH64_CALL26	add_wait_queue
		rtnl_lock();
ffff8000113af0c8:	94000000 	bl	0 <rtnl_lock>
			ffff8000113af0c8: R_AARCH64_CALL26	rtnl_lock
		list_for_each_entry(net, net_list, exit_list) {
ffff8000113af0cc:	f9400280 	ldr	x0, [x20]
ffff8000113af0d0:	eb00029f 	cmp	x20, x0
ffff8000113af0d4:	d100c003 	sub	x3, x0, #0x30
ffff8000113af0d8:	54000140 	b.eq	ffff8000113af100 <default_device_exit_batch+0xa8>
			if (net->dev_unreg_count > 0) {
ffff8000113af0dc:	b85dc000 	ldur	w0, [x0,#-36]
ffff8000113af0e0:	34000080 	cbz	w0, ffff8000113af0f0 <default_device_exit_batch+0x98>
ffff8000113af0e4:	14000035 	b	ffff8000113af1b8 <default_device_exit_batch+0x160>
ffff8000113af0e8:	b85dc042 	ldur	w2, [x2,#-36]
ffff8000113af0ec:	35000662 	cbnz	w2, ffff8000113af1b8 <default_device_exit_batch+0x160>
		list_for_each_entry(net, net_list, exit_list) {
ffff8000113af0f0:	f9401862 	ldr	x2, [x3,#48]
ffff8000113af0f4:	eb02029f 	cmp	x20, x2
ffff8000113af0f8:	d100c043 	sub	x3, x2, #0x30
ffff8000113af0fc:	54ffff61 	b.ne	ffff8000113af0e8 <default_device_exit_batch+0x90>
	remove_wait_queue(&netdev_unregistering_wq, &wait);
ffff8000113af100:	91000260 	add	x0, x19, #0x0
			ffff8000113af100: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113af104:	91042000 	add	x0, x0, #0x108
ffff8000113af108:	910143a1 	add	x1, x29, #0x50
ffff8000113af10c:	94000000 	bl	0 <remove_wait_queue>
			ffff8000113af10c: R_AARCH64_CALL26	remove_wait_queue
	 * unregistrations that happen in default_device_exit_batch
	 * will run in the rtnl_unlock() at the end of
	 * default_device_exit_batch.
	 */
	rtnl_lock_unregistering(net_list);
	list_for_each_entry(net, net_list, exit_list) {
ffff8000113af110:	f9400298 	ldr	x24, [x20]
ffff8000113af114:	eb18029f 	cmp	x20, x24
ffff8000113af118:	d100c318 	sub	x24, x24, #0x30
ffff8000113af11c:	54000360 	b.eq	ffff8000113af188 <default_device_exit_batch+0x130>
		for_each_netdev_reverse(net, dev) {
ffff8000113af120:	f9404f13 	ldr	x19, [x24,#152]
ffff8000113af124:	91024317 	add	x23, x24, #0x90
ffff8000113af128:	eb1302ff 	cmp	x23, x19
ffff8000113af12c:	d1012273 	sub	x19, x19, #0x48
ffff8000113af130:	540000e1 	b.ne	ffff8000113af14c <default_device_exit_batch+0xf4>
ffff8000113af134:	14000011 	b	ffff8000113af178 <default_device_exit_batch+0x120>
			if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink)
				dev->rtnl_link_ops->dellink(dev, &dev_kill_list);
ffff8000113af138:	d63f0040 	blr	x2
		for_each_netdev_reverse(net, dev) {
ffff8000113af13c:	f9402a73 	ldr	x19, [x19,#80]
ffff8000113af140:	eb1302ff 	cmp	x23, x19
ffff8000113af144:	d1012273 	sub	x19, x19, #0x48
ffff8000113af148:	54000180 	b.eq	ffff8000113af178 <default_device_exit_batch+0x120>
			if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink)
ffff8000113af14c:	f9441a62 	ldr	x2, [x19,#2096]
				dev->rtnl_link_ops->dellink(dev, &dev_kill_list);
ffff8000113af150:	aa1303e0 	mov	x0, x19
ffff8000113af154:	aa1503e1 	mov	x1, x21
			if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink)
ffff8000113af158:	b4000062 	cbz	x2, ffff8000113af164 <default_device_exit_batch+0x10c>
ffff8000113af15c:	f9402842 	ldr	x2, [x2,#80]
ffff8000113af160:	b5fffec2 	cbnz	x2, ffff8000113af138 <default_device_exit_batch+0xe0>
			else
				unregister_netdevice_queue(dev, &dev_kill_list);
ffff8000113af164:	94000000 	bl	ffff8000113aee0c <unregister_netdevice_queue>
			ffff8000113af164: R_AARCH64_CALL26	unregister_netdevice_queue
		for_each_netdev_reverse(net, dev) {
ffff8000113af168:	f9402a73 	ldr	x19, [x19,#80]
ffff8000113af16c:	eb1302ff 	cmp	x23, x19
ffff8000113af170:	d1012273 	sub	x19, x19, #0x48
ffff8000113af174:	54fffec1 	b.ne	ffff8000113af14c <default_device_exit_batch+0xf4>
	list_for_each_entry(net, net_list, exit_list) {
ffff8000113af178:	f9401b18 	ldr	x24, [x24,#48]
ffff8000113af17c:	eb18029f 	cmp	x20, x24
ffff8000113af180:	d100c318 	sub	x24, x24, #0x30
ffff8000113af184:	54fffce1 	b.ne	ffff8000113af120 <default_device_exit_batch+0xc8>
		}
	}
	unregister_netdevice_many(&dev_kill_list);
ffff8000113af188:	aa1503e0 	mov	x0, x21
ffff8000113af18c:	94000000 	bl	ffff8000113aef6c <unregister_netdevice_many>
			ffff8000113af18c: R_AARCH64_CALL26	unregister_netdevice_many
	rtnl_unlock();
ffff8000113af190:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113af190: R_AARCH64_CALL26	rtnl_unlock
}
ffff8000113af194:	f9403fa1 	ldr	x1, [x29,#120]
ffff8000113af198:	f94002c0 	ldr	x0, [x22]
			ffff8000113af198: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113af19c:	eb00003f 	cmp	x1, x0
ffff8000113af1a0:	54000181 	b.ne	ffff8000113af1d0 <default_device_exit_batch+0x178>
ffff8000113af1a4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113af1a8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af1ac:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113af1b0:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113af1b4:	d65f03c0 	ret
		__rtnl_unlock();
ffff8000113af1b8:	94000000 	bl	0 <__rtnl_unlock>
			ffff8000113af1b8: R_AARCH64_CALL26	__rtnl_unlock
		wait_woken(&wait, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT);
ffff8000113af1bc:	910143a0 	add	x0, x29, #0x50
ffff8000113af1c0:	52800041 	mov	w1, #0x2                   	// #2
ffff8000113af1c4:	92f00002 	mov	x2, #0x7fffffffffffffff    	// #9223372036854775807
ffff8000113af1c8:	94000000 	bl	0 <wait_woken>
			ffff8000113af1c8: R_AARCH64_CALL26	wait_woken
ffff8000113af1cc:	17ffffbf 	b	ffff8000113af0c8 <default_device_exit_batch+0x70>
}
ffff8000113af1d0:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113af1d0: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113af1d4 <dev_change_xdp_fd>:
{
ffff8000113af1d4:	a9ba7bfd 	stp	x29, x30, [sp,#-96]!
ffff8000113af1d8:	910003fd 	mov	x29, sp
ffff8000113af1dc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113af1e0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113af1e4:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113af1e8:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113af1ec:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113af1f0:	aa0003f4 	mov	x20, x0
ffff8000113af1f4:	aa1e03e0 	mov	x0, x30
ffff8000113af1f8:	aa0103f9 	mov	x25, x1
ffff8000113af1fc:	2a0203fa 	mov	w26, w2
ffff8000113af200:	2a0303fb 	mov	w27, w3
ffff8000113af204:	2a0403f3 	mov	w19, w4
ffff8000113af208:	94000000 	bl	0 <_mcount>
			ffff8000113af208: R_AARCH64_CALL26	_mcount
	const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113af20c:	f940fa98 	ldr	x24, [x20,#496]
	ASSERT_RTNL();
ffff8000113af210:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af210: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af214:	34001360 	cbz	w0, ffff8000113af480 <dev_change_xdp_fd+0x2ac>
	offload = flags & XDP_FLAGS_HW_MODE;
ffff8000113af218:	d3430e76 	ubfx	x22, x19, #3, #1
	bpf_op = bpf_chk = ops->ndo_bpf;
ffff8000113af21c:	f9412715 	ldr	x21, [x24,#584]
	query = offload ? XDP_QUERY_PROG_HW : XDP_QUERY_PROG;
ffff8000113af220:	6b1f02df 	cmp	w22, wzr
ffff8000113af224:	52800061 	mov	w1, #0x3                   	// #3
ffff8000113af228:	52800042 	mov	w2, #0x2                   	// #2
ffff8000113af22c:	1a810042 	csel	w2, w2, w1, eq
	if (!bpf_op && (flags & (XDP_FLAGS_DRV_MODE | XDP_FLAGS_HW_MODE))) {
ffff8000113af230:	b4000f55 	cbz	x21, ffff8000113af418 <dev_change_xdp_fd+0x244>
	if (!bpf_op || (flags & XDP_FLAGS_SKB_MODE))
ffff8000113af234:	36080473 	tbz	w19, #1, ffff8000113af2c0 <dev_change_xdp_fd+0xec>
ffff8000113af238:	90000017 	adrp	x23, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af238: R_AARCH64_ADR_PREL_PG_HI21	.text+0x11b1c
ffff8000113af23c:	910002f7 	add	x23, x23, #0x0
			ffff8000113af23c: R_AARCH64_ADD_ABS_LO12_NC	.text+0x11b1c
	prog_id = __dev_xdp_query(dev, bpf_op, query);
ffff8000113af240:	aa1403e0 	mov	x0, x20
ffff8000113af244:	aa1703e1 	mov	x1, x23
ffff8000113af248:	94000000 	bl	ffff8000113ae678 <__dev_xdp_query>
			ffff8000113af248: R_AARCH64_CALL26	__dev_xdp_query
ffff8000113af24c:	2a0003fc 	mov	w28, w0
	if (flags & XDP_FLAGS_REPLACE) {
ffff8000113af250:	36200493 	tbz	w19, #4, ffff8000113af2e0 <dev_change_xdp_fd+0x10c>
		if (expected_fd >= 0) {
ffff8000113af254:	37f80abb 	tbnz	w27, #31, ffff8000113af3a8 <dev_change_xdp_fd+0x1d4>
			prog = bpf_prog_get_type_dev(expected_fd,
ffff8000113af258:	f9412701 	ldr	x1, [x24,#584]
ffff8000113af25c:	2a1b03e0 	mov	w0, w27
ffff8000113af260:	eb17003f 	cmp	x1, x23
ffff8000113af264:	1a9f17e2 	cset	w2, eq
ffff8000113af268:	528000c1 	mov	w1, #0x6                   	// #6
ffff8000113af26c:	94000000 	bl	0 <bpf_prog_get_type_dev>
			ffff8000113af26c: R_AARCH64_CALL26	bpf_prog_get_type_dev
			if (IS_ERR(prog))
ffff8000113af270:	b140041f 	cmn	x0, #0x1, lsl #12
ffff8000113af274:	54000188 	b.hi	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
			expected_id = prog->aux->id;
ffff8000113af278:	f9401001 	ldr	x1, [x0,#32]
ffff8000113af27c:	b9401c3b 	ldr	w27, [x1,#28]
			bpf_prog_put(prog);
ffff8000113af280:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113af280: R_AARCH64_CALL26	bpf_prog_put
		if (prog_id != expected_id) {
ffff8000113af284:	6b1b039f 	cmp	w28, w27
ffff8000113af288:	540002c0 	b.eq	ffff8000113af2e0 <dev_change_xdp_fd+0x10c>
			NL_SET_ERR_MSG(extack, "Active program does not match expected");
ffff8000113af28c:	b40000b9 	cbz	x25, ffff8000113af2a0 <dev_change_xdp_fd+0xcc>
ffff8000113af290:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af290: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113af294:	91000000 	add	x0, x0, #0x0
			ffff8000113af294: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113af298:	91042000 	add	x0, x0, #0x108
ffff8000113af29c:	f9000320 	str	x0, [x25]
			return -EEXIST;
ffff8000113af2a0:	12800200 	mov	w0, #0xffffffef            	// #-17
}
ffff8000113af2a4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113af2a8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af2ac:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113af2b0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113af2b4:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113af2b8:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113af2bc:	d65f03c0 	ret
	if (!bpf_op || (flags & XDP_FLAGS_SKB_MODE))
ffff8000113af2c0:	aa1503f7 	mov	x23, x21
	prog_id = __dev_xdp_query(dev, bpf_op, query);
ffff8000113af2c4:	aa1403e0 	mov	x0, x20
ffff8000113af2c8:	aa1703e1 	mov	x1, x23
		bpf_chk = generic_xdp_install;
ffff8000113af2cc:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af2cc: R_AARCH64_ADR_PREL_PG_HI21	.text+0x11b1c
	prog_id = __dev_xdp_query(dev, bpf_op, query);
ffff8000113af2d0:	94000000 	bl	ffff8000113ae678 <__dev_xdp_query>
			ffff8000113af2d0: R_AARCH64_CALL26	__dev_xdp_query
		bpf_chk = generic_xdp_install;
ffff8000113af2d4:	910002b5 	add	x21, x21, #0x0
			ffff8000113af2d4: R_AARCH64_ADD_ABS_LO12_NC	.text+0x11b1c
	prog_id = __dev_xdp_query(dev, bpf_op, query);
ffff8000113af2d8:	2a0003fc 	mov	w28, w0
	if (flags & XDP_FLAGS_REPLACE) {
ffff8000113af2dc:	3727fbd3 	tbnz	w19, #4, ffff8000113af254 <dev_change_xdp_fd+0x80>
	if (fd >= 0) {
ffff8000113af2e0:	37f808ba 	tbnz	w26, #31, ffff8000113af3f4 <dev_change_xdp_fd+0x220>
		if (!offload && __dev_xdp_query(dev, bpf_chk, XDP_QUERY_PROG)) {
ffff8000113af2e4:	34000676 	cbz	w22, ffff8000113af3b0 <dev_change_xdp_fd+0x1dc>
		if ((flags & XDP_FLAGS_UPDATE_IF_NOEXIST) && prog_id) {
ffff8000113af2e8:	360001f3 	tbz	w19, #0, ffff8000113af324 <dev_change_xdp_fd+0x150>
ffff8000113af2ec:	340001dc 	cbz	w28, ffff8000113af324 <dev_change_xdp_fd+0x150>
			NL_SET_ERR_MSG(extack, "XDP program already attached");
ffff8000113af2f0:	b4000c19 	cbz	x25, ffff8000113af470 <dev_change_xdp_fd+0x29c>
ffff8000113af2f4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af2f4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113af2f8:	91000000 	add	x0, x0, #0x0
			ffff8000113af2f8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113af2fc:	9105a000 	add	x0, x0, #0x168
ffff8000113af300:	f9000320 	str	x0, [x25]
}
ffff8000113af304:	a94153f3 	ldp	x19, x20, [sp,#16]
			return -EBUSY;
ffff8000113af308:	128001e0 	mov	w0, #0xfffffff0            	// #-16
}
ffff8000113af30c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af310:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113af314:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113af318:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113af31c:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113af320:	d65f03c0 	ret
		prog = bpf_prog_get_type_dev(fd, BPF_PROG_TYPE_XDP,
ffff8000113af324:	f9412701 	ldr	x1, [x24,#584]
ffff8000113af328:	2a1a03e0 	mov	w0, w26
ffff8000113af32c:	eb17003f 	cmp	x1, x23
ffff8000113af330:	1a9f17e2 	cset	w2, eq
ffff8000113af334:	528000c1 	mov	w1, #0x6                   	// #6
ffff8000113af338:	94000000 	bl	0 <bpf_prog_get_type_dev>
			ffff8000113af338: R_AARCH64_CALL26	bpf_prog_get_type_dev
ffff8000113af33c:	aa0003f5 	mov	x21, x0
		if (IS_ERR(prog))
ffff8000113af340:	b14006bf 	cmn	x21, #0x1, lsl #12
ffff8000113af344:	54fffb08 	b.hi	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
		if (!offload && bpf_prog_is_dev_bound(prog->aux)) {
ffff8000113af348:	f94012a0 	ldr	x0, [x21,#32]
ffff8000113af34c:	35000076 	cbnz	w22, ffff8000113af358 <dev_change_xdp_fd+0x184>
ffff8000113af350:	3940e401 	ldrb	w1, [x0,#57]
ffff8000113af354:	350007c1 	cbnz	w1, ffff8000113af44c <dev_change_xdp_fd+0x278>
		if (prog->aux->id && prog->aux->id == prog_id) {
ffff8000113af358:	b9401c00 	ldr	w0, [x0,#28]
ffff8000113af35c:	34000060 	cbz	w0, ffff8000113af368 <dev_change_xdp_fd+0x194>
ffff8000113af360:	6b00039f 	cmp	w28, w0
ffff8000113af364:	540006c0 	b.eq	ffff8000113af43c <dev_change_xdp_fd+0x268>
	err = dev_xdp_install(dev, bpf_op, extack, flags, prog);
ffff8000113af368:	2a1303e3 	mov	w3, w19
ffff8000113af36c:	aa1403e0 	mov	x0, x20
ffff8000113af370:	aa1703e1 	mov	x1, x23
ffff8000113af374:	aa1903e2 	mov	x2, x25
ffff8000113af378:	aa1503e4 	mov	x4, x21
ffff8000113af37c:	97fffce4 	bl	ffff8000113ae70c <dev_xdp_install>
ffff8000113af380:	2a0003f3 	mov	w19, w0
	if (err < 0 && prog)
ffff8000113af384:	37f802f3 	tbnz	w19, #31, ffff8000113af3e0 <dev_change_xdp_fd+0x20c>
	err = dev_xdp_install(dev, bpf_op, extack, flags, prog);
ffff8000113af388:	2a1303e0 	mov	w0, w19
}
ffff8000113af38c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af390:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113af394:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113af398:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113af39c:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113af3a0:	a8c67bfd 	ldp	x29, x30, [sp],#96
ffff8000113af3a4:	d65f03c0 	ret
	u32 prog_id, expected_id = 0;
ffff8000113af3a8:	5280001b 	mov	w27, #0x0                   	// #0
ffff8000113af3ac:	17ffffb6 	b	ffff8000113af284 <dev_change_xdp_fd+0xb0>
		if (!offload && __dev_xdp_query(dev, bpf_chk, XDP_QUERY_PROG)) {
ffff8000113af3b0:	aa1403e0 	mov	x0, x20
ffff8000113af3b4:	aa1503e1 	mov	x1, x21
ffff8000113af3b8:	52800042 	mov	w2, #0x2                   	// #2
ffff8000113af3bc:	94000000 	bl	ffff8000113ae678 <__dev_xdp_query>
			ffff8000113af3bc: R_AARCH64_CALL26	__dev_xdp_query
ffff8000113af3c0:	34fff940 	cbz	w0, ffff8000113af2e8 <dev_change_xdp_fd+0x114>
			NL_SET_ERR_MSG(extack, "native and generic XDP can't be active at the same time");
ffff8000113af3c4:	b4fff6f9 	cbz	x25, ffff8000113af2a0 <dev_change_xdp_fd+0xcc>
ffff8000113af3c8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af3c8: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113af3cc:	91000000 	add	x0, x0, #0x0
			ffff8000113af3cc: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113af3d0:	9104c000 	add	x0, x0, #0x130
ffff8000113af3d4:	f9000320 	str	x0, [x25]
			return -EEXIST;
ffff8000113af3d8:	12800200 	mov	w0, #0xffffffef            	// #-17
ffff8000113af3dc:	17ffffb2 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
	if (err < 0 && prog)
ffff8000113af3e0:	b4fffd55 	cbz	x21, ffff8000113af388 <dev_change_xdp_fd+0x1b4>
		bpf_prog_put(prog);
ffff8000113af3e4:	aa1503e0 	mov	x0, x21
ffff8000113af3e8:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113af3e8: R_AARCH64_CALL26	bpf_prog_put
ffff8000113af3ec:	2a1303e0 	mov	w0, w19
ffff8000113af3f0:	17ffffad 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
			return 0;
ffff8000113af3f4:	52800000 	mov	w0, #0x0                   	// #0
		if (!prog_id)
ffff8000113af3f8:	34fff57c 	cbz	w28, ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
	err = dev_xdp_install(dev, bpf_op, extack, flags, prog);
ffff8000113af3fc:	aa1403e0 	mov	x0, x20
ffff8000113af400:	aa1703e1 	mov	x1, x23
ffff8000113af404:	aa1903e2 	mov	x2, x25
ffff8000113af408:	2a1303e3 	mov	w3, w19
ffff8000113af40c:	d2800004 	mov	x4, #0x0                   	// #0
ffff8000113af410:	97fffcbf 	bl	ffff8000113ae70c <dev_xdp_install>
ffff8000113af414:	17ffffa4 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
	if (!bpf_op && (flags & (XDP_FLAGS_DRV_MODE | XDP_FLAGS_HW_MODE))) {
ffff8000113af418:	721e067f 	tst	w19, #0xc
ffff8000113af41c:	54fff0e0 	b.eq	ffff8000113af238 <dev_change_xdp_fd+0x64>
		NL_SET_ERR_MSG(extack, "underlying driver does not support XDP in native mode");
ffff8000113af420:	b40002d9 	cbz	x25, ffff8000113af478 <dev_change_xdp_fd+0x2a4>
ffff8000113af424:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af424: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113af428:	91000000 	add	x0, x0, #0x0
			ffff8000113af428: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113af42c:	91034000 	add	x0, x0, #0xd0
ffff8000113af430:	f9000320 	str	x0, [x25]
		return -EOPNOTSUPP;
ffff8000113af434:	12800bc0 	mov	w0, #0xffffffa1            	// #-95
ffff8000113af438:	17ffff9b 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
			bpf_prog_put(prog);
ffff8000113af43c:	aa1503e0 	mov	x0, x21
ffff8000113af440:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113af440: R_AARCH64_CALL26	bpf_prog_put
			return 0;
ffff8000113af444:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113af448:	17ffff97 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
			NL_SET_ERR_MSG(extack, "using device-bound program without HW_MODE flag is not supported");
ffff8000113af44c:	b40000b9 	cbz	x25, ffff8000113af460 <dev_change_xdp_fd+0x28c>
ffff8000113af450:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af450: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113af454:	91000000 	add	x0, x0, #0x0
			ffff8000113af454: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113af458:	91062000 	add	x0, x0, #0x188
ffff8000113af45c:	f9000320 	str	x0, [x25]
			bpf_prog_put(prog);
ffff8000113af460:	aa1503e0 	mov	x0, x21
ffff8000113af464:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113af464: R_AARCH64_CALL26	bpf_prog_put
			return -EINVAL;
ffff8000113af468:	128002a0 	mov	w0, #0xffffffea            	// #-22
ffff8000113af46c:	17ffff8e 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
			return -EBUSY;
ffff8000113af470:	128001e0 	mov	w0, #0xfffffff0            	// #-16
ffff8000113af474:	17ffff8c 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
		return -EOPNOTSUPP;
ffff8000113af478:	12800bc0 	mov	w0, #0xffffffa1            	// #-95
ffff8000113af47c:	17ffff8a 	b	ffff8000113af2a4 <dev_change_xdp_fd+0xd0>
	ASSERT_RTNL();
ffff8000113af480:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af480: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113af484:	91000063 	add	x3, x3, #0x0
			ffff8000113af484: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113af488:	39407c60 	ldrb	w0, [x3,#31]
ffff8000113af48c:	35ffec60 	cbnz	w0, ffff8000113af218 <dev_change_xdp_fd+0x44>
ffff8000113af490:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af490: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113af494:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af494: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113af498:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113af49c:	91000000 	add	x0, x0, #0x0
			ffff8000113af49c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113af4a0:	91000021 	add	x1, x1, #0x0
			ffff8000113af4a0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113af4a4:	52843c62 	mov	w2, #0x21e3                	// #8675
ffff8000113af4a8:	39007c64 	strb	w4, [x3,#31]
ffff8000113af4ac:	94000000 	bl	0 <__warn_printk>
			ffff8000113af4ac: R_AARCH64_CALL26	__warn_printk
ffff8000113af4b0:	d4210000 	brk	#0x800
ffff8000113af4b4:	17ffff59 	b	ffff8000113af218 <dev_change_xdp_fd+0x44>

ffff8000113af4b8 <__netdev_update_features>:
{
ffff8000113af4b8:	a9b87bfd 	stp	x29, x30, [sp,#-128]!
ffff8000113af4bc:	910003fd 	mov	x29, sp
ffff8000113af4c0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113af4c4:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113af4c8:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113af4cc:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113af4d0:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113af4d4:	aa0003f6 	mov	x22, x0
ffff8000113af4d8:	aa1e03e0 	mov	x0, x30
ffff8000113af4dc:	94000000 	bl	0 <_mcount>
			ffff8000113af4dc: R_AARCH64_CALL26	_mcount
ffff8000113af4e0:	90000017 	adrp	x23, 0 <__stack_chk_guard>
			ffff8000113af4e0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113af4e4:	f94002e0 	ldr	x0, [x23]
			ffff8000113af4e4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113af4e8:	f9003fa0 	str	x0, [x29,#120]
	ASSERT_RTNL();
ffff8000113af4ec:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af4ec: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af4f0:	34004000 	cbz	w0, ffff8000113afcf0 <__netdev_update_features+0x838>
	return (dev->features & ~dev->hw_features) | dev->wanted_features;
ffff8000113af4f4:	f9406ac3 	ldr	x3, [x22,#208]
ffff8000113af4f8:	f94066c1 	ldr	x1, [x22,#200]
ffff8000113af4fc:	f9406ec2 	ldr	x2, [x22,#216]
	if (dev->netdev_ops->ndo_fix_features)
ffff8000113af500:	f940fac0 	ldr	x0, [x22,#496]
ffff8000113af504:	8a230021 	bic	x1, x1, x3
ffff8000113af508:	aa020021 	orr	x1, x1, x2
ffff8000113af50c:	f940c402 	ldr	x2, [x0,#392]
	features = netdev_get_wanted_features(dev);
ffff8000113af510:	f90033a1 	str	x1, [x29,#96]
	if (dev->netdev_ops->ndo_fix_features)
ffff8000113af514:	b4001f22 	cbz	x2, ffff8000113af8f8 <__netdev_update_features+0x440>
		features = dev->netdev_ops->ndo_fix_features(dev, features);
ffff8000113af518:	aa1603e0 	mov	x0, x22
ffff8000113af51c:	d63f0040 	blr	x2
ffff8000113af520:	f90033a0 	str	x0, [x29,#96]
ffff8000113af524:	aa0003f8 	mov	x24, x0
	if ((features & NETIF_F_HW_CSUM) &&
ffff8000113af528:	36180098 	tbz	w24, #3, ffff8000113af538 <__netdev_update_features+0x80>
	    (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
ffff8000113af52c:	d2800240 	mov	x0, #0x12                  	// #18
	if ((features & NETIF_F_HW_CSUM) &&
ffff8000113af530:	ea00031f 	tst	x24, x0
ffff8000113af534:	54003be1 	b.ne	ffff8000113afcb0 <__netdev_update_features+0x7f8>
	if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) {
ffff8000113af538:	d2a003a0 	mov	x0, #0x1d0000              	// #1900544
ffff8000113af53c:	ea00031f 	tst	x24, x0
ffff8000113af540:	54000040 	b.eq	ffff8000113af548 <__netdev_update_features+0x90>
ffff8000113af544:	360017b8 	tbz	w24, #0, ffff8000113af838 <__netdev_update_features+0x380>
	if ((features & NETIF_F_TSO) && !(features & NETIF_F_HW_CSUM) &&
ffff8000113af548:	d2800140 	mov	x0, #0xa                   	// #10
ffff8000113af54c:	f2a00020 	movk	x0, #0x1, lsl #16
ffff8000113af550:	8a000300 	and	x0, x24, x0
ffff8000113af554:	f140401f 	cmp	x0, #0x10, lsl #12
ffff8000113af558:	54001880 	b.eq	ffff8000113af868 <__netdev_update_features+0x3b0>
	if ((features & NETIF_F_TSO6) && !(features & NETIF_F_HW_CSUM) &&
ffff8000113af55c:	d2800300 	mov	x0, #0x18                  	// #24
ffff8000113af560:	f2a00200 	movk	x0, #0x10, lsl #16
ffff8000113af564:	8a000300 	and	x0, x24, x0
ffff8000113af568:	f144001f 	cmp	x0, #0x100, lsl #12
ffff8000113af56c:	54001960 	b.eq	ffff8000113af898 <__netdev_update_features+0x3e0>
	if ((features & NETIF_F_TSO_MANGLEID) && !(features & NETIF_F_TSO))
ffff8000113af570:	d2a00120 	mov	x0, #0x90000               	// #589824
ffff8000113af574:	8a000300 	and	x0, x24, x0
		features &= ~NETIF_F_TSO_MANGLEID;
ffff8000113af578:	f142001f 	cmp	x0, #0x80, lsl #12
ffff8000113af57c:	926cfb00 	and	x0, x24, #0xfffffffffff7ffff
ffff8000113af580:	9a980018 	csel	x24, x0, x24, eq
	if ((features & NETIF_F_ALL_TSO) == NETIF_F_TSO_ECN)
ffff8000113af584:	d2a003a0 	mov	x0, #0x1d0000              	// #1900544
ffff8000113af588:	8a000300 	and	x0, x24, x0
		features &= ~NETIF_F_TSO_ECN;
ffff8000113af58c:	f141001f 	cmp	x0, #0x40, lsl #12
ffff8000113af590:	926dfb00 	and	x0, x24, #0xfffffffffffbffff
ffff8000113af594:	9a980018 	csel	x24, x0, x24, eq
	if ((features & NETIF_F_GSO) && !(features & NETIF_F_SG)) {
ffff8000113af598:	d2810020 	mov	x0, #0x801                 	// #2049
ffff8000113af59c:	8a000300 	and	x0, x24, x0
ffff8000113af5a0:	f120001f 	cmp	x0, #0x800
ffff8000113af5a4:	54001b20 	b.eq	ffff8000113af908 <__netdev_update_features+0x450>
	if ((features & dev->gso_partial_features) &&
ffff8000113af5a8:	f9407ec1 	ldr	x1, [x22,#248]
ffff8000113af5ac:	ea01031f 	tst	x24, x1
ffff8000113af5b0:	54000040 	b.eq	ffff8000113af5b8 <__netdev_update_features+0x100>
ffff8000113af5b4:	36e01358 	tbz	w24, #28, ffff8000113af81c <__netdev_update_features+0x364>
	if (!(features & NETIF_F_RXCSUM)) {
ffff8000113af5b8:	b7400058 	tbnz	x24, #40, ffff8000113af5c0 <__netdev_update_features+0x108>
		if (features & NETIF_F_GRO_HW) {
ffff8000113af5bc:	b7b81238 	tbnz	x24, #55, ffff8000113af800 <__netdev_update_features+0x348>
	if (features & NETIF_F_RXFCS) {
ffff8000113af5c0:	b65801f8 	tbz	x24, #43, ffff8000113af5fc <__netdev_update_features+0x144>
		if (features & NETIF_F_LRO) {
ffff8000113af5c4:	367800f8 	tbz	w24, #15, ffff8000113af5e0 <__netdev_update_features+0x128>
			netdev_dbg(dev, "Dropping LRO feature since RX-FCS is requested.\n");
ffff8000113af5c8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af5c8: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af5cc:	91000000 	add	x0, x0, #0x0
			ffff8000113af5cc: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af5d0:	91078000 	add	x0, x0, #0x1e0
ffff8000113af5d4:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af5d8:	37103b61 	tbnz	w1, #2, ffff8000113afd44 <__netdev_update_features+0x88c>
			features &= ~NETIF_F_LRO;
ffff8000113af5dc:	9270fb18 	and	x24, x24, #0xffffffffffff7fff
		if (features & NETIF_F_GRO_HW) {
ffff8000113af5e0:	b6b800f8 	tbz	x24, #55, ffff8000113af5fc <__netdev_update_features+0x144>
			netdev_dbg(dev, "Dropping HW-GRO feature since RX-FCS is requested.\n");
ffff8000113af5e4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af5e4: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af5e8:	91000000 	add	x0, x0, #0x0
			ffff8000113af5e8: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af5ec:	91082000 	add	x0, x0, #0x208
ffff8000113af5f0:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af5f4:	371039c1 	tbnz	w1, #2, ffff8000113afd2c <__netdev_update_features+0x874>
			features &= ~NETIF_F_GRO_HW;
ffff8000113af5f8:	9248fb18 	and	x24, x24, #0xff7fffffffffffff
	__READ_ONCE_SIZE;
ffff8000113af5fc:	f94056d3 	ldr	x19, [x22,#168]
	netdev_for_each_upper_dev_rcu(dev, upper, iter)
ffff8000113af600:	9102a2d5 	add	x21, x22, #0xa8
	features = netdev_fix_features(dev, features);
ffff8000113af604:	f90033b8 	str	x24, [x29,#96]
	if (&upper->list == &dev->adj_list.upper)
ffff8000113af608:	eb1302bf 	cmp	x21, x19
ffff8000113af60c:	54001c40 	b.eq	ffff8000113af994 <__netdev_update_features+0x4dc>
	return upper->dev;
ffff8000113af610:	f85e8264 	ldur	x4, [x19,#-24]
	netdev_for_each_upper_dev_rcu(dev, upper, iter)
ffff8000113af614:	aa1803f4 	mov	x20, x24
ffff8000113af618:	b40002c4 	cbz	x4, ffff8000113af670 <__netdev_update_features+0x1b8>
			netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n",
ffff8000113af61c:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af61c: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af620:	91000318 	add	x24, x24, #0x0
			ffff8000113af620: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af624:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af624: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb20
ffff8000113af628:	9108c318 	add	x24, x24, #0x230
ffff8000113af62c:	91000019 	add	x25, x0, #0x0
			ffff8000113af62c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb20
		feature = __NETIF_F_BIT(feature_bit);
ffff8000113af630:	d2900000 	mov	x0, #0x8000                	// #32768
ffff8000113af634:	f90037a0 	str	x0, [x29,#104]
		if (!(upper->wanted_features & feature)
ffff8000113af638:	f9406c80 	ldr	x0, [x4,#216]
ffff8000113af63c:	377800c0 	tbnz	w0, #15, ffff8000113af654 <__netdev_update_features+0x19c>
		    && (features & feature)) {
ffff8000113af640:	367800b4 	tbz	w20, #15, ffff8000113af654 <__netdev_update_features+0x19c>
			netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n",
ffff8000113af644:	79404703 	ldrh	w3, [x24,#34]
ffff8000113af648:	92900001 	mov	x1, #0xffffffffffff7fff    	// #-32769
ffff8000113af64c:	37101a83 	tbnz	w3, #2, ffff8000113af99c <__netdev_update_features+0x4e4>
			features &= ~feature;
ffff8000113af650:	8a010294 	and	x20, x20, x1
		features = netdev_sync_upper_features(dev, upper, features);
ffff8000113af654:	f90033b4 	str	x20, [x29,#96]
ffff8000113af658:	f9400263 	ldr	x3, [x19]
	if (&upper->list == &dev->adj_list.upper)
ffff8000113af65c:	eb0302bf 	cmp	x21, x3
ffff8000113af660:	aa0303f3 	mov	x19, x3
ffff8000113af664:	54000060 	b.eq	ffff8000113af670 <__netdev_update_features+0x1b8>
	return upper->dev;
ffff8000113af668:	f85e8064 	ldur	x4, [x3,#-24]
	netdev_for_each_upper_dev_rcu(dev, upper, iter)
ffff8000113af66c:	b5fffe24 	cbnz	x4, ffff8000113af630 <__netdev_update_features+0x178>
	if (dev->features == features)
ffff8000113af670:	f94066c0 	ldr	x0, [x22,#200]
ffff8000113af674:	eb14001f 	cmp	x0, x20
ffff8000113af678:	54001440 	b.eq	ffff8000113af900 <__netdev_update_features+0x448>
	netdev_dbg(dev, "Features changed: %pNF -> %pNF\n",
ffff8000113af67c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af67c: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af680:	91000000 	add	x0, x0, #0x0
			ffff8000113af680: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af684:	91096000 	add	x0, x0, #0x258
ffff8000113af688:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af68c:	37102b81 	tbnz	w1, #2, ffff8000113afbfc <__netdev_update_features+0x744>
	if (dev->netdev_ops->ndo_set_features)
ffff8000113af690:	f940fac0 	ldr	x0, [x22,#496]
ffff8000113af694:	f940c819 	ldr	x25, [x0,#400]
ffff8000113af698:	b40000d9 	cbz	x25, ffff8000113af6b0 <__netdev_update_features+0x1f8>
		err = dev->netdev_ops->ndo_set_features(dev, features);
ffff8000113af69c:	f94033a1 	ldr	x1, [x29,#96]
ffff8000113af6a0:	aa1603e0 	mov	x0, x22
ffff8000113af6a4:	d63f0320 	blr	x25
ffff8000113af6a8:	2a0003f9 	mov	w25, w0
	if (unlikely(err < 0)) {
ffff8000113af6ac:	37f83119 	tbnz	w25, #31, ffff8000113afccc <__netdev_update_features+0x814>
	netdev_for_each_lower_dev(dev, lower, iter)
ffff8000113af6b0:	aa1603f5 	mov	x21, x22
ffff8000113af6b4:	f84b8ea0 	ldr	x0, [x21,#184]!
	if (&lower->list == &dev->adj_list.lower)
ffff8000113af6b8:	eb0002bf 	cmp	x21, x0
ffff8000113af6bc:	d1006001 	sub	x1, x0, #0x18
ffff8000113af6c0:	54000420 	b.eq	ffff8000113af744 <__netdev_update_features+0x28c>
	return lower->dev;
ffff8000113af6c4:	f85e8014 	ldur	x20, [x0,#-24]
	*iter = lower->list.next;
ffff8000113af6c8:	f9400c33 	ldr	x19, [x1,#24]
	netdev_for_each_lower_dev(dev, lower, iter)
ffff8000113af6cc:	b40003d4 	cbz	x20, ffff8000113af744 <__netdev_update_features+0x28c>
			netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
ffff8000113af6d0:	90000018 	adrp	x24, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af6d0: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af6d4:	91000318 	add	x24, x24, #0x0
			ffff8000113af6d4: R_AARCH64_ADD_ABS_LO12_NC	__verbose
				netdev_WARN(upper, "failed to disable %pNF on %s!\n",
ffff8000113af6d8:	9000001a 	adrp	x26, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af6d8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xbe0
			netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
ffff8000113af6dc:	910a0318 	add	x24, x24, #0x280
				netdev_WARN(upper, "failed to disable %pNF on %s!\n",
ffff8000113af6e0:	9100035a 	add	x26, x26, #0x0
			ffff8000113af6e0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xbe0
ffff8000113af6e4:	14000004 	b	ffff8000113af6f4 <__netdev_update_features+0x23c>
	return lower->dev;
ffff8000113af6e8:	f85e8274 	ldur	x20, [x19,#-24]
	*iter = lower->list.next;
ffff8000113af6ec:	f9400273 	ldr	x19, [x19]
	netdev_for_each_lower_dev(dev, lower, iter)
ffff8000113af6f0:	b40002b4 	cbz	x20, ffff8000113af744 <__netdev_update_features+0x28c>
		feature = __NETIF_F_BIT(feature_bit);
ffff8000113af6f4:	d2900000 	mov	x0, #0x8000                	// #32768
ffff8000113af6f8:	f90037a0 	str	x0, [x29,#104]
		if (!(features & feature) && (lower->features & feature)) {
ffff8000113af6fc:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113af700:	377801e0 	tbnz	w0, #15, ffff8000113af73c <__netdev_update_features+0x284>
ffff8000113af704:	f9406681 	ldr	x1, [x20,#200]
ffff8000113af708:	367801a1 	tbz	w1, #15, ffff8000113af73c <__netdev_update_features+0x284>
			netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
ffff8000113af70c:	79404700 	ldrh	w0, [x24,#34]
ffff8000113af710:	92900001 	mov	x1, #0xffffffffffff7fff    	// #-32769
ffff8000113af714:	37101a40 	tbnz	w0, #2, ffff8000113afa5c <__netdev_update_features+0x5a4>
			lower->wanted_features &= ~feature;
ffff8000113af718:	f9406e82 	ldr	x2, [x20,#216]
			netdev_update_features(lower);
ffff8000113af71c:	aa1403e0 	mov	x0, x20
			lower->wanted_features &= ~feature;
ffff8000113af720:	8a010041 	and	x1, x2, x1
ffff8000113af724:	f9006e81 	str	x1, [x20,#216]
			netdev_update_features(lower);
ffff8000113af728:	94000000 	bl	ffff8000113afd74 <netdev_update_features>
			ffff8000113af728: R_AARCH64_CALL26	netdev_update_features
			if (unlikely(lower->features & feature))
ffff8000113af72c:	f9406680 	ldr	x0, [x20,#200]
ffff8000113af730:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113af734:	ea00003f 	tst	x1, x0
ffff8000113af738:	54001461 	b.ne	ffff8000113af9c4 <__netdev_update_features+0x50c>
	if (&lower->list == &dev->adj_list.lower)
ffff8000113af73c:	eb1302bf 	cmp	x21, x19
ffff8000113af740:	54fffd41 	b.ne	ffff8000113af6e8 <__netdev_update_features+0x230>
	if (!err) {
ffff8000113af744:	35000459 	cbnz	w25, ffff8000113af7cc <__netdev_update_features+0x314>
		netdev_features_t diff = features ^ dev->features;
ffff8000113af748:	f94033a1 	ldr	x1, [x29,#96]
ffff8000113af74c:	f94066d3 	ldr	x19, [x22,#200]
ffff8000113af750:	aa0103e0 	mov	x0, x1
ffff8000113af754:	ca130033 	eor	x19, x1, x19
		if (diff & NETIF_F_RX_UDP_TUNNEL_PORT) {
ffff8000113af758:	b6a00173 	tbz	x19, #52, ffff8000113af784 <__netdev_update_features+0x2cc>
			if (features & NETIF_F_RX_UDP_TUNNEL_PORT) {
ffff8000113af75c:	b6a01081 	tbz	x1, #52, ffff8000113af96c <__netdev_update_features+0x4b4>
				dev->features = features;
ffff8000113af760:	f90066c1 	str	x1, [x22,#200]
void udp_tunnel_notify_add_rx_port(struct socket *sock, unsigned short type);
void udp_tunnel_notify_del_rx_port(struct socket *sock, unsigned short type);

static inline void udp_tunnel_get_rx_info(struct net_device *dev)
{
	ASSERT_RTNL();
ffff8000113af764:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af764: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af768:	34001c20 	cbz	w0, ffff8000113afaec <__netdev_update_features+0x634>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af76c:	d2800380 	mov	x0, #0x1c                  	// #28
ffff8000113af770:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af774:	f90037b6 	str	x22, [x29,#104]
ffff8000113af778:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af77c:	97ffc25f 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113af780:	f94033a0 	ldr	x0, [x29,#96]
		if (diff & NETIF_F_HW_VLAN_CTAG_FILTER) {
ffff8000113af784:	36480213 	tbz	w19, #9, ffff8000113af7c4 <__netdev_update_features+0x30c>
			if (features & NETIF_F_HW_VLAN_CTAG_FILTER) {
ffff8000113af788:	36480ce0 	tbz	w0, #9, ffff8000113af924 <__netdev_update_features+0x46c>
				dev->features = features;
ffff8000113af78c:	f90066c0 	str	x0, [x22,#200]
	ASSERT_RTNL();
ffff8000113af790:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af790: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af794:	34002020 	cbz	w0, ffff8000113afb98 <__netdev_update_features+0x6e0>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af798:	d28003e0 	mov	x0, #0x1f                  	// #31
ffff8000113af79c:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af7a0:	f90037b6 	str	x22, [x29,#104]
ffff8000113af7a4:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af7a8:	97ffc254 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113af7ac:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113af7b0:	7100041f 	cmp	w0, #0x1
ffff8000113af7b4:	5400006d 	b.le	ffff8000113af7c0 <__netdev_update_features+0x308>
ffff8000113af7b8:	52800039 	mov	w25, #0x1                   	// #1
ffff8000113af7bc:	4b000339 	sub	w25, w25, w0
ffff8000113af7c0:	f94033a0 	ldr	x0, [x29,#96]
		if (diff & NETIF_F_HW_VLAN_STAG_FILTER) {
ffff8000113af7c4:	b7780793 	tbnz	x19, #47, ffff8000113af8b4 <__netdev_update_features+0x3fc>
		dev->features = features;
ffff8000113af7c8:	f90066c0 	str	x0, [x22,#200]
	return err < 0 ? 0 : 1;
ffff8000113af7cc:	2a3903e0 	mvn	w0, w25
ffff8000113af7d0:	531f7c00 	lsr	w0, w0, #31
}
ffff8000113af7d4:	f9403fa2 	ldr	x2, [x29,#120]
ffff8000113af7d8:	f94002e1 	ldr	x1, [x23]
			ffff8000113af7d8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113af7dc:	eb01005f 	cmp	x2, x1
ffff8000113af7e0:	54002a41 	b.ne	ffff8000113afd28 <__netdev_update_features+0x870>
ffff8000113af7e4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113af7e8:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113af7ec:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113af7f0:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113af7f4:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113af7f8:	a8c87bfd 	ldp	x29, x30, [sp],#128
ffff8000113af7fc:	d65f03c0 	ret
			netdev_dbg(dev, "Dropping NETIF_F_GRO_HW since no RXCSUM feature.\n");
ffff8000113af800:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af800: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af804:	91000000 	add	x0, x0, #0x0
			ffff8000113af804: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af808:	9106e000 	add	x0, x0, #0x1b8
ffff8000113af80c:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af810:	37102a61 	tbnz	w1, #2, ffff8000113afd5c <__netdev_update_features+0x8a4>
			features &= ~NETIF_F_GRO_HW;
ffff8000113af814:	9248fb18 	and	x24, x24, #0xff7fffffffffffff
ffff8000113af818:	17ffff6a 	b	ffff8000113af5c0 <__netdev_update_features+0x108>
		netdev_dbg(dev,
ffff8000113af81c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af81c: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af820:	91000000 	add	x0, x0, #0x0
			ffff8000113af820: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af824:	91064000 	add	x0, x0, #0x190
ffff8000113af828:	79404402 	ldrh	w2, [x0,#34]
ffff8000113af82c:	37101f62 	tbnz	w2, #2, ffff8000113afc18 <__netdev_update_features+0x760>
		features &= ~dev->gso_partial_features;
ffff8000113af830:	8a210318 	bic	x24, x24, x1
ffff8000113af834:	17ffff61 	b	ffff8000113af5b8 <__netdev_update_features+0x100>
		netdev_dbg(dev, "Dropping TSO features since no SG feature.\n");
ffff8000113af838:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af838: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af83c:	91000000 	add	x0, x0, #0x0
			ffff8000113af83c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af840:	9103c000 	add	x0, x0, #0xf0
ffff8000113af844:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af848:	37101d01 	tbnz	w1, #2, ffff8000113afbe8 <__netdev_update_features+0x730>
		features &= ~NETIF_F_ALL_TSO;
ffff8000113af84c:	92a003a0 	mov	x0, #0xffffffffffe2ffff    	// #-1900545
ffff8000113af850:	8a000318 	and	x24, x24, x0
	if ((features & NETIF_F_TSO) && !(features & NETIF_F_HW_CSUM) &&
ffff8000113af854:	d2800140 	mov	x0, #0xa                   	// #10
ffff8000113af858:	f2a00020 	movk	x0, #0x1, lsl #16
ffff8000113af85c:	8a000300 	and	x0, x24, x0
ffff8000113af860:	f140401f 	cmp	x0, #0x10, lsl #12
ffff8000113af864:	54ffe7c1 	b.ne	ffff8000113af55c <__netdev_update_features+0xa4>
		netdev_dbg(dev, "Dropping TSO features since no CSUM feature.\n");
ffff8000113af868:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af868: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af86c:	91000000 	add	x0, x0, #0x0
			ffff8000113af86c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af870:	91046000 	add	x0, x0, #0x118
ffff8000113af874:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af878:	37101f61 	tbnz	w1, #2, ffff8000113afc64 <__netdev_update_features+0x7ac>
		features &= ~NETIF_F_TSO_ECN;
ffff8000113af87c:	92a000a0 	mov	x0, #0xfffffffffffaffff    	// #-327681
ffff8000113af880:	8a000318 	and	x24, x24, x0
	if ((features & NETIF_F_TSO6) && !(features & NETIF_F_HW_CSUM) &&
ffff8000113af884:	d2800300 	mov	x0, #0x18                  	// #24
ffff8000113af888:	f2a00200 	movk	x0, #0x10, lsl #16
ffff8000113af88c:	8a000300 	and	x0, x24, x0
ffff8000113af890:	f144001f 	cmp	x0, #0x100, lsl #12
ffff8000113af894:	54ffe6e1 	b.ne	ffff8000113af570 <__netdev_update_features+0xb8>
		netdev_dbg(dev, "Dropping TSO6 features since no CSUM feature.\n");
ffff8000113af898:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af898: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af89c:	91000000 	add	x0, x0, #0x0
			ffff8000113af89c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af8a0:	91050000 	add	x0, x0, #0x140
ffff8000113af8a4:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af8a8:	37101d21 	tbnz	w1, #2, ffff8000113afc4c <__netdev_update_features+0x794>
		features &= ~NETIF_F_TSO6;
ffff8000113af8ac:	926bfb18 	and	x24, x24, #0xffffffffffefffff
ffff8000113af8b0:	17ffff30 	b	ffff8000113af570 <__netdev_update_features+0xb8>
			if (features & NETIF_F_HW_VLAN_STAG_FILTER) {
ffff8000113af8b4:	b67804a0 	tbz	x0, #47, ffff8000113af948 <__netdev_update_features+0x490>
				dev->features = features;
ffff8000113af8b8:	f90066c0 	str	x0, [x22,#200]
	ASSERT_RTNL();
ffff8000113af8bc:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af8bc: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af8c0:	34000e20 	cbz	w0, ffff8000113afa84 <__netdev_update_features+0x5cc>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af8c4:	d2800420 	mov	x0, #0x21                  	// #33
ffff8000113af8c8:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af8cc:	f90037b6 	str	x22, [x29,#104]
ffff8000113af8d0:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af8d4:	97ffc209 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113af8d8:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113af8dc:	7100041f 	cmp	w0, #0x1
ffff8000113af8e0:	540006ed 	b.le	ffff8000113af9bc <__netdev_update_features+0x504>
ffff8000113af8e4:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113af8e8:	4b000020 	sub	w0, w1, w0
				err |= vlan_get_rx_stag_filter_info(dev);
ffff8000113af8ec:	2a000339 	orr	w25, w25, w0
ffff8000113af8f0:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113af8f4:	17ffffb5 	b	ffff8000113af7c8 <__netdev_update_features+0x310>
ffff8000113af8f8:	aa0103f8 	mov	x24, x1
ffff8000113af8fc:	17ffff0b 	b	ffff8000113af528 <__netdev_update_features+0x70>
	int err = -1;
ffff8000113af900:	12800019 	mov	w25, #0xffffffff            	// #-1
ffff8000113af904:	17ffff6b 	b	ffff8000113af6b0 <__netdev_update_features+0x1f8>
		netdev_dbg(dev, "Dropping NETIF_F_GSO since no SG feature.\n");
ffff8000113af908:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af908: R_AARCH64_ADR_PREL_PG_HI21	__verbose
ffff8000113af90c:	91000000 	add	x0, x0, #0x0
			ffff8000113af90c: R_AARCH64_ADD_ABS_LO12_NC	__verbose
ffff8000113af910:	9105a000 	add	x0, x0, #0x168
ffff8000113af914:	79404401 	ldrh	w1, [x0,#34]
ffff8000113af918:	371018e1 	tbnz	w1, #2, ffff8000113afc34 <__netdev_update_features+0x77c>
		features &= ~NETIF_F_GSO;
ffff8000113af91c:	9274fb18 	and	x24, x24, #0xfffffffffffff7ff
ffff8000113af920:	17ffff22 	b	ffff8000113af5a8 <__netdev_update_features+0xf0>
	ASSERT_RTNL();
ffff8000113af924:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af924: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af928:	34001a80 	cbz	w0, ffff8000113afc78 <__netdev_update_features+0x7c0>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af92c:	d2800400 	mov	x0, #0x20                  	// #32
ffff8000113af930:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af934:	f90037b6 	str	x22, [x29,#104]
ffff8000113af938:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af93c:	97ffc1ef 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113af940:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113af944:	17ffffa0 	b	ffff8000113af7c4 <__netdev_update_features+0x30c>
	ASSERT_RTNL();
ffff8000113af948:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af948: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af94c:	340010a0 	cbz	w0, ffff8000113afb60 <__netdev_update_features+0x6a8>
ffff8000113af950:	d2800440 	mov	x0, #0x22                  	// #34
ffff8000113af954:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af958:	f90037b6 	str	x22, [x29,#104]
ffff8000113af95c:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af960:	97ffc1e6 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113af964:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113af968:	17ffff98 	b	ffff8000113af7c8 <__netdev_update_features+0x310>
	call_netdevice_notifiers(NETDEV_UDP_TUNNEL_PUSH_INFO, dev);
}

static inline void udp_tunnel_drop_rx_info(struct net_device *dev)
{
	ASSERT_RTNL();
ffff8000113af96c:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113af96c: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113af970:	34000dc0 	cbz	w0, ffff8000113afb28 <__netdev_update_features+0x670>
ffff8000113af974:	d28003a0 	mov	x0, #0x1d                  	// #29
ffff8000113af978:	9101a3a1 	add	x1, x29, #0x68
	struct netdev_notifier_info info = {
ffff8000113af97c:	f90037b6 	str	x22, [x29,#104]
ffff8000113af980:	f9003bbf 	str	xzr, [x29,#112]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113af984:	97ffc1dd 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
ffff8000113af988:	f94033a0 	ldr	x0, [x29,#96]
		if (diff & NETIF_F_HW_VLAN_CTAG_FILTER) {
ffff8000113af98c:	364ff1d3 	tbz	w19, #9, ffff8000113af7c4 <__netdev_update_features+0x30c>
ffff8000113af990:	17ffff7e 	b	ffff8000113af788 <__netdev_update_features+0x2d0>
	if (&upper->list == &dev->adj_list.upper)
ffff8000113af994:	aa1803f4 	mov	x20, x24
ffff8000113af998:	17ffff36 	b	ffff8000113af670 <__netdev_update_features+0x1b8>
			netdev_dbg(lower, "Dropping feature %pNF, upper dev %s has it off.\n",
ffff8000113af99c:	aa1603e1 	mov	x1, x22
ffff8000113af9a0:	aa1803e0 	mov	x0, x24
ffff8000113af9a4:	aa1903e2 	mov	x2, x25
ffff8000113af9a8:	9101a3a3 	add	x3, x29, #0x68
ffff8000113af9ac:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113af9ac: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113af9b0:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113af9b4:	aa2103e1 	mvn	x1, x1
ffff8000113af9b8:	17ffff26 	b	ffff8000113af650 <__netdev_update_features+0x198>
ffff8000113af9bc:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113af9c0:	17ffffcb 	b	ffff8000113af8ec <__netdev_update_features+0x434>
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113af9c4:	394002c0 	ldrb	w0, [x22]
ffff8000113af9c8:	34000440 	cbz	w0, ffff8000113afa50 <__netdev_update_features+0x598>
ffff8000113af9cc:	aa1603e0 	mov	x0, x22
ffff8000113af9d0:	97ffc7ef 	bl	ffff8000113a198c <netdev_name.part.103>
ffff8000113af9d4:	aa0003fc 	mov	x28, x0
	switch (dev->reg_state) {
ffff8000113af9d8:	395362c2 	ldrb	w2, [x22,#1240]
ffff8000113af9dc:	7100145f 	cmp	w2, #0x5
ffff8000113af9e0:	540002c9 	b.ls	ffff8000113afa38 <__netdev_update_features+0x580>
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff8000113af9e4:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af9e4: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113af9e8:	91000063 	add	x3, x3, #0x0
			ffff8000113af9e8: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113af9ec:	39400860 	ldrb	w0, [x3,#2]
	return " (unknown)";
ffff8000113af9f0:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af9f0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb8
ffff8000113af9f4:	9100037b 	add	x27, x27, #0x0
			ffff8000113af9f4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb8
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff8000113af9f8:	35000100 	cbnz	w0, ffff8000113afa18 <__netdev_update_features+0x560>
ffff8000113af9fc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113af9fc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc8
ffff8000113afa00:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afa04:	91000000 	add	x0, x0, #0x0
			ffff8000113afa04: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc8
ffff8000113afa08:	aa1603e1 	mov	x1, x22
ffff8000113afa0c:	39000864 	strb	w4, [x3,#2]
ffff8000113afa10:	94000000 	bl	0 <__warn_printk>
			ffff8000113afa10: R_AARCH64_CALL26	__warn_printk
ffff8000113afa14:	d4210000 	brk	#0x800
				netdev_WARN(upper, "failed to disable %pNF on %s!\n",
ffff8000113afa18:	aa1a03e0 	mov	x0, x26
ffff8000113afa1c:	aa1c03e1 	mov	x1, x28
ffff8000113afa20:	aa1b03e2 	mov	x2, x27
ffff8000113afa24:	9101a3a3 	add	x3, x29, #0x68
ffff8000113afa28:	aa1403e4 	mov	x4, x20
ffff8000113afa2c:	94000000 	bl	0 <__warn_printk>
			ffff8000113afa2c: R_AARCH64_CALL26	__warn_printk
ffff8000113afa30:	d4210000 	brk	#0x800
ffff8000113afa34:	17ffff42 	b	ffff8000113af73c <__netdev_update_features+0x284>
	switch (dev->reg_state) {
ffff8000113afa38:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa38: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x78
ffff8000113afa3c:	91000000 	add	x0, x0, #0x0
			ffff8000113afa3c: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x78
ffff8000113afa40:	78625801 	ldrh	w1, [x0,w2,uxtw #1]
ffff8000113afa44:	10000063 	adr	x3, ffff8000113afa50 <__netdev_update_features+0x598>
ffff8000113afa48:	8b21a861 	add	x1, x3, w1, sxth #2
ffff8000113afa4c:	d61f0020 	br	x1
		return "(unnamed net_device)";
ffff8000113afa50:	9000001c 	adrp	x28, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa50: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff8000113afa54:	9100039c 	add	x28, x28, #0x0
			ffff8000113afa54: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
ffff8000113afa58:	17ffffe0 	b	ffff8000113af9d8 <__netdev_update_features+0x520>
			netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
ffff8000113afa5c:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa5c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xbb0
ffff8000113afa60:	aa1603e1 	mov	x1, x22
ffff8000113afa64:	aa1803e0 	mov	x0, x24
ffff8000113afa68:	91000042 	add	x2, x2, #0x0
			ffff8000113afa68: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xbb0
ffff8000113afa6c:	9101a3a3 	add	x3, x29, #0x68
ffff8000113afa70:	aa1403e4 	mov	x4, x20
ffff8000113afa74:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afa74: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113afa78:	f94037a1 	ldr	x1, [x29,#104]
ffff8000113afa7c:	aa2103e1 	mvn	x1, x1
ffff8000113afa80:	17ffff26 	b	ffff8000113af718 <__netdev_update_features+0x260>
	ASSERT_RTNL();
ffff8000113afa84:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa84: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afa88:	91000063 	add	x3, x3, #0x0
			ffff8000113afa88: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afa8c:	39409460 	ldrb	w0, [x3,#37]
ffff8000113afa90:	35fff1a0 	cbnz	w0, ffff8000113af8c4 <__netdev_update_features+0x40c>
ffff8000113afa94:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa94: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afa98:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afa98: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc30
ffff8000113afa9c:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afaa0:	91000000 	add	x0, x0, #0x0
			ffff8000113afaa0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afaa4:	91000021 	add	x1, x1, #0x0
			ffff8000113afaa4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc30
ffff8000113afaa8:	52800be2 	mov	w2, #0x5f                  	// #95
ffff8000113afaac:	39009464 	strb	w4, [x3,#37]
ffff8000113afab0:	94000000 	bl	0 <__warn_printk>
			ffff8000113afab0: R_AARCH64_CALL26	__warn_printk
ffff8000113afab4:	d4210000 	brk	#0x800
ffff8000113afab8:	17ffff83 	b	ffff8000113af8c4 <__netdev_update_features+0x40c>
	case NETREG_UNREGISTERING: return " (unregistering)";
ffff8000113afabc:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afabc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x70
ffff8000113afac0:	9100037b 	add	x27, x27, #0x0
			ffff8000113afac0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x70
ffff8000113afac4:	17ffffd5 	b	ffff8000113afa18 <__netdev_update_features+0x560>
	case NETREG_REGISTERED: return "";
ffff8000113afac8:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afac8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x68
ffff8000113afacc:	9100037b 	add	x27, x27, #0x0
			ffff8000113afacc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x68
ffff8000113afad0:	17ffffd2 	b	ffff8000113afa18 <__netdev_update_features+0x560>
	case NETREG_UNINITIALIZED: return " (uninitialized)";
ffff8000113afad4:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afad4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x50
ffff8000113afad8:	9100037b 	add	x27, x27, #0x0
			ffff8000113afad8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x50
ffff8000113afadc:	17ffffcf 	b	ffff8000113afa18 <__netdev_update_features+0x560>
	case NETREG_DUMMY: return " (dummy)";
ffff8000113afae0:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afae0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa8
ffff8000113afae4:	9100037b 	add	x27, x27, #0x0
			ffff8000113afae4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa8
ffff8000113afae8:	17ffffcc 	b	ffff8000113afa18 <__netdev_update_features+0x560>
	ASSERT_RTNL();
ffff8000113afaec:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afaec: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afaf0:	91000063 	add	x3, x3, #0x0
			ffff8000113afaf0: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afaf4:	39408460 	ldrb	w0, [x3,#33]
ffff8000113afaf8:	35ffe3a0 	cbnz	w0, ffff8000113af76c <__netdev_update_features+0x2b4>
ffff8000113afafc:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afafc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afb00:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb00: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc10
ffff8000113afb04:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afb08:	91000000 	add	x0, x0, #0x0
			ffff8000113afb08: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afb0c:	91000021 	add	x1, x1, #0x0
			ffff8000113afb0c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc10
ffff8000113afb10:	52801042 	mov	w2, #0x82                  	// #130
ffff8000113afb14:	39008464 	strb	w4, [x3,#33]
ffff8000113afb18:	94000000 	bl	0 <__warn_printk>
			ffff8000113afb18: R_AARCH64_CALL26	__warn_printk
ffff8000113afb1c:	d4210000 	brk	#0x800
	return call_netdevice_notifiers_info(val, &info);
ffff8000113afb20:	d2800380 	mov	x0, #0x1c                  	// #28
ffff8000113afb24:	17ffff13 	b	ffff8000113af770 <__netdev_update_features+0x2b8>
	ASSERT_RTNL();
ffff8000113afb28:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb28: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afb2c:	91000063 	add	x3, x3, #0x0
			ffff8000113afb2c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afb30:	39408860 	ldrb	w0, [x3,#34]
ffff8000113afb34:	35fff200 	cbnz	w0, ffff8000113af974 <__netdev_update_features+0x4bc>
ffff8000113afb38:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb38: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afb3c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb3c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc10
ffff8000113afb40:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afb44:	91000000 	add	x0, x0, #0x0
			ffff8000113afb44: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afb48:	91000021 	add	x1, x1, #0x0
			ffff8000113afb48: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc10
ffff8000113afb4c:	52801102 	mov	w2, #0x88                  	// #136
ffff8000113afb50:	39008864 	strb	w4, [x3,#34]
ffff8000113afb54:	94000000 	bl	0 <__warn_printk>
			ffff8000113afb54: R_AARCH64_CALL26	__warn_printk
ffff8000113afb58:	d4210000 	brk	#0x800
ffff8000113afb5c:	17ffff86 	b	ffff8000113af974 <__netdev_update_features+0x4bc>
	ASSERT_RTNL();
ffff8000113afb60:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb60: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afb64:	91000063 	add	x3, x3, #0x0
			ffff8000113afb64: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afb68:	39409860 	ldrb	w0, [x3,#38]
ffff8000113afb6c:	35ffef20 	cbnz	w0, ffff8000113af950 <__netdev_update_features+0x498>
ffff8000113afb70:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb70: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afb74:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb74: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc30
ffff8000113afb78:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afb7c:	91000000 	add	x0, x0, #0x0
			ffff8000113afb7c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afb80:	91000021 	add	x1, x1, #0x0
			ffff8000113afb80: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc30
ffff8000113afb84:	52800ca2 	mov	w2, #0x65                  	// #101
ffff8000113afb88:	39009864 	strb	w4, [x3,#38]
ffff8000113afb8c:	94000000 	bl	0 <__warn_printk>
			ffff8000113afb8c: R_AARCH64_CALL26	__warn_printk
ffff8000113afb90:	d4210000 	brk	#0x800
ffff8000113afb94:	17ffff6f 	b	ffff8000113af950 <__netdev_update_features+0x498>
	ASSERT_RTNL();
ffff8000113afb98:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afb98: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afb9c:	91000063 	add	x3, x3, #0x0
			ffff8000113afb9c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afba0:	39408c60 	ldrb	w0, [x3,#35]
ffff8000113afba4:	35ffdfa0 	cbnz	w0, ffff8000113af798 <__netdev_update_features+0x2e0>
ffff8000113afba8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afba8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afbac:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afbac: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc30
ffff8000113afbb0:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afbb4:	91000000 	add	x0, x0, #0x0
			ffff8000113afbb4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afbb8:	91000021 	add	x1, x1, #0x0
			ffff8000113afbb8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc30
ffff8000113afbbc:	52800a62 	mov	w2, #0x53                  	// #83
ffff8000113afbc0:	39008c64 	strb	w4, [x3,#35]
ffff8000113afbc4:	94000000 	bl	0 <__warn_printk>
			ffff8000113afbc4: R_AARCH64_CALL26	__warn_printk
ffff8000113afbc8:	d4210000 	brk	#0x800
ffff8000113afbcc:	17fffef3 	b	ffff8000113af798 <__netdev_update_features+0x2e0>
	case NETREG_RELEASED: return " (released)";
ffff8000113afbd0:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afbd0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x98
ffff8000113afbd4:	9100037b 	add	x27, x27, #0x0
			ffff8000113afbd4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x98
ffff8000113afbd8:	17ffff90 	b	ffff8000113afa18 <__netdev_update_features+0x560>
	case NETREG_UNREGISTERED: return " (unregistered)";
ffff8000113afbdc:	9000001b 	adrp	x27, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afbdc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x88
ffff8000113afbe0:	9100037b 	add	x27, x27, #0x0
			ffff8000113afbe0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x88
ffff8000113afbe4:	17ffff8d 	b	ffff8000113afa18 <__netdev_update_features+0x560>
		netdev_dbg(dev, "Dropping TSO features since no SG feature.\n");
ffff8000113afbe8:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afbe8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x970
ffff8000113afbec:	aa1603e1 	mov	x1, x22
ffff8000113afbf0:	91000042 	add	x2, x2, #0x0
			ffff8000113afbf0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x970
ffff8000113afbf4:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afbf4: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113afbf8:	17ffff15 	b	ffff8000113af84c <__netdev_update_features+0x394>
	netdev_dbg(dev, "Features changed: %pNF -> %pNF\n",
ffff8000113afbfc:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afbfc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb58
ffff8000113afc00:	aa1603e1 	mov	x1, x22
ffff8000113afc04:	91000042 	add	x2, x2, #0x0
			ffff8000113afc04: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb58
ffff8000113afc08:	910322c3 	add	x3, x22, #0xc8
ffff8000113afc0c:	910183a4 	add	x4, x29, #0x60
ffff8000113afc10:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afc10: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113afc14:	17fffe9f 	b	ffff8000113af690 <__netdev_update_features+0x1d8>
		netdev_dbg(dev,
ffff8000113afc18:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc18: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa30
ffff8000113afc1c:	aa1603e1 	mov	x1, x22
ffff8000113afc20:	91000042 	add	x2, x2, #0x0
			ffff8000113afc20: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa30
ffff8000113afc24:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afc24: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113afc28:	f9407ec1 	ldr	x1, [x22,#248]
		features &= ~dev->gso_partial_features;
ffff8000113afc2c:	8a210318 	bic	x24, x24, x1
ffff8000113afc30:	17fffe62 	b	ffff8000113af5b8 <__netdev_update_features+0x100>
		netdev_dbg(dev, "Dropping NETIF_F_GSO since no SG feature.\n");
ffff8000113afc34:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc34: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa00
ffff8000113afc38:	aa1603e1 	mov	x1, x22
ffff8000113afc3c:	91000042 	add	x2, x2, #0x0
			ffff8000113afc3c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa00
ffff8000113afc40:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afc40: R_AARCH64_CALL26	__dynamic_netdev_dbg
		features &= ~NETIF_F_GSO;
ffff8000113afc44:	9274fb18 	and	x24, x24, #0xfffffffffffff7ff
ffff8000113afc48:	17fffe58 	b	ffff8000113af5a8 <__netdev_update_features+0xf0>
		netdev_dbg(dev, "Dropping TSO6 features since no CSUM feature.\n");
ffff8000113afc4c:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc4c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x9d0
ffff8000113afc50:	aa1603e1 	mov	x1, x22
ffff8000113afc54:	91000042 	add	x2, x2, #0x0
			ffff8000113afc54: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x9d0
ffff8000113afc58:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afc58: R_AARCH64_CALL26	__dynamic_netdev_dbg
		features &= ~NETIF_F_TSO6;
ffff8000113afc5c:	926bfb18 	and	x24, x24, #0xffffffffffefffff
ffff8000113afc60:	17fffe44 	b	ffff8000113af570 <__netdev_update_features+0xb8>
		netdev_dbg(dev, "Dropping TSO features since no CSUM feature.\n");
ffff8000113afc64:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc64: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x9a0
ffff8000113afc68:	aa1603e1 	mov	x1, x22
ffff8000113afc6c:	91000042 	add	x2, x2, #0x0
			ffff8000113afc6c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x9a0
ffff8000113afc70:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afc70: R_AARCH64_CALL26	__dynamic_netdev_dbg
ffff8000113afc74:	17ffff02 	b	ffff8000113af87c <__netdev_update_features+0x3c4>
	ASSERT_RTNL();
ffff8000113afc78:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc78: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afc7c:	91000063 	add	x3, x3, #0x0
			ffff8000113afc7c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afc80:	39409060 	ldrb	w0, [x3,#36]
ffff8000113afc84:	35ffe540 	cbnz	w0, ffff8000113af92c <__netdev_update_features+0x474>
ffff8000113afc88:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc88: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afc8c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afc8c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc30
ffff8000113afc90:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afc94:	91000000 	add	x0, x0, #0x0
			ffff8000113afc94: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afc98:	91000021 	add	x1, x1, #0x0
			ffff8000113afc98: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc30
ffff8000113afc9c:	52800b22 	mov	w2, #0x59                  	// #89
ffff8000113afca0:	39009064 	strb	w4, [x3,#36]
ffff8000113afca4:	94000000 	bl	0 <__warn_printk>
			ffff8000113afca4: R_AARCH64_CALL26	__warn_printk
ffff8000113afca8:	d4210000 	brk	#0x800
ffff8000113afcac:	17ffff20 	b	ffff8000113af92c <__netdev_update_features+0x474>
		netdev_warn(dev, "mixed HW and IP checksum settings.\n");
ffff8000113afcb0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afcb0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x948
ffff8000113afcb4:	aa1603e0 	mov	x0, x22
ffff8000113afcb8:	91000021 	add	x1, x1, #0x0
			ffff8000113afcb8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x948
ffff8000113afcbc:	94000000 	bl	ffff80001139e95c <gro_find_complete_by_type>
			ffff8000113afcbc: R_AARCH64_CALL26	netdev_warn
		features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
ffff8000113afcc0:	92800240 	mov	x0, #0xffffffffffffffed    	// #-19
ffff8000113afcc4:	8a000318 	and	x24, x24, x0
ffff8000113afcc8:	17fffe1c 	b	ffff8000113af538 <__netdev_update_features+0x80>
		netdev_err(dev,
ffff8000113afccc:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afccc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb78
ffff8000113afcd0:	aa1603e0 	mov	x0, x22
ffff8000113afcd4:	91000021 	add	x1, x1, #0x0
			ffff8000113afcd4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb78
ffff8000113afcd8:	2a1903e2 	mov	w2, w25
ffff8000113afcdc:	910183a3 	add	x3, x29, #0x60
ffff8000113afce0:	910322c4 	add	x4, x22, #0xc8
ffff8000113afce4:	94000000 	bl	ffff80001139e8b4 <passthru_features_check+0xc>
			ffff8000113afce4: R_AARCH64_CALL26	netdev_err
		return -1;
ffff8000113afce8:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113afcec:	17fffeba 	b	ffff8000113af7d4 <__netdev_update_features+0x31c>
	ASSERT_RTNL();
ffff8000113afcf0:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afcf0: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113afcf4:	91000063 	add	x3, x3, #0x0
			ffff8000113afcf4: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113afcf8:	39408060 	ldrb	w0, [x3,#32]
ffff8000113afcfc:	35ffbfc0 	cbnz	w0, ffff8000113af4f4 <__netdev_update_features+0x3c>
ffff8000113afd00:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afd00: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113afd04:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afd04: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113afd08:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113afd0c:	91000000 	add	x0, x0, #0x0
			ffff8000113afd0c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113afd10:	91000021 	add	x1, x1, #0x0
			ffff8000113afd10: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113afd14:	528465a2 	mov	w2, #0x232d                	// #9005
ffff8000113afd18:	39008064 	strb	w4, [x3,#32]
ffff8000113afd1c:	94000000 	bl	0 <__warn_printk>
			ffff8000113afd1c: R_AARCH64_CALL26	__warn_printk
ffff8000113afd20:	d4210000 	brk	#0x800
ffff8000113afd24:	17fffdf4 	b	ffff8000113af4f4 <__netdev_update_features+0x3c>
}
ffff8000113afd28:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113afd28: R_AARCH64_CALL26	__stack_chk_fail
			netdev_dbg(dev, "Dropping HW-GRO feature since RX-FCS is requested.\n");
ffff8000113afd2c:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afd2c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xae8
ffff8000113afd30:	aa1603e1 	mov	x1, x22
ffff8000113afd34:	91000042 	add	x2, x2, #0x0
			ffff8000113afd34: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xae8
ffff8000113afd38:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afd38: R_AARCH64_CALL26	__dynamic_netdev_dbg
			features &= ~NETIF_F_GRO_HW;
ffff8000113afd3c:	9248fb18 	and	x24, x24, #0xff7fffffffffffff
ffff8000113afd40:	17fffe2f 	b	ffff8000113af5fc <__netdev_update_features+0x144>
			netdev_dbg(dev, "Dropping LRO feature since RX-FCS is requested.\n");
ffff8000113afd44:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afd44: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xab0
ffff8000113afd48:	aa1603e1 	mov	x1, x22
ffff8000113afd4c:	91000042 	add	x2, x2, #0x0
			ffff8000113afd4c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xab0
ffff8000113afd50:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afd50: R_AARCH64_CALL26	__dynamic_netdev_dbg
			features &= ~NETIF_F_LRO;
ffff8000113afd54:	9270fb18 	and	x24, x24, #0xffffffffffff7fff
ffff8000113afd58:	17fffe22 	b	ffff8000113af5e0 <__netdev_update_features+0x128>
			netdev_dbg(dev, "Dropping NETIF_F_GRO_HW since no RXCSUM feature.\n");
ffff8000113afd5c:	90000002 	adrp	x2, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afd5c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa78
ffff8000113afd60:	aa1603e1 	mov	x1, x22
ffff8000113afd64:	91000042 	add	x2, x2, #0x0
			ffff8000113afd64: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa78
ffff8000113afd68:	94000000 	bl	0 <__dynamic_netdev_dbg>
			ffff8000113afd68: R_AARCH64_CALL26	__dynamic_netdev_dbg
			features &= ~NETIF_F_GRO_HW;
ffff8000113afd6c:	9248fb18 	and	x24, x24, #0xff7fffffffffffff
ffff8000113afd70:	17fffe14 	b	ffff8000113af5c0 <__netdev_update_features+0x108>

ffff8000113afd74 <netdev_update_features>:
{
ffff8000113afd74:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113afd78:	910003fd 	mov	x29, sp
ffff8000113afd7c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113afd80:	aa0003f4 	mov	x20, x0
ffff8000113afd84:	aa1e03e0 	mov	x0, x30
ffff8000113afd88:	94000000 	bl	0 <_mcount>
			ffff8000113afd88: R_AARCH64_CALL26	_mcount
ffff8000113afd8c:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113afd8c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113afd90:	f9400261 	ldr	x1, [x19]
			ffff8000113afd90: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	if (__netdev_update_features(dev))
ffff8000113afd94:	aa1403e0 	mov	x0, x20
{
ffff8000113afd98:	f9001fa1 	str	x1, [x29,#56]
	if (__netdev_update_features(dev))
ffff8000113afd9c:	94000000 	bl	ffff8000113af4b8 <__netdev_update_features>
			ffff8000113afd9c: R_AARCH64_CALL26	__netdev_update_features
ffff8000113afda0:	340000c0 	cbz	w0, ffff8000113afdb8 <netdev_update_features+0x44>
	return call_netdevice_notifiers_info(val, &info);
ffff8000113afda4:	d2800180 	mov	x0, #0xc                   	// #12
ffff8000113afda8:	9100a3a1 	add	x1, x29, #0x28
	struct netdev_notifier_info info = {
ffff8000113afdac:	f90017b4 	str	x20, [x29,#40]
ffff8000113afdb0:	f9001bbf 	str	xzr, [x29,#48]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113afdb4:	97ffc0d1 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113afdb8:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113afdbc:	f9400260 	ldr	x0, [x19]
			ffff8000113afdbc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113afdc0:	eb00003f 	cmp	x1, x0
ffff8000113afdc4:	54000081 	b.ne	ffff8000113afdd4 <netdev_update_features+0x60>
ffff8000113afdc8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113afdcc:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113afdd0:	d65f03c0 	ret
ffff8000113afdd4:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113afdd4: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113afdd8 <dev_disable_lro>:
{
ffff8000113afdd8:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113afddc:	910003fd 	mov	x29, sp
ffff8000113afde0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113afde4:	aa0003f4 	mov	x20, x0
ffff8000113afde8:	aa1e03e0 	mov	x0, x30
ffff8000113afdec:	94000000 	bl	0 <_mcount>
			ffff8000113afdec: R_AARCH64_CALL26	_mcount
	dev->wanted_features &= ~NETIF_F_LRO;
ffff8000113afdf0:	f9406e81 	ldr	x1, [x20,#216]
	netdev_update_features(dev);
ffff8000113afdf4:	aa1403e0 	mov	x0, x20
	dev->wanted_features &= ~NETIF_F_LRO;
ffff8000113afdf8:	9270f821 	and	x1, x1, #0xffffffffffff7fff
ffff8000113afdfc:	f9006e81 	str	x1, [x20,#216]
	netdev_update_features(dev);
ffff8000113afe00:	94000000 	bl	ffff8000113afd74 <netdev_update_features>
			ffff8000113afe00: R_AARCH64_CALL26	netdev_update_features
	if (unlikely(dev->features & NETIF_F_LRO))
ffff8000113afe04:	f9406680 	ldr	x0, [x20,#200]
ffff8000113afe08:	37780240 	tbnz	w0, #15, ffff8000113afe50 <dev_disable_lro+0x78>
	netdev_for_each_lower_dev(dev, lower_dev, iter)
ffff8000113afe0c:	f84b8e80 	ldr	x0, [x20,#184]!
	if (&lower->list == &dev->adj_list.lower)
ffff8000113afe10:	eb00029f 	cmp	x20, x0
ffff8000113afe14:	d1006001 	sub	x1, x0, #0x18
ffff8000113afe18:	54000160 	b.eq	ffff8000113afe44 <dev_disable_lro+0x6c>
	return lower->dev;
ffff8000113afe1c:	f85e8000 	ldur	x0, [x0,#-24]
	*iter = lower->list.next;
ffff8000113afe20:	f9400c33 	ldr	x19, [x1,#24]
	netdev_for_each_lower_dev(dev, lower_dev, iter)
ffff8000113afe24:	b50000a0 	cbnz	x0, ffff8000113afe38 <dev_disable_lro+0x60>
ffff8000113afe28:	14000007 	b	ffff8000113afe44 <dev_disable_lro+0x6c>
	return lower->dev;
ffff8000113afe2c:	f85e8260 	ldur	x0, [x19,#-24]
	*iter = lower->list.next;
ffff8000113afe30:	f9400273 	ldr	x19, [x19]
	netdev_for_each_lower_dev(dev, lower_dev, iter)
ffff8000113afe34:	b4000080 	cbz	x0, ffff8000113afe44 <dev_disable_lro+0x6c>
		dev_disable_lro(lower_dev);
ffff8000113afe38:	94000000 	bl	ffff8000113afdd8 <dev_disable_lro>
			ffff8000113afe38: R_AARCH64_CALL26	dev_disable_lro
	if (&lower->list == &dev->adj_list.lower)
ffff8000113afe3c:	eb13029f 	cmp	x20, x19
ffff8000113afe40:	54ffff61 	b.ne	ffff8000113afe2c <dev_disable_lro+0x54>
}
ffff8000113afe44:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113afe48:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113afe4c:	d65f03c0 	ret
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113afe50:	39400280 	ldrb	w0, [x20]
ffff8000113afe54:	340001c0 	cbz	w0, ffff8000113afe8c <dev_disable_lro+0xb4>
ffff8000113afe58:	aa1403e0 	mov	x0, x20
ffff8000113afe5c:	97ffc6cc 	bl	ffff8000113a198c <netdev_name.part.103>
ffff8000113afe60:	aa0003e1 	mov	x1, x0
		netdev_WARN(dev, "failed to disable LRO!\n");
ffff8000113afe64:	aa1403e0 	mov	x0, x20
ffff8000113afe68:	f90017a1 	str	x1, [x29,#40]
ffff8000113afe6c:	97ffbf6b 	bl	ffff80001139fc18 <netdev_reg_state>
ffff8000113afe70:	aa0003e2 	mov	x2, x0
ffff8000113afe74:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113afe78:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afe78: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc50
ffff8000113afe7c:	91000000 	add	x0, x0, #0x0
			ffff8000113afe7c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc50
ffff8000113afe80:	94000000 	bl	0 <__warn_printk>
			ffff8000113afe80: R_AARCH64_CALL26	__warn_printk
ffff8000113afe84:	d4210000 	brk	#0x800
ffff8000113afe88:	17ffffe1 	b	ffff8000113afe0c <dev_disable_lro+0x34>
		return "(unnamed net_device)";
ffff8000113afe8c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afe8c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff8000113afe90:	91000021 	add	x1, x1, #0x0
			ffff8000113afe90: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
ffff8000113afe94:	17fffff4 	b	ffff8000113afe64 <dev_disable_lro+0x8c>

ffff8000113afe98 <generic_xdp_install>:
{
ffff8000113afe98:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113afe9c:	910003fd 	mov	x29, sp
ffff8000113afea0:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113afea4:	aa0003f3 	mov	x19, x0
ffff8000113afea8:	aa1e03e0 	mov	x0, x30
ffff8000113afeac:	f90017a1 	str	x1, [x29,#40]
ffff8000113afeb0:	94000000 	bl	0 <_mcount>
			ffff8000113afeb0: R_AARCH64_CALL26	_mcount
	switch (xdp->command) {
ffff8000113afeb4:	f94017a1 	ldr	x1, [x29,#40]
	struct bpf_prog *old = rtnl_dereference(dev->xdp_prog);
ffff8000113afeb8:	f9419a60 	ldr	x0, [x19,#816]
	switch (xdp->command) {
ffff8000113afebc:	b9400022 	ldr	w2, [x1]
	struct bpf_prog *new = xdp->prog;
ffff8000113afec0:	f9400834 	ldr	x20, [x1,#16]
	switch (xdp->command) {
ffff8000113afec4:	340001e2 	cbz	w2, ffff8000113aff00 <generic_xdp_install+0x68>
ffff8000113afec8:	7100085f 	cmp	w2, #0x2
ffff8000113afecc:	54000121 	b.ne	ffff8000113afef0 <generic_xdp_install+0x58>
		xdp->prog_id = old ? old->aux->id : 0;
ffff8000113afed0:	b4000060 	cbz	x0, ffff8000113afedc <generic_xdp_install+0x44>
ffff8000113afed4:	f9401000 	ldr	x0, [x0,#32]
ffff8000113afed8:	b9401c00 	ldr	w0, [x0,#28]
ffff8000113afedc:	b9000820 	str	w0, [x1,#8]
}
ffff8000113afee0:	a94153f3 	ldp	x19, x20, [sp,#16]
	int ret = 0;
ffff8000113afee4:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113afee8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113afeec:	d65f03c0 	ret
		ret = -EINVAL;
ffff8000113afef0:	128002a0 	mov	w0, #0xffffffea            	// #-22
}
ffff8000113afef4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113afef8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113afefc:	d65f03c0 	ret
		rcu_assign_pointer(dev->xdp_prog, new);
ffff8000113aff00:	910cc261 	add	x1, x19, #0x330
ffff8000113aff04:	c89ffc34 	stlr	x20, [x1]
		if (old)
ffff8000113aff08:	b40002a0 	cbz	x0, ffff8000113aff5c <generic_xdp_install+0xc4>
			bpf_prog_put(old);
ffff8000113aff0c:	94000000 	bl	0 <bpf_prog_put>
			ffff8000113aff0c: R_AARCH64_CALL26	bpf_prog_put
		if (old && !new) {
ffff8000113aff10:	b40000b4 	cbz	x20, ffff8000113aff24 <generic_xdp_install+0x8c>
		netdev_WARN(dev, "failed to disable GRO_HW!\n");
ffff8000113aff14:	52800000 	mov	w0, #0x0                   	// #0
}
ffff8000113aff18:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113aff1c:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113aff20:	d65f03c0 	ret
	STATIC_KEY_CHECK_USE(key);
ffff8000113aff24:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113aff24: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113aff28:	39400000 	ldrb	w0, [x0]
			ffff8000113aff28: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113aff2c:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aff2c: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113aff30:	34000600 	cbz	w0, ffff8000113afff0 <generic_xdp_install+0x158>
ATOMIC_OPS(sub, sub, J)
ffff8000113aff34:	91000280 	add	x0, x20, #0x0
			ffff8000113aff34: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113aff38:	52800021 	mov	w1, #0x1                   	// #1
ffff8000113aff3c:	910d6004 	add	x4, x0, #0x358
ffff8000113aff40:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113aff44:	885f7c82 	ldxr	w2, [x4]
ffff8000113aff48:	4b010042 	sub	w2, w2, w1
ffff8000113aff4c:	88037c82 	stxr	w3, w2, [x4]
ffff8000113aff50:	35ffffa3 	cbnz	w3, ffff8000113aff44 <generic_xdp_install+0xac>
	int ret = 0;
ffff8000113aff54:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113aff58:	17ffffe7 	b	ffff8000113afef4 <generic_xdp_install+0x5c>
		} else if (new && !old) {
ffff8000113aff5c:	b4fffdd4 	cbz	x20, ffff8000113aff14 <generic_xdp_install+0x7c>
	STATIC_KEY_CHECK_USE(key);
ffff8000113aff60:	90000000 	adrp	x0, 0 <static_key_initialized>
			ffff8000113aff60: R_AARCH64_ADR_PREL_PG_HI21	static_key_initialized
ffff8000113aff64:	39400000 	ldrb	w0, [x0]
			ffff8000113aff64: R_AARCH64_LDST8_ABS_LO12_NC	static_key_initialized
ffff8000113aff68:	90000014 	adrp	x20, ffff80001139e37c <__my_cpu_offset>
			ffff8000113aff68: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff8000113aff6c:	34000560 	cbz	w0, ffff8000113b0018 <generic_xdp_install+0x180>
ATOMIC_OPS(add, add, I)
ffff8000113aff70:	91000280 	add	x0, x20, #0x0
			ffff8000113aff70: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113aff74:	910d6003 	add	x3, x0, #0x358
ffff8000113aff78:	f9800071 	prfm	pstl1strm, [x3]
ffff8000113aff7c:	885f7c61 	ldxr	w1, [x3]
ffff8000113aff80:	11000421 	add	w1, w1, #0x1
ffff8000113aff84:	88027c61 	stxr	w2, w1, [x3]
ffff8000113aff88:	35ffffa2 	cbnz	w2, ffff8000113aff7c <generic_xdp_install+0xe4>
			dev_disable_lro(dev);
ffff8000113aff8c:	aa1303e0 	mov	x0, x19
ffff8000113aff90:	94000000 	bl	ffff8000113afdd8 <dev_disable_lro>
			ffff8000113aff90: R_AARCH64_CALL26	dev_disable_lro
	dev->wanted_features &= ~NETIF_F_GRO_HW;
ffff8000113aff94:	f9406e61 	ldr	x1, [x19,#216]
	netdev_update_features(dev);
ffff8000113aff98:	aa1303e0 	mov	x0, x19
	dev->wanted_features &= ~NETIF_F_GRO_HW;
ffff8000113aff9c:	9248f821 	and	x1, x1, #0xff7fffffffffffff
ffff8000113affa0:	f9006e61 	str	x1, [x19,#216]
	netdev_update_features(dev);
ffff8000113affa4:	94000000 	bl	ffff8000113afd74 <netdev_update_features>
			ffff8000113affa4: R_AARCH64_CALL26	netdev_update_features
	if (unlikely(dev->features & NETIF_F_GRO_HW))
ffff8000113affa8:	f9406660 	ldr	x0, [x19,#200]
ffff8000113affac:	b6bffb40 	tbz	x0, #55, ffff8000113aff14 <generic_xdp_install+0x7c>
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113affb0:	39400260 	ldrb	w0, [x19]
ffff8000113affb4:	34000460 	cbz	w0, ffff8000113b0040 <generic_xdp_install+0x1a8>
ffff8000113affb8:	aa1303e0 	mov	x0, x19
ffff8000113affbc:	97ffc674 	bl	ffff8000113a198c <netdev_name.part.103>
ffff8000113affc0:	aa0003e1 	mov	x1, x0
		netdev_WARN(dev, "failed to disable GRO_HW!\n");
ffff8000113affc4:	aa1303e0 	mov	x0, x19
ffff8000113affc8:	f90017a1 	str	x1, [x29,#40]
ffff8000113affcc:	97ffbf13 	bl	ffff80001139fc18 <netdev_reg_state>
ffff8000113affd0:	aa0003e2 	mov	x2, x0
ffff8000113affd4:	f94017a1 	ldr	x1, [x29,#40]
ffff8000113affd8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113affd8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc80
ffff8000113affdc:	91000000 	add	x0, x0, #0x0
			ffff8000113affdc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc80
ffff8000113affe0:	94000000 	bl	0 <__warn_printk>
			ffff8000113affe0: R_AARCH64_CALL26	__warn_printk
ffff8000113affe4:	d4210000 	brk	#0x800
ffff8000113affe8:	52800000 	mov	w0, #0x0                   	// #0
ffff8000113affec:	17ffffcb 	b	ffff8000113aff18 <generic_xdp_install+0x80>
	STATIC_KEY_CHECK_USE(key);
ffff8000113afff0:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afff0: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113afff4:	91000282 	add	x2, x20, #0x0
			ffff8000113afff4: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113afff8:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113afff8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113afffc:	91000021 	add	x1, x1, #0x0
			ffff8000113afffc: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113b0000:	91000000 	add	x0, x0, #0x0
			ffff8000113b0000: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113b0004:	91004021 	add	x1, x1, #0x10
ffff8000113b0008:	910d6042 	add	x2, x2, #0x358
ffff8000113b000c:	94000000 	bl	0 <__warn_printk>
			ffff8000113b000c: R_AARCH64_CALL26	__warn_printk
ffff8000113b0010:	d4210000 	brk	#0x800
ffff8000113b0014:	17ffffc8 	b	ffff8000113aff34 <generic_xdp_install+0x9c>
	STATIC_KEY_CHECK_USE(key);
ffff8000113b0018:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0018: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x1a8
ffff8000113b001c:	91000282 	add	x2, x20, #0x0
			ffff8000113b001c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff8000113b0020:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0020: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x238
ffff8000113b0024:	91000021 	add	x1, x1, #0x0
			ffff8000113b0024: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x1a8
ffff8000113b0028:	91000000 	add	x0, x0, #0x0
			ffff8000113b0028: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x238
ffff8000113b002c:	9100a021 	add	x1, x1, #0x28
ffff8000113b0030:	910d6042 	add	x2, x2, #0x358
ffff8000113b0034:	94000000 	bl	0 <__warn_printk>
			ffff8000113b0034: R_AARCH64_CALL26	__warn_printk
ffff8000113b0038:	d4210000 	brk	#0x800
ffff8000113b003c:	17ffffcd 	b	ffff8000113aff70 <generic_xdp_install+0xd8>
		return "(unnamed net_device)";
ffff8000113b0040:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0040: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff8000113b0044:	91000021 	add	x1, x1, #0x0
			ffff8000113b0044: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
ffff8000113b0048:	17ffffdf 	b	ffff8000113affc4 <generic_xdp_install+0x12c>

ffff8000113b004c <netdev_change_features>:
{
ffff8000113b004c:	a9bc7bfd 	stp	x29, x30, [sp,#-64]!
ffff8000113b0050:	910003fd 	mov	x29, sp
ffff8000113b0054:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113b0058:	aa0003f4 	mov	x20, x0
ffff8000113b005c:	aa1e03e0 	mov	x0, x30
ffff8000113b0060:	94000000 	bl	0 <_mcount>
			ffff8000113b0060: R_AARCH64_CALL26	_mcount
ffff8000113b0064:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff8000113b0064: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113b0068:	f9400261 	ldr	x1, [x19]
			ffff8000113b0068: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	__netdev_update_features(dev);
ffff8000113b006c:	aa1403e0 	mov	x0, x20
{
ffff8000113b0070:	f9001fa1 	str	x1, [x29,#56]
	__netdev_update_features(dev);
ffff8000113b0074:	94000000 	bl	ffff8000113af4b8 <__netdev_update_features>
			ffff8000113b0074: R_AARCH64_CALL26	__netdev_update_features
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b0078:	9100a3a1 	add	x1, x29, #0x28
ffff8000113b007c:	d2800180 	mov	x0, #0xc                   	// #12
	struct netdev_notifier_info info = {
ffff8000113b0080:	f90017b4 	str	x20, [x29,#40]
ffff8000113b0084:	f9001bbf 	str	xzr, [x29,#48]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b0088:	97ffc01c 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
}
ffff8000113b008c:	f9401fa1 	ldr	x1, [x29,#56]
ffff8000113b0090:	f9400260 	ldr	x0, [x19]
			ffff8000113b0090: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113b0094:	eb00003f 	cmp	x1, x0
ffff8000113b0098:	54000081 	b.ne	ffff8000113b00a8 <netdev_change_features+0x5c>
ffff8000113b009c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113b00a0:	a8c47bfd 	ldp	x29, x30, [sp],#64
ffff8000113b00a4:	d65f03c0 	ret
ffff8000113b00a8:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113b00a8: R_AARCH64_CALL26	__stack_chk_fail

ffff8000113b00ac <register_netdevice>:
{
ffff8000113b00ac:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff8000113b00b0:	910003fd 	mov	x29, sp
ffff8000113b00b4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113b00b8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113b00bc:	aa0003f3 	mov	x19, x0
ffff8000113b00c0:	aa1e03e0 	mov	x0, x30
ffff8000113b00c4:	94000000 	bl	0 <_mcount>
			ffff8000113b00c4: R_AARCH64_CALL26	_mcount
ffff8000113b00c8:	90000014 	adrp	x20, 0 <__stack_chk_guard>
			ffff8000113b00c8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113b00cc:	f9400281 	ldr	x1, [x20]
			ffff8000113b00cc: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	BUG_ON(dev_boot_phase);
ffff8000113b00d0:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b00d0: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113b00d4:	b9400000 	ldr	w0, [x0]
			ffff8000113b00d4: R_AARCH64_LDST32_ABS_LO12_NC	.data
{
ffff8000113b00d8:	f90027a1 	str	x1, [x29,#72]
ffff8000113b00dc:	f9427a75 	ldr	x21, [x19,#1264]
	BUG_ON(dev_boot_phase);
ffff8000113b00e0:	35002320 	cbnz	w0, ffff8000113b0544 <register_netdevice+0x498>
	ASSERT_RTNL();
ffff8000113b00e4:	94000000 	bl	0 <rtnl_is_locked>
			ffff8000113b00e4: R_AARCH64_CALL26	rtnl_is_locked
ffff8000113b00e8:	34002100 	cbz	w0, ffff8000113b0508 <register_netdevice+0x45c>
	might_sleep();
ffff8000113b00ec:	94000000 	bl	0 <_cond_resched>
			ffff8000113b00ec: R_AARCH64_CALL26	_cond_resched
	BUG_ON(dev->reg_state != NETREG_UNINITIALIZED);
ffff8000113b00f0:	39536260 	ldrb	w0, [x19,#1240]
ffff8000113b00f4:	350022a0 	cbnz	w0, ffff8000113b0548 <register_netdevice+0x49c>
	BUG_ON(!net);
ffff8000113b00f8:	b4002255 	cbz	x21, ffff8000113b0540 <register_netdevice+0x494>
	ret = ethtool_check_ops(dev->ethtool_ops);
ffff8000113b00fc:	f940fe60 	ldr	x0, [x19,#504]
ffff8000113b0100:	94000000 	bl	0 <ethtool_check_ops>
			ffff8000113b0100: R_AARCH64_CALL26	ethtool_check_ops
	if (ret)
ffff8000113b0104:	34000120 	cbz	w0, ffff8000113b0128 <register_netdevice+0x7c>
}
ffff8000113b0108:	f94027a2 	ldr	x2, [x29,#72]
ffff8000113b010c:	f9400281 	ldr	x1, [x20]
			ffff8000113b010c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113b0110:	eb01005f 	cmp	x2, x1
ffff8000113b0114:	54001f81 	b.ne	ffff8000113b0504 <register_netdevice+0x458>
ffff8000113b0118:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113b011c:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113b0120:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff8000113b0124:	d65f03c0 	ret
	spin_lock_init(&dev->addr_list_lock);
ffff8000113b0128:	b9027a60 	str	w0, [x19,#632]
	ret = dev_get_valid_name(net, dev, dev->name);
ffff8000113b012c:	aa1303e1 	mov	x1, x19
ffff8000113b0130:	aa1503e0 	mov	x0, x21
ffff8000113b0134:	aa1303e2 	mov	x2, x19
ffff8000113b0138:	97ffc677 	bl	ffff8000113a1b14 <dev_get_valid_name>
	if (ret < 0)
ffff8000113b013c:	37fffe60 	tbnz	w0, #31, ffff8000113b0108 <register_netdevice+0x5c>
	name_node = netdev_name_node_alloc(dev, dev->name);
ffff8000113b0140:	aa1303e0 	mov	x0, x19
ffff8000113b0144:	aa1303e1 	mov	x1, x19
ffff8000113b0148:	97ffbd7e 	bl	ffff80001139f740 <netdev_name_node_alloc>
	if (!name_node)
ffff8000113b014c:	b4000da0 	cbz	x0, ffff8000113b0300 <register_netdevice+0x254>
	INIT_LIST_HEAD(&name_node->list);
ffff8000113b0150:	91004001 	add	x1, x0, #0x10
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113b0154:	f9000801 	str	x1, [x0,#16]
	list->prev = list;
ffff8000113b0158:	f9000c01 	str	x1, [x0,#24]
	if (dev->netdev_ops->ndo_init) {
ffff8000113b015c:	f940fa61 	ldr	x1, [x19,#496]
	dev->name_node = netdev_name_node_head_alloc(dev);
ffff8000113b0160:	f9000a60 	str	x0, [x19,#16]
	if (dev->netdev_ops->ndo_init) {
ffff8000113b0164:	f9400021 	ldr	x1, [x1]
ffff8000113b0168:	b4000181 	cbz	x1, ffff8000113b0198 <register_netdevice+0xec>
		ret = dev->netdev_ops->ndo_init(dev);
ffff8000113b016c:	aa1303e0 	mov	x0, x19
ffff8000113b0170:	d63f0020 	blr	x1
		if (ret) {
ffff8000113b0174:	6b1f001f 	cmp	w0, wzr
		ret = dev->netdev_ops->ndo_init(dev);
ffff8000113b0178:	2a0003f6 	mov	w22, w0
		if (ret) {
ffff8000113b017c:	540000e0 	b.eq	ffff8000113b0198 <register_netdevice+0xec>
				ret = -EIO;
ffff8000113b0180:	12800080 	mov	w0, #0xfffffffb            	// #-5
ffff8000113b0184:	1a80d2d6 	csel	w22, w22, w0, le
	kfree(name_node);
ffff8000113b0188:	f9400a60 	ldr	x0, [x19,#16]
ffff8000113b018c:	94000000 	bl	0 <kfree>
			ffff8000113b018c: R_AARCH64_CALL26	kfree
ffff8000113b0190:	2a1603e0 	mov	w0, w22
ffff8000113b0194:	17ffffdd 	b	ffff8000113b0108 <register_netdevice+0x5c>
	if (((dev->hw_features | dev->features) &
ffff8000113b0198:	f9406a63 	ldr	x3, [x19,#208]
ffff8000113b019c:	f9406664 	ldr	x4, [x19,#200]
ffff8000113b01a0:	aa030080 	orr	x0, x4, x3
ffff8000113b01a4:	364800c0 	tbz	w0, #9, ffff8000113b01bc <register_netdevice+0x110>
	    (!dev->netdev_ops->ndo_vlan_rx_add_vid ||
ffff8000113b01a8:	f940fa60 	ldr	x0, [x19,#496]
	     NETIF_F_HW_VLAN_CTAG_FILTER) &&
ffff8000113b01ac:	f9405001 	ldr	x1, [x0,#160]
ffff8000113b01b0:	b4000ba1 	cbz	x1, ffff8000113b0324 <register_netdevice+0x278>
	    (!dev->netdev_ops->ndo_vlan_rx_add_vid ||
ffff8000113b01b4:	f9405400 	ldr	x0, [x0,#168]
ffff8000113b01b8:	b4000b60 	cbz	x0, ffff8000113b0324 <register_netdevice+0x278>
	if (!dev->ifindex)
ffff8000113b01bc:	b9410262 	ldr	w2, [x19,#256]
ffff8000113b01c0:	34000a62 	cbz	w2, ffff8000113b030c <register_netdevice+0x260>
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113b01c4:	f9409aa1 	ldr	x1, [x21,#304]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff8000113b01c8:	d37d1c40 	ubfiz	x0, x2, #3, #8
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113b01cc:	f8606820 	ldr	x0, [x1,x0]
ffff8000113b01d0:	b4000040 	cbz	x0, ffff8000113b01d8 <register_netdevice+0x12c>
ffff8000113b01d4:	d10e4000 	sub	x0, x0, #0x390
ffff8000113b01d8:	b40000c0 	cbz	x0, ffff8000113b01f0 <register_netdevice+0x144>
		if (dev->ifindex == ifindex)
ffff8000113b01dc:	b9410001 	ldr	w1, [x0,#256]
ffff8000113b01e0:	6b01005f 	cmp	w2, w1
ffff8000113b01e4:	540008a0 	b.eq	ffff8000113b02f8 <register_netdevice+0x24c>
	hlist_for_each_entry(dev, head, index_hlist)
ffff8000113b01e8:	f941c800 	ldr	x0, [x0,#912]
ffff8000113b01ec:	b5ffff40 	cbnz	x0, ffff8000113b01d4 <register_netdevice+0x128>
	dev->hw_features |= (NETIF_F_SOFT_FEATURES | NETIF_F_SOFT_FEATURES_OFF);
ffff8000113b01f0:	d2890001 	mov	x1, #0x4800                	// #18432
ffff8000113b01f4:	f2e04001 	movk	x1, #0x200, lsl #48
	dev->features |= NETIF_F_SOFT_FEATURES;
ffff8000113b01f8:	d2890000 	mov	x0, #0x4800                	// #18432
	dev->hw_features |= (NETIF_F_SOFT_FEATURES | NETIF_F_SOFT_FEATURES_OFF);
ffff8000113b01fc:	aa010061 	orr	x1, x3, x1
	dev->features |= NETIF_F_SOFT_FEATURES;
ffff8000113b0200:	aa000082 	orr	x2, x4, x0
	if (dev->netdev_ops->ndo_udp_tunnel_add) {
ffff8000113b0204:	f940fa65 	ldr	x5, [x19,#496]
	dev->hw_features |= (NETIF_F_SOFT_FEATURES | NETIF_F_SOFT_FEATURES_OFF);
ffff8000113b0208:	f9006a61 	str	x1, [x19,#208]
	dev->features |= NETIF_F_SOFT_FEATURES;
ffff8000113b020c:	f9006662 	str	x2, [x19,#200]
	if (dev->netdev_ops->ndo_udp_tunnel_add) {
ffff8000113b0210:	f94100a5 	ldr	x5, [x5,#512]
ffff8000113b0214:	b4000f85 	cbz	x5, ffff8000113b0404 <register_netdevice+0x358>
		dev->hw_features |= NETIF_F_RX_UDP_TUNNEL_PORT;
ffff8000113b0218:	aa0003e1 	mov	x1, x0
ffff8000113b021c:	f2e04201 	movk	x1, #0x210, lsl #48
		dev->features |= NETIF_F_RX_UDP_TUNNEL_PORT;
ffff8000113b0220:	b24c0040 	orr	x0, x2, #0x10000000000000
		dev->hw_features |= NETIF_F_RX_UDP_TUNNEL_PORT;
ffff8000113b0224:	aa010063 	orr	x3, x3, x1
		dev->features |= NETIF_F_RX_UDP_TUNNEL_PORT;
ffff8000113b0228:	f9006660 	str	x0, [x19,#200]
		dev->hw_features |= NETIF_F_RX_UDP_TUNNEL_PORT;
ffff8000113b022c:	f9006a63 	str	x3, [x19,#208]
	dev->wanted_features = dev->features & dev->hw_features;
ffff8000113b0230:	8a030000 	and	x0, x0, x3
	if (!(dev->flags & IFF_LOOPBACK))
ffff8000113b0234:	b9422a61 	ldr	w1, [x19,#552]
	dev->wanted_features = dev->features & dev->hw_features;
ffff8000113b0238:	f9006e60 	str	x0, [x19,#216]
	if (!(dev->flags & IFF_LOOPBACK))
ffff8000113b023c:	37180061 	tbnz	w1, #3, ffff8000113b0248 <register_netdevice+0x19c>
		dev->hw_features |= NETIF_F_NOCACHE_COPY;
ffff8000113b0240:	b2570063 	orr	x3, x3, #0x20000000000
ffff8000113b0244:	f9006a63 	str	x3, [x19,#208]
	if (dev->hw_features & NETIF_F_TSO)
ffff8000113b0248:	36800063 	tbz	w3, #16, ffff8000113b0254 <register_netdevice+0x1a8>
		dev->hw_features |= NETIF_F_TSO_MANGLEID;
ffff8000113b024c:	b26d0063 	orr	x3, x3, #0x80000
ffff8000113b0250:	f9006a63 	str	x3, [x19,#208]
	if (dev->vlan_features & NETIF_F_TSO)
ffff8000113b0254:	f9407262 	ldr	x2, [x19,#224]
ffff8000113b0258:	36800062 	tbz	w2, #16, ffff8000113b0264 <register_netdevice+0x1b8>
		dev->vlan_features |= NETIF_F_TSO_MANGLEID;
ffff8000113b025c:	b26d0042 	orr	x2, x2, #0x80000
ffff8000113b0260:	f9007262 	str	x2, [x19,#224]
	if (dev->mpls_features & NETIF_F_TSO)
ffff8000113b0264:	f9407a61 	ldr	x1, [x19,#240]
ffff8000113b0268:	36800061 	tbz	w1, #16, ffff8000113b0274 <register_netdevice+0x1c8>
		dev->mpls_features |= NETIF_F_TSO_MANGLEID;
ffff8000113b026c:	b26d0021 	orr	x1, x1, #0x80000
ffff8000113b0270:	f9007a61 	str	x1, [x19,#240]
	if (dev->hw_enc_features & NETIF_F_TSO)
ffff8000113b0274:	f9407660 	ldr	x0, [x19,#232]
	dev->hw_enc_features |= NETIF_F_SG | NETIF_F_GSO_PARTIAL;
ffff8000113b0278:	d2800023 	mov	x3, #0x1                   	// #1
	if (dev->hw_enc_features & NETIF_F_TSO)
ffff8000113b027c:	92700004 	and	x4, x0, #0x10000
		dev->hw_enc_features |= NETIF_F_TSO_MANGLEID;
ffff8000113b0280:	eb1f009f 	cmp	x4, xzr
ffff8000113b0284:	b26d0004 	orr	x4, x0, #0x80000
ffff8000113b0288:	9a801080 	csel	x0, x4, x0, ne
	dev->hw_enc_features |= NETIF_F_SG | NETIF_F_GSO_PARTIAL;
ffff8000113b028c:	f2a20003 	movk	x3, #0x1000, lsl #16
ffff8000113b0290:	aa030003 	orr	x3, x0, x3
	dev->vlan_features |= NETIF_F_HIGHDMA;
ffff8000113b0294:	b27b0042 	orr	x2, x2, #0x20
	dev->mpls_features |= NETIF_F_SG;
ffff8000113b0298:	b2400021 	orr	x1, x1, #0x1
ffff8000113b029c:	f9007a61 	str	x1, [x19,#240]
	dev->vlan_features |= NETIF_F_HIGHDMA;
ffff8000113b02a0:	f9007262 	str	x2, [x19,#224]
	dev->hw_enc_features |= NETIF_F_SG | NETIF_F_GSO_PARTIAL;
ffff8000113b02a4:	f9007663 	str	x3, [x19,#232]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b02a8:	d2800220 	mov	x0, #0x11                  	// #17
ffff8000113b02ac:	9100e3a1 	add	x1, x29, #0x38
	struct netdev_notifier_info info = {
ffff8000113b02b0:	f9001fb3 	str	x19, [x29,#56]
ffff8000113b02b4:	f90023bf 	str	xzr, [x29,#64]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b02b8:	97ffbf90 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113b02bc:	12107800 	and	w0, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113b02c0:	7100041f 	cmp	w0, #0x1
ffff8000113b02c4:	5400062d 	b.le	ffff8000113b0388 <register_netdevice+0x2dc>
ffff8000113b02c8:	52800036 	mov	w22, #0x1                   	// #1
ffff8000113b02cc:	4b0002d6 	sub	w22, w22, w0
	if (dev->netdev_ops->ndo_uninit)
ffff8000113b02d0:	f940fa60 	ldr	x0, [x19,#496]
ffff8000113b02d4:	f9400401 	ldr	x1, [x0,#8]
ffff8000113b02d8:	b4000061 	cbz	x1, ffff8000113b02e4 <register_netdevice+0x238>
		dev->netdev_ops->ndo_uninit(dev);
ffff8000113b02dc:	aa1303e0 	mov	x0, x19
ffff8000113b02e0:	d63f0020 	blr	x1
	if (dev->priv_destructor)
ffff8000113b02e4:	f9427261 	ldr	x1, [x19,#1248]
ffff8000113b02e8:	b4fff501 	cbz	x1, ffff8000113b0188 <register_netdevice+0xdc>
		dev->priv_destructor(dev);
ffff8000113b02ec:	aa1303e0 	mov	x0, x19
ffff8000113b02f0:	d63f0020 	blr	x1
ffff8000113b02f4:	17ffffa5 	b	ffff8000113b0188 <register_netdevice+0xdc>
	ret = -EBUSY;
ffff8000113b02f8:	128001f6 	mov	w22, #0xfffffff0            	// #-16
ffff8000113b02fc:	17fffff5 	b	ffff8000113b02d0 <register_netdevice+0x224>
	dev->name_node = netdev_name_node_head_alloc(dev);
ffff8000113b0300:	f9000a60 	str	x0, [x19,#16]
	ret = -ENOMEM;
ffff8000113b0304:	12800160 	mov	w0, #0xfffffff4            	// #-12
ffff8000113b0308:	17ffff80 	b	ffff8000113b0108 <register_netdevice+0x5c>
		dev->ifindex = dev_new_index(net);
ffff8000113b030c:	aa1503e0 	mov	x0, x21
ffff8000113b0310:	97ffbc5d 	bl	ffff80001139f484 <dev_new_index>
ffff8000113b0314:	b9010260 	str	w0, [x19,#256]
ffff8000113b0318:	f9406a63 	ldr	x3, [x19,#208]
ffff8000113b031c:	f9406664 	ldr	x4, [x19,#200]
ffff8000113b0320:	17ffffb4 	b	ffff8000113b01f0 <register_netdevice+0x144>
	if (!dev->name[0] || strchr(dev->name, '%'))
ffff8000113b0324:	39400260 	ldrb	w0, [x19]
ffff8000113b0328:	340000a0 	cbz	w0, ffff8000113b033c <register_netdevice+0x290>
ffff8000113b032c:	aa1303e0 	mov	x0, x19
ffff8000113b0330:	528004a1 	mov	w1, #0x25                  	// #37
ffff8000113b0334:	94000000 	bl	0 <strchr>
			ffff8000113b0334: R_AARCH64_CALL26	strchr
ffff8000113b0338:	b4000e20 	cbz	x0, ffff8000113b04fc <register_netdevice+0x450>
		return "(unnamed net_device)";
ffff8000113b033c:	90000015 	adrp	x21, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b033c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff8000113b0340:	910002b5 	add	x21, x21, #0x0
			ffff8000113b0340: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
	switch (dev->reg_state) {
ffff8000113b0344:	39536262 	ldrb	w2, [x19,#1240]
ffff8000113b0348:	7100145f 	cmp	w2, #0x5
ffff8000113b034c:	540002c9 	b.ls	ffff8000113b03a4 <register_netdevice+0x2f8>
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff8000113b0350:	90000004 	adrp	x4, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0350: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113b0354:	91000084 	add	x4, x4, #0x0
			ffff8000113b0354: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113b0358:	39400880 	ldrb	w0, [x4,#2]
	return " (unknown)";
ffff8000113b035c:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b035c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xb8
ffff8000113b0360:	910002d6 	add	x22, x22, #0x0
			ffff8000113b0360: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xb8
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff8000113b0364:	34000f40 	cbz	w0, ffff8000113b054c <register_netdevice+0x4a0>
		netdev_WARN(dev, "Buggy VLAN acceleration in driver!\n");
ffff8000113b0368:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0368: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xcb0
ffff8000113b036c:	91000000 	add	x0, x0, #0x0
			ffff8000113b036c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xcb0
ffff8000113b0370:	aa1503e1 	mov	x1, x21
ffff8000113b0374:	aa1603e2 	mov	x2, x22
ffff8000113b0378:	94000000 	bl	0 <__warn_printk>
			ffff8000113b0378: R_AARCH64_CALL26	__warn_printk
ffff8000113b037c:	d4210000 	brk	#0x800
		ret = -EINVAL;
ffff8000113b0380:	128002b6 	mov	w22, #0xffffffea            	// #-22
		goto err_uninit;
ffff8000113b0384:	17ffffd3 	b	ffff8000113b02d0 <register_netdevice+0x224>
	ret = netdev_register_kobject(dev);
ffff8000113b0388:	aa1303e0 	mov	x0, x19
ffff8000113b038c:	94000000 	bl	0 <netdev_register_kobject>
			ffff8000113b038c: R_AARCH64_CALL26	netdev_register_kobject
ffff8000113b0390:	2a0003f6 	mov	w22, w0
	if (ret) {
ffff8000113b0394:	340003e0 	cbz	w0, ffff8000113b0410 <register_netdevice+0x364>
		dev->reg_state = NETREG_UNREGISTERED;
ffff8000113b0398:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113b039c:	39136260 	strb	w0, [x19,#1240]
		goto err_uninit;
ffff8000113b03a0:	17ffffcc 	b	ffff8000113b02d0 <register_netdevice+0x224>
	switch (dev->reg_state) {
ffff8000113b03a4:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03a4: R_AARCH64_ADR_PREL_PG_HI21	.rodata+0x84
ffff8000113b03a8:	91000000 	add	x0, x0, #0x0
			ffff8000113b03a8: R_AARCH64_ADD_ABS_LO12_NC	.rodata+0x84
ffff8000113b03ac:	38624803 	ldrb	w3, [x0,w2,uxtw]
ffff8000113b03b0:	10000064 	adr	x4, ffff8000113b03bc <register_netdevice+0x310>
ffff8000113b03b4:	8b238883 	add	x3, x4, w3, sxtb #2
ffff8000113b03b8:	d61f0060 	br	x3
	case NETREG_REGISTERED: return "";
ffff8000113b03bc:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03bc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x68
ffff8000113b03c0:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03c0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x68
ffff8000113b03c4:	17ffffe9 	b	ffff8000113b0368 <register_netdevice+0x2bc>
	case NETREG_UNINITIALIZED: return " (uninitialized)";
ffff8000113b03c8:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03c8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x50
ffff8000113b03cc:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03cc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x50
ffff8000113b03d0:	17ffffe6 	b	ffff8000113b0368 <register_netdevice+0x2bc>
	case NETREG_DUMMY: return " (dummy)";
ffff8000113b03d4:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03d4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xa8
ffff8000113b03d8:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03d8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xa8
ffff8000113b03dc:	17ffffe3 	b	ffff8000113b0368 <register_netdevice+0x2bc>
	case NETREG_RELEASED: return " (released)";
ffff8000113b03e0:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03e0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x98
ffff8000113b03e4:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03e4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x98
ffff8000113b03e8:	17ffffe0 	b	ffff8000113b0368 <register_netdevice+0x2bc>
	case NETREG_UNREGISTERED: return " (unregistered)";
ffff8000113b03ec:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03ec: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x88
ffff8000113b03f0:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03f0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x88
ffff8000113b03f4:	17ffffdd 	b	ffff8000113b0368 <register_netdevice+0x2bc>
	case NETREG_UNREGISTERING: return " (unregistering)";
ffff8000113b03f8:	90000016 	adrp	x22, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b03f8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x70
ffff8000113b03fc:	910002d6 	add	x22, x22, #0x0
			ffff8000113b03fc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x70
ffff8000113b0400:	17ffffda 	b	ffff8000113b0368 <register_netdevice+0x2bc>
ffff8000113b0404:	aa0103e3 	mov	x3, x1
ffff8000113b0408:	aa0203e0 	mov	x0, x2
ffff8000113b040c:	17ffff89 	b	ffff8000113b0230 <register_netdevice+0x184>
	dev->reg_state = NETREG_REGISTERED;
ffff8000113b0410:	52800035 	mov	w21, #0x1                   	// #1
ffff8000113b0414:	39136275 	strb	w21, [x19,#1240]
	__netdev_update_features(dev);
ffff8000113b0418:	aa1303e0 	mov	x0, x19
ffff8000113b041c:	94000000 	bl	ffff8000113af4b8 <__netdev_update_features>
			ffff8000113b041c: R_AARCH64_CALL26	__netdev_update_features
ATOMIC64_OPS(or, orr, L)
ffff8000113b0420:	91010264 	add	x4, x19, #0x40
ffff8000113b0424:	f9800091 	prfm	pstl1strm, [x4]
ffff8000113b0428:	c85f7c80 	ldxr	x0, [x4]
ffff8000113b042c:	b27f0000 	orr	x0, x0, #0x2
ffff8000113b0430:	c8017c80 	stxr	w1, x0, [x4]
ffff8000113b0434:	35ffffa1 	cbnz	w1, ffff8000113b0428 <register_netdevice+0x37c>
	linkwatch_init_dev(dev);
ffff8000113b0438:	aa1303e0 	mov	x0, x19
ffff8000113b043c:	94000000 	bl	0 <linkwatch_init_dev>
			ffff8000113b043c: R_AARCH64_CALL26	linkwatch_init_dev
	dev_init_scheduler(dev);
ffff8000113b0440:	aa1303e0 	mov	x0, x19
ffff8000113b0444:	94000000 	bl	0 <dev_init_scheduler>
			ffff8000113b0444: R_AARCH64_CALL26	dev_init_scheduler
	this_cpu_inc(*dev->pcpu_refcnt);
ffff8000113b0448:	f9426260 	ldr	x0, [x19,#1216]
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff8000113b044c:	d538d081 	mrs	x1, tpidr_el1
PERCPU_OP(add, add, stadd)
ffff8000113b0450:	8b000024 	add	x4, x1, x0
ffff8000113b0454:	885f7c83 	ldxr	w3, [x4]
ffff8000113b0458:	0b150063 	add	w3, w3, w21
ffff8000113b045c:	88027c83 	stxr	w2, w3, [x4]
ffff8000113b0460:	35ffffa2 	cbnz	w2, ffff8000113b0454 <register_netdevice+0x3a8>
	list_netdevice(dev);
ffff8000113b0464:	aa1303e0 	mov	x0, x19
ffff8000113b0468:	97ffcbc3 	bl	ffff8000113a3374 <list_netdevice>
	add_device_randomness(dev->dev_addr, dev->addr_len);
ffff8000113b046c:	f9418e60 	ldr	x0, [x19,#792]
ffff8000113b0470:	3949be61 	ldrb	w1, [x19,#623]
ffff8000113b0474:	94000000 	bl	0 <add_device_randomness>
			ffff8000113b0474: R_AARCH64_CALL26	add_device_randomness
	if (dev->addr_assign_type == NET_ADDR_PERM)
ffff8000113b0478:	3949ba60 	ldrb	w0, [x19,#622]
ffff8000113b047c:	350000a0 	cbnz	w0, ffff8000113b0490 <register_netdevice+0x3e4>
	return __builtin_memcpy(p, q, size);
ffff8000113b0480:	f9418e61 	ldr	x1, [x19,#792]
ffff8000113b0484:	3949be62 	ldrb	w2, [x19,#623]
ffff8000113b0488:	91093a60 	add	x0, x19, #0x24e
ffff8000113b048c:	94000000 	bl	0 <memcpy>
			ffff8000113b048c: R_AARCH64_CALL26	memcpy
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b0490:	9100e3a1 	add	x1, x29, #0x38
ffff8000113b0494:	d28000a0 	mov	x0, #0x5                   	// #5
	struct netdev_notifier_info info = {
ffff8000113b0498:	f9001fb3 	str	x19, [x29,#56]
ffff8000113b049c:	f90023bf 	str	xzr, [x29,#64]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b04a0:	97ffbf16 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
	ret &= ~NOTIFY_STOP_MASK;
ffff8000113b04a4:	12107801 	and	w1, w0, #0xffff7fff
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff8000113b04a8:	7100043f 	cmp	w1, #0x1
ffff8000113b04ac:	5400010d 	b.le	ffff8000113b04cc <register_netdevice+0x420>
		rollback_registered(dev);
ffff8000113b04b0:	aa1303e0 	mov	x0, x19
ffff8000113b04b4:	52800036 	mov	w22, #0x1                   	// #1
ffff8000113b04b8:	4b0102d6 	sub	w22, w22, w1
ffff8000113b04bc:	97fffa29 	bl	ffff8000113aed60 <rollback_registered>
		rcu_barrier();
ffff8000113b04c0:	94000000 	bl	0 <rcu_barrier>
			ffff8000113b04c0: R_AARCH64_CALL26	rcu_barrier
		dev->reg_state = NETREG_UNREGISTERED;
ffff8000113b04c4:	52800060 	mov	w0, #0x3                   	// #3
ffff8000113b04c8:	39136260 	strb	w0, [x19,#1240]
	if (!dev->rtnl_link_ops ||
ffff8000113b04cc:	f9441a60 	ldr	x0, [x19,#2096]
ffff8000113b04d0:	b4000080 	cbz	x0, ffff8000113b04e0 <register_netdevice+0x434>
ffff8000113b04d4:	7949b661 	ldrh	w1, [x19,#1242]
ffff8000113b04d8:	2a1603e0 	mov	w0, w22
ffff8000113b04dc:	35ffe161 	cbnz	w1, ffff8000113b0108 <register_netdevice+0x5c>
		rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U, GFP_KERNEL);
ffff8000113b04e0:	52800200 	mov	w0, #0x10                  	// #16
ffff8000113b04e4:	aa1303e1 	mov	x1, x19
ffff8000113b04e8:	12800002 	mov	w2, #0xffffffff            	// #-1
ffff8000113b04ec:	52819803 	mov	w3, #0xcc0                 	// #3264
ffff8000113b04f0:	94000000 	bl	0 <rtmsg_ifinfo>
			ffff8000113b04f0: R_AARCH64_CALL26	rtmsg_ifinfo
ffff8000113b04f4:	2a1603e0 	mov	w0, w22
ffff8000113b04f8:	17ffff04 	b	ffff8000113b0108 <register_netdevice+0x5c>
	return dev->name;
ffff8000113b04fc:	aa1303f5 	mov	x21, x19
ffff8000113b0500:	17ffff91 	b	ffff8000113b0344 <register_netdevice+0x298>
}
ffff8000113b0504:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113b0504: R_AARCH64_CALL26	__stack_chk_fail
	ASSERT_RTNL();
ffff8000113b0508:	90000003 	adrp	x3, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0508: R_AARCH64_ADR_PREL_PG_HI21	.data.once
ffff8000113b050c:	91000063 	add	x3, x3, #0x0
			ffff8000113b050c: R_AARCH64_ADD_ABS_LO12_NC	.data.once
ffff8000113b0510:	39409c60 	ldrb	w0, [x3,#39]
ffff8000113b0514:	35ffdec0 	cbnz	w0, ffff8000113b00ec <register_netdevice+0x40>
ffff8000113b0518:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0518: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x18
ffff8000113b051c:	90000001 	adrp	x1, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b051c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x40
ffff8000113b0520:	52800024 	mov	w4, #0x1                   	// #1
ffff8000113b0524:	91000000 	add	x0, x0, #0x0
			ffff8000113b0524: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x18
ffff8000113b0528:	91000021 	add	x1, x1, #0x0
			ffff8000113b0528: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x40
ffff8000113b052c:	52848a02 	mov	w2, #0x2450                	// #9296
ffff8000113b0530:	39009c64 	strb	w4, [x3,#39]
ffff8000113b0534:	94000000 	bl	0 <__warn_printk>
			ffff8000113b0534: R_AARCH64_CALL26	__warn_printk
ffff8000113b0538:	d4210000 	brk	#0x800
ffff8000113b053c:	17fffeec 	b	ffff8000113b00ec <register_netdevice+0x40>
	BUG_ON(!net);
ffff8000113b0540:	d4210000 	brk	#0x800
	BUG_ON(dev_boot_phase);
ffff8000113b0544:	d4210000 	brk	#0x800
	BUG_ON(dev->reg_state != NETREG_UNINITIALIZED);
ffff8000113b0548:	d4210000 	brk	#0x800
	WARN_ONCE(1, "%s: unknown reg_state %d\n", dev->name, dev->reg_state);
ffff8000113b054c:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b054c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xc8
ffff8000113b0550:	52800023 	mov	w3, #0x1                   	// #1
ffff8000113b0554:	91000000 	add	x0, x0, #0x0
			ffff8000113b0554: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xc8
ffff8000113b0558:	aa1303e1 	mov	x1, x19
ffff8000113b055c:	39000883 	strb	w3, [x4,#2]
ffff8000113b0560:	94000000 	bl	0 <__warn_printk>
			ffff8000113b0560: R_AARCH64_CALL26	__warn_printk
ffff8000113b0564:	d4210000 	brk	#0x800
ffff8000113b0568:	17ffff80 	b	ffff8000113b0368 <register_netdevice+0x2bc>

ffff8000113b056c <register_netdev>:
{
ffff8000113b056c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113b0570:	910003fd 	mov	x29, sp
ffff8000113b0574:	f9000bf3 	str	x19, [sp,#16]
ffff8000113b0578:	aa0003f3 	mov	x19, x0
ffff8000113b057c:	aa1e03e0 	mov	x0, x30
ffff8000113b0580:	94000000 	bl	0 <_mcount>
			ffff8000113b0580: R_AARCH64_CALL26	_mcount
	if (rtnl_lock_killable())
ffff8000113b0584:	94000000 	bl	0 <rtnl_lock_killable>
			ffff8000113b0584: R_AARCH64_CALL26	rtnl_lock_killable
ffff8000113b0588:	35000120 	cbnz	w0, ffff8000113b05ac <register_netdev+0x40>
	err = register_netdevice(dev);
ffff8000113b058c:	aa1303e0 	mov	x0, x19
ffff8000113b0590:	94000000 	bl	ffff8000113b00ac <register_netdevice>
			ffff8000113b0590: R_AARCH64_CALL26	register_netdevice
	rtnl_unlock();
ffff8000113b0594:	f90017a0 	str	x0, [x29,#40]
ffff8000113b0598:	94000000 	bl	0 <rtnl_unlock>
			ffff8000113b0598: R_AARCH64_CALL26	rtnl_unlock
	return err;
ffff8000113b059c:	f94017a0 	ldr	x0, [x29,#40]
}
ffff8000113b05a0:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113b05a4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113b05a8:	d65f03c0 	ret
		return -EINTR;
ffff8000113b05ac:	12800060 	mov	w0, #0xfffffffc            	// #-4
ffff8000113b05b0:	17fffffc 	b	ffff8000113b05a0 <register_netdev+0x34>

ffff8000113b05b4 <netdev_run_todo>:
{
ffff8000113b05b4:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff8000113b05b8:	910003fd 	mov	x29, sp
ffff8000113b05bc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113b05c0:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff8000113b05c4:	a90363f7 	stp	x23, x24, [sp,#48]
ffff8000113b05c8:	a9046bf9 	stp	x25, x26, [sp,#64]
ffff8000113b05cc:	a90573fb 	stp	x27, x28, [sp,#80]
ffff8000113b05d0:	aa1e03e0 	mov	x0, x30
ffff8000113b05d4:	94000000 	bl	0 <_mcount>
			ffff8000113b05d4: R_AARCH64_CALL26	_mcount
	new->next = old->next;
ffff8000113b05d8:	9000001c 	adrp	x28, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b05d8: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff8000113b05dc:	91000381 	add	x1, x28, #0x0
			ffff8000113b05dc: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff8000113b05e0:	f9407c23 	ldr	x3, [x1,#248]
ffff8000113b05e4:	9101e3bb 	add	x27, x29, #0x78
	new->next->prev = new;
ffff8000113b05e8:	f900047b 	str	x27, [x3,#8]
	new->prev = old->prev;
ffff8000113b05ec:	f9408022 	ldr	x2, [x1,#256]
ffff8000113b05f0:	90000005 	adrp	x5, 0 <__stack_chk_guard>
			ffff8000113b05f0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113b05f4:	f94000a4 	ldr	x4, [x5]
			ffff8000113b05f4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
	new->next = old->next;
ffff8000113b05f8:	f9003fa3 	str	x3, [x29,#120]
	new->prev = old->prev;
ffff8000113b05fc:	f90043a2 	str	x2, [x29,#128]
	new->next = old->next;
ffff8000113b0600:	9103e020 	add	x0, x1, #0xf8
	new->prev->next = new;
ffff8000113b0604:	f900005b 	str	x27, [x2]
ffff8000113b0608:	f9004fa4 	str	x4, [x29,#152]
ffff8000113b060c:	f9007c20 	str	x0, [x1,#248]
	list->prev = list;
ffff8000113b0610:	f9000400 	str	x0, [x0,#8]
	__rtnl_unlock();
ffff8000113b0614:	94000000 	bl	0 <__rtnl_unlock>
			ffff8000113b0614: R_AARCH64_CALL26	__rtnl_unlock
	__READ_ONCE_SIZE;
ffff8000113b0618:	f9403fa0 	ldr	x0, [x29,#120]
	if (!list_empty(&list))
ffff8000113b061c:	eb00037f 	cmp	x27, x0
ffff8000113b0620:	54000040 	b.eq	ffff8000113b0628 <netdev_run_todo+0x74>
		rcu_barrier();
ffff8000113b0624:	94000000 	bl	0 <rcu_barrier>
			ffff8000113b0624: R_AARCH64_CALL26	rcu_barrier
			pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
ffff8000113b0628:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0628: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xd10
ffff8000113b062c:	91000000 	add	x0, x0, #0x0
			ffff8000113b062c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xd10
ffff8000113b0630:	f90037a0 	str	x0, [x29,#104]
			pr_err("network todo '%s' but state %d\n",
ffff8000113b0634:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0634: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0xce8
		wake_up(&netdev_unregistering_wq);
ffff8000113b0638:	9100039c 	add	x28, x28, #0x0
			ffff8000113b0638: R_AARCH64_ADD_ABS_LO12_NC	.data
			pr_err("network todo '%s' but state %d\n",
ffff8000113b063c:	91000000 	add	x0, x0, #0x0
			ffff8000113b063c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0xce8
		wake_up(&netdev_unregistering_wq);
ffff8000113b0640:	9104239c 	add	x28, x28, #0x108
			pr_err("network todo '%s' but state %d\n",
ffff8000113b0644:	f90033a0 	str	x0, [x29,#96]
ffff8000113b0648:	f9403fa0 	ldr	x0, [x29,#120]
	while (!list_empty(&list)) {
ffff8000113b064c:	eb00037f 	cmp	x27, x0
ffff8000113b0650:	54000e60 	b.eq	ffff8000113b081c <netdev_run_todo+0x268>
			= list_first_entry(&list, struct net_device, todo_list);
ffff8000113b0654:	f9400376 	ldr	x22, [x27]
	if (!__list_del_entry_valid(entry))
ffff8000113b0658:	aa1603e0 	mov	x0, x22
ffff8000113b065c:	94000000 	bl	0 <__list_del_entry_valid>
			ffff8000113b065c: R_AARCH64_CALL26	__list_del_entry_valid
ffff8000113b0660:	53001c00 	uxtb	w0, w0
		struct net_device *dev
ffff8000113b0664:	d112c2d3 	sub	x19, x22, #0x4b0
ffff8000113b0668:	340000a0 	cbz	w0, ffff8000113b067c <netdev_run_todo+0xc8>
	__list_del(entry->prev, entry->next);
ffff8000113b066c:	f94006c0 	ldr	x0, [x22,#8]
ffff8000113b0670:	f94002c1 	ldr	x1, [x22]
	next->prev = prev;
ffff8000113b0674:	f9000420 	str	x0, [x1,#8]
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113b0678:	f9000001 	str	x1, [x0]
	entry->next = LIST_POISON1;
ffff8000113b067c:	d2802001 	mov	x1, #0x100                 	// #256
	entry->prev = LIST_POISON2;
ffff8000113b0680:	d2802440 	mov	x0, #0x122                 	// #290
	entry->next = LIST_POISON1;
ffff8000113b0684:	f2fbd5a1 	movk	x1, #0xdead, lsl #48
	entry->prev = LIST_POISON2;
ffff8000113b0688:	f2fbd5a0 	movk	x0, #0xdead, lsl #48
	entry->next = LIST_POISON1;
ffff8000113b068c:	f90002c1 	str	x1, [x22]
	entry->prev = LIST_POISON2;
ffff8000113b0690:	f90006c0 	str	x0, [x22,#8]
		if (unlikely(dev->reg_state != NETREG_UNREGISTERING)) {
ffff8000113b0694:	39536262 	ldrb	w2, [x19,#1240]
ffff8000113b0698:	7100085f 	cmp	w2, #0x2
ffff8000113b069c:	54000e41 	b.ne	ffff8000113b0864 <netdev_run_todo+0x2b0>
		dev->reg_state = NETREG_UNREGISTERED;
ffff8000113b06a0:	52800061 	mov	w1, #0x3                   	// #3
	linkwatch_forget_dev(dev);
ffff8000113b06a4:	aa1303e0 	mov	x0, x19
		dev->reg_state = NETREG_UNREGISTERED;
ffff8000113b06a8:	39136261 	strb	w1, [x19,#1240]
	linkwatch_forget_dev(dev);
ffff8000113b06ac:	94000000 	bl	0 <linkwatch_forget_dev>
			ffff8000113b06ac: R_AARCH64_CALL26	linkwatch_forget_dev
	rebroadcast_time = warning_time = jiffies;
ffff8000113b06b0:	90000014 	adrp	x20, 0 <jiffies>
			ffff8000113b06b0: R_AARCH64_ADR_PREL_PG_HI21	jiffies
	refcnt = netdev_refcnt_read(dev);
ffff8000113b06b4:	aa1303e0 	mov	x0, x19
	rebroadcast_time = warning_time = jiffies;
ffff8000113b06b8:	f9400295 	ldr	x21, [x20]
			ffff8000113b06b8: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
	refcnt = netdev_refcnt_read(dev);
ffff8000113b06bc:	94000000 	bl	ffff8000113a1304 <netdev_refcnt_read>
			ffff8000113b06bc: R_AARCH64_CALL26	netdev_refcnt_read
	while (refcnt != 0) {
ffff8000113b06c0:	340005c0 	cbz	w0, ffff8000113b0778 <netdev_run_todo+0x1c4>
	rebroadcast_time = warning_time = jiffies;
ffff8000113b06c4:	aa1503f8 	mov	x24, x21
		if (time_after(jiffies, rebroadcast_time + 1 * HZ)) {
ffff8000113b06c8:	d2801f57 	mov	x23, #0xfa                  	// #250
ffff8000113b06cc:	d111c2da 	sub	x26, x22, #0x470
		if (refcnt && time_after(jiffies, warning_time + 10 * HZ)) {
ffff8000113b06d0:	d2813899 	mov	x25, #0x9c4                 	// #2500
		if (time_after(jiffies, rebroadcast_time + 1 * HZ)) {
ffff8000113b06d4:	f9400280 	ldr	x0, [x20]
			ffff8000113b06d4: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113b06d8:	cb0002e0 	sub	x0, x23, x0
ffff8000113b06dc:	ab15001f 	cmn	x0, x21
ffff8000113b06e0:	54000264 	b.mi	ffff8000113b072c <netdev_run_todo+0x178>
		msleep(250);
ffff8000113b06e4:	52801f40 	mov	w0, #0xfa                  	// #250
ffff8000113b06e8:	94000000 	bl	0 <msleep>
			ffff8000113b06e8: R_AARCH64_CALL26	msleep
		refcnt = netdev_refcnt_read(dev);
ffff8000113b06ec:	aa1303e0 	mov	x0, x19
ffff8000113b06f0:	94000000 	bl	ffff8000113a1304 <netdev_refcnt_read>
			ffff8000113b06f0: R_AARCH64_CALL26	netdev_refcnt_read
ffff8000113b06f4:	2a0003e2 	mov	w2, w0
		if (refcnt && time_after(jiffies, warning_time + 10 * HZ)) {
ffff8000113b06f8:	34000400 	cbz	w0, ffff8000113b0778 <netdev_run_todo+0x1c4>
ffff8000113b06fc:	f9400280 	ldr	x0, [x20]
			ffff8000113b06fc: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113b0700:	cb000320 	sub	x0, x25, x0
ffff8000113b0704:	ab18001f 	cmn	x0, x24
ffff8000113b0708:	54fffe65 	b.pl	ffff8000113b06d4 <netdev_run_todo+0x120>
			pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
ffff8000113b070c:	f94037a0 	ldr	x0, [x29,#104]
ffff8000113b0710:	aa1303e1 	mov	x1, x19
ffff8000113b0714:	94000000 	bl	0 <printk>
			ffff8000113b0714: R_AARCH64_CALL26	printk
			warning_time = jiffies;
ffff8000113b0718:	f9400298 	ldr	x24, [x20]
			ffff8000113b0718: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
		if (time_after(jiffies, rebroadcast_time + 1 * HZ)) {
ffff8000113b071c:	f9400280 	ldr	x0, [x20]
			ffff8000113b071c: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
ffff8000113b0720:	cb0002e0 	sub	x0, x23, x0
ffff8000113b0724:	ab15001f 	cmn	x0, x21
ffff8000113b0728:	54fffde5 	b.pl	ffff8000113b06e4 <netdev_run_todo+0x130>
			rtnl_lock();
ffff8000113b072c:	94000000 	bl	0 <rtnl_lock>
			ffff8000113b072c: R_AARCH64_CALL26	rtnl_lock
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b0730:	910223a1 	add	x1, x29, #0x88
ffff8000113b0734:	d28000c0 	mov	x0, #0x6                   	// #6
	struct netdev_notifier_info info = {
ffff8000113b0738:	f90047b3 	str	x19, [x29,#136]
ffff8000113b073c:	f9004bbf 	str	xzr, [x29,#144]
	return call_netdevice_notifiers_info(val, &info);
ffff8000113b0740:	97ffbe6e 	bl	ffff8000113a00f8 <call_netdevice_notifiers_info>
			__rtnl_unlock();
ffff8000113b0744:	94000000 	bl	0 <__rtnl_unlock>
			ffff8000113b0744: R_AARCH64_CALL26	__rtnl_unlock
			rcu_barrier();
ffff8000113b0748:	94000000 	bl	0 <rcu_barrier>
			ffff8000113b0748: R_AARCH64_CALL26	rcu_barrier
			rtnl_lock();
ffff8000113b074c:	94000000 	bl	0 <rtnl_lock>
			ffff8000113b074c: R_AARCH64_CALL26	rtnl_lock
ffff8000113b0750:	f9400340 	ldr	x0, [x26]
			if (test_bit(__LINK_STATE_LINKWATCH_PENDING,
ffff8000113b0754:	371807c0 	tbnz	w0, #3, ffff8000113b084c <netdev_run_todo+0x298>
			__rtnl_unlock();
ffff8000113b0758:	94000000 	bl	0 <__rtnl_unlock>
			ffff8000113b0758: R_AARCH64_CALL26	__rtnl_unlock
		msleep(250);
ffff8000113b075c:	52801f40 	mov	w0, #0xfa                  	// #250
			rebroadcast_time = jiffies;
ffff8000113b0760:	f9400295 	ldr	x21, [x20]
			ffff8000113b0760: R_AARCH64_LDST64_ABS_LO12_NC	jiffies
		msleep(250);
ffff8000113b0764:	94000000 	bl	0 <msleep>
			ffff8000113b0764: R_AARCH64_CALL26	msleep
		refcnt = netdev_refcnt_read(dev);
ffff8000113b0768:	aa1303e0 	mov	x0, x19
ffff8000113b076c:	94000000 	bl	ffff8000113a1304 <netdev_refcnt_read>
			ffff8000113b076c: R_AARCH64_CALL26	netdev_refcnt_read
ffff8000113b0770:	2a0003e2 	mov	w2, w0
		if (refcnt && time_after(jiffies, warning_time + 10 * HZ)) {
ffff8000113b0774:	35fffc40 	cbnz	w0, ffff8000113b06fc <netdev_run_todo+0x148>
		BUG_ON(netdev_refcnt_read(dev));
ffff8000113b0778:	aa1303e0 	mov	x0, x19
ffff8000113b077c:	94000000 	bl	ffff8000113a1304 <netdev_refcnt_read>
			ffff8000113b077c: R_AARCH64_CALL26	netdev_refcnt_read
ffff8000113b0780:	35000700 	cbnz	w0, ffff8000113b0860 <netdev_run_todo+0x2ac>
	__READ_ONCE_SIZE;
ffff8000113b0784:	d110a2c0 	sub	x0, x22, #0x428
ffff8000113b0788:	f9400000 	ldr	x0, [x0]
		BUG_ON(!list_empty(&dev->ptype_all));
ffff8000113b078c:	91022261 	add	x1, x19, #0x88
ffff8000113b0790:	eb00003f 	cmp	x1, x0
ffff8000113b0794:	540007e1 	b.ne	ffff8000113b0890 <netdev_run_todo+0x2dc>
ffff8000113b0798:	d11062c0 	sub	x0, x22, #0x418
ffff8000113b079c:	f9400000 	ldr	x0, [x0]
		BUG_ON(!list_empty(&dev->ptype_specific));
ffff8000113b07a0:	91026261 	add	x1, x19, #0x98
ffff8000113b07a4:	eb00003f 	cmp	x1, x0
ffff8000113b07a8:	54000721 	b.ne	ffff8000113b088c <netdev_run_todo+0x2d8>
ffff8000113b07ac:	d10702c0 	sub	x0, x22, #0x1c0
ffff8000113b07b0:	f9400000 	ldr	x0, [x0]
		WARN_ON(rcu_access_pointer(dev->ip_ptr));
ffff8000113b07b4:	b5000680 	cbnz	x0, ffff8000113b0884 <netdev_run_todo+0x2d0>
ffff8000113b07b8:	d106e2c0 	sub	x0, x22, #0x1b8
ffff8000113b07bc:	f9400000 	ldr	x0, [x0]
		WARN_ON(rcu_access_pointer(dev->ip6_ptr));
ffff8000113b07c0:	b50005e0 	cbnz	x0, ffff8000113b087c <netdev_run_todo+0x2c8>
		if (dev->priv_destructor)
ffff8000113b07c4:	f9427261 	ldr	x1, [x19,#1248]
ffff8000113b07c8:	b4000061 	cbz	x1, ffff8000113b07d4 <netdev_run_todo+0x220>
			dev->priv_destructor(dev);
ffff8000113b07cc:	aa1303e0 	mov	x0, x19
ffff8000113b07d0:	d63f0020 	blr	x1
		if (dev->needs_free_netdev)
ffff8000113b07d4:	39537260 	ldrb	w0, [x19,#1244]
ffff8000113b07d8:	350003e0 	cbnz	w0, ffff8000113b0854 <netdev_run_todo+0x2a0>
		rtnl_lock();
ffff8000113b07dc:	94000000 	bl	0 <rtnl_lock>
			ffff8000113b07dc: R_AARCH64_CALL26	rtnl_lock
ffff8000113b07e0:	f94022c0 	ldr	x0, [x22,#64]
		dev_net(dev)->dev_unreg_count--;
ffff8000113b07e4:	b9400c01 	ldr	w1, [x0,#12]
ffff8000113b07e8:	51000421 	sub	w1, w1, #0x1
ffff8000113b07ec:	b9000c01 	str	w1, [x0,#12]
		__rtnl_unlock();
ffff8000113b07f0:	94000000 	bl	0 <__rtnl_unlock>
			ffff8000113b07f0: R_AARCH64_CALL26	__rtnl_unlock
		wake_up(&netdev_unregistering_wq);
ffff8000113b07f4:	aa1c03e0 	mov	x0, x28
ffff8000113b07f8:	52800061 	mov	w1, #0x3                   	// #3
ffff8000113b07fc:	52800022 	mov	w2, #0x1                   	// #1
ffff8000113b0800:	d2800003 	mov	x3, #0x0                   	// #0
ffff8000113b0804:	94000000 	bl	0 <__wake_up>
			ffff8000113b0804: R_AARCH64_CALL26	__wake_up
		kobject_put(&dev->dev.kobj);
ffff8000113b0808:	910182c0 	add	x0, x22, #0x60
ffff8000113b080c:	94000000 	bl	0 <kobject_put>
			ffff8000113b080c: R_AARCH64_CALL26	kobject_put
ffff8000113b0810:	f9403fa0 	ldr	x0, [x29,#120]
	while (!list_empty(&list)) {
ffff8000113b0814:	eb00037f 	cmp	x27, x0
ffff8000113b0818:	54fff1e1 	b.ne	ffff8000113b0654 <netdev_run_todo+0xa0>
}
ffff8000113b081c:	90000002 	adrp	x2, 0 <__stack_chk_guard>
			ffff8000113b081c: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff8000113b0820:	f9404fa1 	ldr	x1, [x29,#152]
ffff8000113b0824:	f9400040 	ldr	x0, [x2]
			ffff8000113b0824: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff8000113b0828:	eb00003f 	cmp	x1, x0
ffff8000113b082c:	54000261 	b.ne	ffff8000113b0878 <netdev_run_todo+0x2c4>
ffff8000113b0830:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113b0834:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff8000113b0838:	a94363f7 	ldp	x23, x24, [sp,#48]
ffff8000113b083c:	a9446bf9 	ldp	x25, x26, [sp,#64]
ffff8000113b0840:	a94573fb 	ldp	x27, x28, [sp,#80]
ffff8000113b0844:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff8000113b0848:	d65f03c0 	ret
				linkwatch_run_queue();
ffff8000113b084c:	94000000 	bl	0 <linkwatch_run_queue>
			ffff8000113b084c: R_AARCH64_CALL26	linkwatch_run_queue
ffff8000113b0850:	17ffffc2 	b	ffff8000113b0758 <netdev_run_todo+0x1a4>
			free_netdev(dev);
ffff8000113b0854:	aa1303e0 	mov	x0, x19
ffff8000113b0858:	94000000 	bl	ffff8000113a5274 <free_netdev>
			ffff8000113b0858: R_AARCH64_CALL26	free_netdev
ffff8000113b085c:	17ffffe0 	b	ffff8000113b07dc <netdev_run_todo+0x228>
		BUG_ON(netdev_refcnt_read(dev));
ffff8000113b0860:	d4210000 	brk	#0x800
			pr_err("network todo '%s' but state %d\n",
ffff8000113b0864:	f94033a0 	ldr	x0, [x29,#96]
ffff8000113b0868:	aa1303e1 	mov	x1, x19
ffff8000113b086c:	94000000 	bl	0 <printk>
			ffff8000113b086c: R_AARCH64_CALL26	printk
			dump_stack();
ffff8000113b0870:	94000000 	bl	0 <dump_stack>
			ffff8000113b0870: R_AARCH64_CALL26	dump_stack
			continue;
ffff8000113b0874:	17ffff75 	b	ffff8000113b0648 <netdev_run_todo+0x94>
}
ffff8000113b0878:	94000000 	bl	0 <__stack_chk_fail>
			ffff8000113b0878: R_AARCH64_CALL26	__stack_chk_fail
		WARN_ON(rcu_access_pointer(dev->ip6_ptr));
ffff8000113b087c:	d4210000 	brk	#0x800
ffff8000113b0880:	17ffffd1 	b	ffff8000113b07c4 <netdev_run_todo+0x210>
		WARN_ON(rcu_access_pointer(dev->ip_ptr));
ffff8000113b0884:	d4210000 	brk	#0x800
ffff8000113b0888:	17ffffcc 	b	ffff8000113b07b8 <netdev_run_todo+0x204>
		BUG_ON(!list_empty(&dev->ptype_specific));
ffff8000113b088c:	d4210000 	brk	#0x800
		BUG_ON(!list_empty(&dev->ptype_all));
ffff8000113b0890:	d4210000 	brk	#0x800

ffff8000113b0894 <dev_ingress_queue_create>:
{
ffff8000113b0894:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff8000113b0898:	910003fd 	mov	x29, sp
ffff8000113b089c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff8000113b08a0:	f90013f5 	str	x21, [sp,#32]
ffff8000113b08a4:	aa0003f4 	mov	x20, x0
ffff8000113b08a8:	aa1e03e0 	mov	x0, x30
ffff8000113b08ac:	94000000 	bl	0 <_mcount>
			ffff8000113b08ac: R_AARCH64_CALL26	_mcount
struct netdev_queue *dev_ingress_queue_create(struct net_device *dev)
ffff8000113b08b0:	f941ae93 	ldr	x19, [x20,#856]
	if (queue)
ffff8000113b08b4:	b40000d3 	cbz	x19, ffff8000113b08cc <dev_ingress_queue_create+0x38>
}
ffff8000113b08b8:	aa1303e0 	mov	x0, x19
ffff8000113b08bc:	f94013f5 	ldr	x21, [sp,#32]
ffff8000113b08c0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff8000113b08c4:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff8000113b08c8:	d65f03c0 	ret
		return kmem_cache_alloc_trace(
ffff8000113b08cc:	90000000 	adrp	x0, 0 <kmalloc_caches>
			ffff8000113b08cc: R_AARCH64_ADR_PREL_PG_HI21	kmalloc_caches+0x48
ffff8000113b08d0:	f9400000 	ldr	x0, [x0]
			ffff8000113b08d0: R_AARCH64_LDST64_ABS_LO12_NC	kmalloc_caches+0x48
ffff8000113b08d4:	5281b801 	mov	w1, #0xdc0                 	// #3520
ffff8000113b08d8:	d2802802 	mov	x2, #0x140                 	// #320
ffff8000113b08dc:	94000000 	bl	0 <kmem_cache_alloc_trace>
			ffff8000113b08dc: R_AARCH64_CALL26	kmem_cache_alloc_trace
ffff8000113b08e0:	aa0003f5 	mov	x21, x0
	if (!queue)
ffff8000113b08e4:	b4fffea0 	cbz	x0, ffff8000113b08b8 <dev_ingress_queue_create+0x24>
	queue->xmit_lock_owner = -1;
ffff8000113b08e8:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff8000113b08ec:	b90086a0 	str	w0, [x21,#132]
	q->numa_node = node;
ffff8000113b08f0:	b9005aa0 	str	w0, [x21,#88]
	spin_lock_init(&queue->_xmit_lock);
ffff8000113b08f4:	b90082b3 	str	w19, [x21,#128]
	queue->dev = dev;
ffff8000113b08f8:	aa1503e0 	mov	x0, x21
ffff8000113b08fc:	f80c0414 	str	x20, [x0],#192
	dql_init(&queue->dql, HZ);
ffff8000113b0900:	52801f41 	mov	w1, #0xfa                  	// #250
ffff8000113b0904:	94000000 	bl	0 <dql_init>
			ffff8000113b0904: R_AARCH64_CALL26	dql_init
	RCU_INIT_POINTER(queue->qdisc, &noop_qdisc);
ffff8000113b0908:	90000000 	adrp	x0, 0 <noop_qdisc>
			ffff8000113b0908: R_AARCH64_ADR_PREL_PG_HI21	noop_qdisc
ffff8000113b090c:	91000000 	add	x0, x0, #0x0
			ffff8000113b090c: R_AARCH64_ADD_ABS_LO12_NC	noop_qdisc
	case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
ffff8000113b0910:	f90006a0 	str	x0, [x21,#8]
	queue->qdisc_sleeping = &noop_qdisc;
ffff8000113b0914:	f9000aa0 	str	x0, [x21,#16]
	rcu_assign_pointer(dev->ingress_queue, queue);
ffff8000113b0918:	910d6294 	add	x20, x20, #0x358
ffff8000113b091c:	c89ffe95 	stlr	x21, [x20]
	return queue;
ffff8000113b0920:	aa1503f3 	mov	x19, x21
ffff8000113b0924:	17ffffe5 	b	ffff8000113b08b8 <dev_ingress_queue_create+0x24>

ffff8000113b0928 <netdev_freemem>:
{
ffff8000113b0928:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113b092c:	910003fd 	mov	x29, sp
ffff8000113b0930:	f9000bf3 	str	x19, [sp,#16]
ffff8000113b0934:	aa0003f3 	mov	x19, x0
ffff8000113b0938:	aa1e03e0 	mov	x0, x30
ffff8000113b093c:	94000000 	bl	0 <_mcount>
			ffff8000113b093c: R_AARCH64_CALL26	_mcount
	char *addr = (char *)dev - dev->padded;
ffff8000113b0940:	79446660 	ldrh	w0, [x19,#562]
	kvfree(addr);
ffff8000113b0944:	cb000260 	sub	x0, x19, x0
ffff8000113b0948:	94000000 	bl	0 <kvfree>
			ffff8000113b0948: R_AARCH64_CALL26	kvfree
}
ffff8000113b094c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113b0950:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113b0954:	d65f03c0 	ret

ffff8000113b0958 <netdev_drivername>:
{
ffff8000113b0958:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff8000113b095c:	910003fd 	mov	x29, sp
ffff8000113b0960:	f9000bf3 	str	x19, [sp,#16]
ffff8000113b0964:	aa0003f3 	mov	x19, x0
ffff8000113b0968:	aa1e03e0 	mov	x0, x30
ffff8000113b096c:	94000000 	bl	0 <_mcount>
			ffff8000113b096c: R_AARCH64_CALL26	_mcount
	parent = dev->dev.parent;
ffff8000113b0970:	f942aa60 	ldr	x0, [x19,#1360]
	if (!parent)
ffff8000113b0974:	b4000100 	cbz	x0, ffff8000113b0994 <netdev_drivername+0x3c>
	driver = parent->driver;
ffff8000113b0978:	f9403400 	ldr	x0, [x0,#104]
	if (driver && driver->name)
ffff8000113b097c:	b40000c0 	cbz	x0, ffff8000113b0994 <netdev_drivername+0x3c>
ffff8000113b0980:	f9400000 	ldr	x0, [x0]
ffff8000113b0984:	b4000080 	cbz	x0, ffff8000113b0994 <netdev_drivername+0x3c>
}
ffff8000113b0988:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113b098c:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113b0990:	d65f03c0 	ret
		return empty;
ffff8000113b0994:	90000000 	adrp	x0, ffff80001139e37c <__my_cpu_offset>
			ffff8000113b0994: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x68
ffff8000113b0998:	91000000 	add	x0, x0, #0x0
			ffff8000113b0998: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x68
}
ffff8000113b099c:	f9400bf3 	ldr	x19, [sp,#16]
ffff8000113b09a0:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff8000113b09a4:	d65f03c0 	ret

Disassembly of section .init.text:

ffff80001139e37c <netdev_boot_setup>:
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff80001139e37c:	a9b97bfd 	stp	x29, x30, [sp,#-112]!
}
ffff80001139e380:	910003fd 	mov	x29, sp
{
ffff80001139e384:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e388:	f90013f5 	str	x21, [sp,#32]
ffff80001139e38c:	aa0003f4 	mov	x20, x0
ffff80001139e390:	aa1e03e0 	mov	x0, x30
ffff80001139e394:	94000000 	bl	0 <_mcount>
			ffff80001139e394: R_AARCH64_CALL26	_mcount
ffff80001139e398:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e398: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	if (dev->netdev_ops && dev->netdev_ops->ndo_get_iflink)
ffff80001139e39c:	f9400263 	ldr	x3, [x19]
			ffff80001139e39c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e3a0:	528000a1 	mov	w1, #0x5                   	// #5
ffff80001139e3a4:	aa1403e0 	mov	x0, x20
ffff80001139e3a8:	9100e3a2 	add	x2, x29, #0x38
		return dev->netdev_ops->ndo_get_iflink(dev);
ffff80001139e3ac:	f90037a3 	str	x3, [x29,#104]
ffff80001139e3b0:	94000000 	bl	0 <get_options>
			ffff80001139e3b0: R_AARCH64_CALL26	get_options
}
ffff80001139e3b4:	aa0003e1 	mov	x1, x0
ffff80001139e3b8:	aa1303f5 	mov	x21, x19
ffff80001139e3bc:	b40005e0 	cbz	x0, ffff80001139e478 <netdev_boot_setup+0xfc>
	return dev->ifindex;
ffff80001139e3c0:	39400002 	ldrb	w2, [x0]
}
ffff80001139e3c4:	52800000 	mov	w0, #0x0                   	// #0
ffff80001139e3c8:	34000582 	cbz	w2, ffff80001139e478 <netdev_boot_setup+0xfc>
ffff80001139e3cc:	b9403ba0 	ldr	w0, [x29,#56]
{
ffff80001139e3d0:	a9057fbf 	stp	xzr, xzr, [x29,#80]
ffff80001139e3d4:	f90033bf 	str	xzr, [x29,#96]
ffff80001139e3d8:	6b1f001f 	cmp	w0, wzr
ffff80001139e3dc:	540001ed 	b.le	ffff80001139e418 <netdev_boot_setup+0x9c>
ffff80001139e3e0:	b9403fa2 	ldr	w2, [x29,#60]
ffff80001139e3e4:	7100041f 	cmp	w0, #0x1
ffff80001139e3e8:	39018ba2 	strb	w2, [x29,#98]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3ec:	54000160 	b.eq	ffff80001139e418 <netdev_boot_setup+0x9c>
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f0:	b94043a2 	ldr	w2, [x29,#64]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3f4:	7100081f 	cmp	w0, #0x2
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f8:	7900c3a2 	strh	w2, [x29,#96]
ffff80001139e3fc:	540000e0 	b.eq	ffff80001139e418 <netdev_boot_setup+0x9c>
ffff80001139e400:	b98047a2 	ldrsw	x2, [x29,#68]
ffff80001139e404:	71000c1f 	cmp	w0, #0x3
		if (dev->ifindex == ifindex)
ffff80001139e408:	f9002ba2 	str	x2, [x29,#80]
ffff80001139e40c:	54000060 	b.eq	ffff80001139e418 <netdev_boot_setup+0x9c>
ffff80001139e410:	b9804ba0 	ldrsw	x0, [x29,#72]
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e414:	f9002fa0 	str	x0, [x29,#88]
ffff80001139e418:	90000013 	adrp	x19, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e418: R_AARCH64_ADR_PREL_PG_HI21	.bss
}
ffff80001139e41c:	91000273 	add	x19, x19, #0x0
			ffff80001139e41c: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff80001139e420:	91072273 	add	x19, x19, #0x1c8
ffff80001139e424:	52800014 	mov	w20, #0x0                   	// #0
{
ffff80001139e428:	39400262 	ldrb	w2, [x19]
ffff80001139e42c:	121a7842 	and	w2, w2, #0xffffffdf
ffff80001139e430:	53001c42 	uxtb	w2, w2
ffff80001139e434:	35000142 	cbnz	w2, ffff80001139e45c <netdev_boot_setup+0xe0>
ffff80001139e438:	d2800202 	mov	x2, #0x10                  	// #16
ffff80001139e43c:	aa1303e0 	mov	x0, x19
ffff80001139e440:	a9007e7f 	stp	xzr, xzr, [x19]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e444:	94000000 	bl	0 <strlcpy>
			ffff80001139e444: R_AARCH64_CALL26	strlcpy
ffff80001139e448:	a9450fa2 	ldp	x2, x3, [x29,#80]
ffff80001139e44c:	a9010e62 	stp	x2, x3, [x19,#16]
	__READ_ONCE_SIZE;
ffff80001139e450:	f94033a0 	ldr	x0, [x29,#96]
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e454:	f9001260 	str	x0, [x19,#32]
ffff80001139e458:	14000005 	b	ffff80001139e46c <netdev_boot_setup+0xf0>
ffff80001139e45c:	11000694 	add	w20, w20, #0x1
		if (dev->ifindex == ifindex)
ffff80001139e460:	7100229f 	cmp	w20, #0x8
ffff80001139e464:	9100a273 	add	x19, x19, #0x28
ffff80001139e468:	54fffe01 	b.ne	ffff80001139e428 <netdev_boot_setup+0xac>
ffff80001139e46c:	71001e9f 	cmp	w20, #0x7
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e470:	1a9fc7e0 	cset	w0, le
}
ffff80001139e474:	14000001 	b	ffff80001139e478 <netdev_boot_setup+0xfc>
ffff80001139e478:	f94037a2 	ldr	x2, [x29,#104]
ffff80001139e47c:	f94002a1 	ldr	x1, [x21]
			ffff80001139e47c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
{
ffff80001139e480:	eb01005f 	cmp	x2, x1
ffff80001139e484:	54000040 	b.eq	ffff80001139e48c <netdev_boot_setup+0x110>
ffff80001139e488:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e488: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e48c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e490:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e494:	a8c77bfd 	ldp	x29, x30, [sp],#112
	if (napi_id < MIN_NAPI_ID)
ffff80001139e498:	d65f03c0 	ret

ffff80001139e49c <net_dev_init>:
ffff80001139e49c:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff80001139e4a0:	910003fd 	mov	x29, sp
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4a4:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e4a8:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139e4ac:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139e4b0:	f90023f9 	str	x25, [sp,#64]
ffff80001139e4b4:	aa1e03e0 	mov	x0, x30
ffff80001139e4b8:	94000000 	bl	0 <_mcount>
			ffff80001139e4b8: R_AARCH64_CALL26	_mcount
		if (napi->napi_id == napi_id)
ffff80001139e4bc:	90000000 	adrp	x0, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e4bc: R_AARCH64_ADR_PREL_PG_HI21	.data
ffff80001139e4c0:	b9400001 	ldr	w1, [x0]
			ffff80001139e4c0: R_AARCH64_LDST32_ABS_LO12_NC	.data
ffff80001139e4c4:	aa0003f3 	mov	x19, x0
ffff80001139e4c8:	35000041 	cbnz	w1, ffff80001139e4d0 <net_dev_init+0x34>
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4cc:	d4210000 	brk	#0x800
		return NULL;
ffff80001139e4d0:	94000000 	bl	0 <dev_proc_init>
			ffff80001139e4d0: R_AARCH64_CALL26	dev_proc_init
}
ffff80001139e4d4:	12800161 	mov	w1, #0xfffffff4            	// #-12
ffff80001139e4d8:	35000fa0 	cbnz	w0, ffff80001139e6cc <net_dev_init+0x230>
ffff80001139e4dc:	94000000 	bl	0 <netdev_kobject_init>
			ffff80001139e4dc: R_AARCH64_CALL26	netdev_kobject_init
	return napi ? napi->dev : NULL;
ffff80001139e4e0:	34000060 	cbz	w0, ffff80001139e4ec <net_dev_init+0x50>
}
ffff80001139e4e4:	12800161 	mov	w1, #0xfffffff4            	// #-12
ffff80001139e4e8:	14000079 	b	ffff80001139e6cc <net_dev_init+0x230>
ffff80001139e4ec:	90000015 	adrp	x21, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e4ec: R_AARCH64_ADR_PREL_PG_HI21	.data..read_mostly
{
ffff80001139e4f0:	910002a1 	add	x1, x21, #0x0
			ffff80001139e4f0: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
ffff80001139e4f4:	91200020 	add	x0, x1, #0x800
ffff80001139e4f8:	f9040020 	str	x0, [x1,#2048]
ffff80001139e4fc:	f9000400 	str	x0, [x0,#8]
ffff80001139e500:	9120c020 	add	x0, x1, #0x830
ffff80001139e504:	9124c021 	add	x1, x1, #0x930
ffff80001139e508:	f9000000 	str	x0, [x0]
ffff80001139e50c:	f9000400 	str	x0, [x0,#8]
ffff80001139e510:	91004000 	add	x0, x0, #0x10
ffff80001139e514:	eb01001f 	cmp	x0, x1
ffff80001139e518:	54ffff81 	b.ne	ffff80001139e508 <net_dev_init+0x6c>
ffff80001139e51c:	910002a2 	add	x2, x21, #0x0
			ffff80001139e51c: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
}
ffff80001139e520:	91204041 	add	x1, x2, #0x810
ffff80001139e524:	91000260 	add	x0, x19, #0x0
			ffff80001139e524: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff80001139e528:	91002000 	add	x0, x0, #0x8
{
ffff80001139e52c:	f9040841 	str	x1, [x2,#2064]
ffff80001139e530:	f9000421 	str	x1, [x1,#8]
}
ffff80001139e534:	94000000 	bl	0 <register_pernet_subsys>
			ffff80001139e534: R_AARCH64_CALL26	register_pernet_subsys
ffff80001139e538:	35fffd60 	cbnz	w0, ffff80001139e4e4 <net_dev_init+0x48>
ffff80001139e53c:	90000014 	adrp	x20, 0 <__cpu_possible_mask>
			ffff80001139e53c: R_AARCH64_ADR_PREL_PG_HI21	__cpu_possible_mask
{
ffff80001139e540:	90000019 	adrp	x25, 0 <nr_cpu_ids>
			ffff80001139e540: R_AARCH64_ADR_PREL_PG_HI21	nr_cpu_ids
ffff80001139e544:	90000018 	adrp	x24, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e544: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu
ffff80001139e548:	90000017 	adrp	x23, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e548: R_AARCH64_ADR_PREL_PG_HI21	.data..percpu..shared_aligned
ffff80001139e54c:	12800000 	mov	w0, #0xffffffff            	// #-1
ffff80001139e550:	91000294 	add	x20, x20, #0x0
			ffff80001139e550: R_AARCH64_ADD_ABS_LO12_NC	__cpu_possible_mask
ffff80001139e554:	91000339 	add	x25, x25, #0x0
			ffff80001139e554: R_AARCH64_ADD_ABS_LO12_NC	nr_cpu_ids
ffff80001139e558:	90000016 	adrp	x22, 0 <__per_cpu_offset>
			ffff80001139e558: R_AARCH64_ADR_PREL_PG_HI21	__per_cpu_offset
ffff80001139e55c:	91000318 	add	x24, x24, #0x0
			ffff80001139e55c: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu
ffff80001139e560:	910002f7 	add	x23, x23, #0x0
			ffff80001139e560: R_AARCH64_ADD_ABS_LO12_NC	.data..percpu..shared_aligned
ffff80001139e564:	aa1403e1 	mov	x1, x20
	if (dev->flags & IFF_UP) {
ffff80001139e568:	94000000 	bl	0 <cpumask_next>
			ffff80001139e568: R_AARCH64_CALL26	cpumask_next
{
ffff80001139e56c:	b9400321 	ldr	w1, [x25]
	struct netdev_notifier_info info = {
ffff80001139e570:	6b01001f 	cmp	w0, w1
	if (dev->flags & IFF_UP) {
ffff80001139e574:	54000702 	b.cs	ffff80001139e654 <net_dev_init+0x1b8>
	struct netdev_notifier_info info = {
ffff80001139e578:	910002c1 	add	x1, x22, #0x0
			ffff80001139e578: R_AARCH64_ADD_ABS_LO12_NC	__per_cpu_offset
	return nb->notifier_call(nb, val, &info);
ffff80001139e57c:	f860d822 	ldr	x2, [x1,w0,sxtw #3]
ffff80001139e580:	b27b7be3 	mov	x3, #0xfffffffe0           	// #68719476704
ffff80001139e584:	8b020301 	add	x1, x24, x2
	struct netdev_notifier_info info = {
ffff80001139e588:	f8226b03 	str	x3, [x24,x2]
	return nb->notifier_call(nb, val, &info);
ffff80001139e58c:	91002024 	add	x4, x1, #0x8
ffff80001139e590:	f9000424 	str	x4, [x1,#8]
ffff80001139e594:	f9000484 	str	x4, [x4,#8]
	struct netdev_notifier_info info = {
ffff80001139e598:	90000004 	adrp	x4, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e598: R_AARCH64_ADR_PREL_PG_HI21	.text+0x7dd4
ffff80001139e59c:	8b0202e3 	add	x3, x23, x2
	return nb->notifier_call(nb, val, &info);
ffff80001139e5a0:	91000084 	add	x4, x4, #0x0
			ffff80001139e5a0: R_AARCH64_ADD_ABS_LO12_NC	.text+0x7dd4
ffff80001139e5a4:	f9000c24 	str	x4, [x1,#24]
ffff80001139e5a8:	9103e061 	add	x1, x3, #0xf8
ffff80001139e5ac:	f9007c61 	str	x1, [x3,#248]
	struct netdev_notifier_info info = {
ffff80001139e5b0:	b9010c7f 	str	wzr, [x3,#268]
	return nb->notifier_call(nb, val, &info);
ffff80001139e5b4:	f9000421 	str	x1, [x1,#8]
ffff80001139e5b8:	b900103f 	str	wzr, [x1,#16]
	struct netdev_notifier_info info = {
ffff80001139e5bc:	91004061 	add	x1, x3, #0x10
	return nb->notifier_call(nb, val, &info);
ffff80001139e5c0:	f9000861 	str	x1, [x3,#16]
ffff80001139e5c4:	b900247f 	str	wzr, [x3,#36]
ffff80001139e5c8:	f9000421 	str	x1, [x1,#8]
}
ffff80001139e5cc:	b900103f 	str	wzr, [x1,#16]
ffff80001139e5d0:	91018061 	add	x1, x3, #0x60
ffff80001139e5d4:	f9003061 	str	x1, [x3,#96]
ffff80001139e5d8:	b900747f 	str	wzr, [x3,#116]
ffff80001139e5dc:	f9000421 	str	x1, [x1,#8]
ffff80001139e5e0:	b900103f 	str	wzr, [x1,#16]
ffff80001139e5e4:	f8226ae3 	str	x3, [x23,x2]
ffff80001139e5e8:	91012062 	add	x2, x3, #0x48
ffff80001139e5ec:	f9002862 	str	x2, [x3,#80]
{
ffff80001139e5f0:	90000002 	adrp	x2, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e5f0: R_AARCH64_ADR_PREL_PG_HI21	.text+0x4bb4
ffff80001139e5f4:	91000042 	add	x2, x2, #0x0
			ffff80001139e5f4: R_AARCH64_ADD_ABS_LO12_NC	.text+0x4bb4
ffff80001139e5f8:	91044061 	add	x1, x3, #0x110
ffff80001139e5fc:	f9006462 	str	x2, [x3,#200]
ffff80001139e600:	f9000463 	str	x3, [x3,#8]
ffff80001139e604:	f9006863 	str	x3, [x3,#208]
ffff80001139e608:	b900e860 	str	w0, [x3,#232]
	for_each_netdev(net, dev) {
ffff80001139e60c:	91054062 	add	x2, x3, #0x150
{
ffff80001139e610:	91084066 	add	x6, x3, #0x210
ffff80001139e614:	cb030025 	sub	x5, x1, x3
ffff80001139e618:	f9000042 	str	x2, [x2]
	for_each_netdev(net, dev) {
ffff80001139e61c:	f9000442 	str	x2, [x2,#8]
{
ffff80001139e620:	8b0200a4 	add	x4, x5, x2
	for_each_netdev(net, dev) {
ffff80001139e624:	91006042 	add	x2, x2, #0x18
ffff80001139e628:	b810009f 	stur	wzr, [x4,#-256]
ffff80001139e62c:	eb06005f 	cmp	x2, x6
ffff80001139e630:	54ffff41 	b.ne	ffff80001139e618 <net_dev_init+0x17c>
	struct netdev_notifier_info info = {
ffff80001139e634:	910002a2 	add	x2, x21, #0x0
			ffff80001139e634: R_AARCH64_ADD_ABS_LO12_NC	.data..read_mostly
	return nb->notifier_call(nb, val, &info);
ffff80001139e638:	f900103f 	str	xzr, [x1,#32]
	struct netdev_notifier_info info = {
ffff80001139e63c:	b9493042 	ldr	w2, [x2,#2352]
	return nb->notifier_call(nb, val, &info);
ffff80001139e640:	90000001 	adrp	x1, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e640: R_AARCH64_ADR_PREL_PG_HI21	.text+0xd00c
ffff80001139e644:	91000021 	add	x1, x1, #0x0
			ffff80001139e644: R_AARCH64_ADD_ABS_LO12_NC	.text+0xd00c
ffff80001139e648:	f9009c61 	str	x1, [x3,#312]
ffff80001139e64c:	b9012862 	str	w2, [x3,#296]
	ret &= ~NOTIFY_STOP_MASK;
ffff80001139e650:	17ffffc5 	b	ffff80001139e564 <net_dev_init+0xc8>
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff80001139e654:	90000000 	adrp	x0, 0 <loopback_net_ops>
			ffff80001139e654: R_AARCH64_ADR_PREL_PG_HI21	loopback_net_ops
ffff80001139e658:	91000000 	add	x0, x0, #0x0
			ffff80001139e658: R_AARCH64_ADD_ABS_LO12_NC	loopback_net_ops
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e65c:	91000274 	add	x20, x19, #0x0
			ffff80001139e65c: R_AARCH64_ADD_ABS_LO12_NC	.data
ffff80001139e660:	b900027f 	str	wzr, [x19]
			ffff80001139e660: R_AARCH64_LDST32_ABS_LO12_NC	.data
ffff80001139e664:	94000000 	bl	0 <register_pernet_device>
			ffff80001139e664: R_AARCH64_CALL26	register_pernet_device
ffff80001139e668:	35fff3e0 	cbnz	w0, ffff80001139e4e4 <net_dev_init+0x48>
ffff80001139e66c:	91012280 	add	x0, x20, #0x48
ffff80001139e670:	94000000 	bl	0 <register_pernet_device>
			ffff80001139e670: R_AARCH64_CALL26	register_pernet_device
		call_netdevice_unregister_notifiers(nb, dev);
ffff80001139e674:	2a0003f3 	mov	w19, w0
ffff80001139e678:	35fff360 	cbnz	w0, ffff80001139e4e4 <net_dev_init+0x48>
ffff80001139e67c:	90000001 	adrp	x1, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e67c: R_AARCH64_ADR_PREL_PG_HI21	.text+0x7f78
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e680:	52800040 	mov	w0, #0x2                   	// #2
ffff80001139e684:	91000021 	add	x1, x1, #0x0
			ffff80001139e684: R_AARCH64_ADD_ABS_LO12_NC	.text+0x7f78
ffff80001139e688:	94000000 	bl	0 <open_softirq>
			ffff80001139e688: R_AARCH64_CALL26	open_softirq
ffff80001139e68c:	90000001 	adrp	x1, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e68c: R_AARCH64_ADR_PREL_PG_HI21	.text+0xec64
ffff80001139e690:	52800060 	mov	w0, #0x3                   	// #3
}
ffff80001139e694:	91000021 	add	x1, x1, #0x0
			ffff80001139e694: R_AARCH64_ADD_ABS_LO12_NC	.text+0xec64
ffff80001139e698:	94000000 	bl	0 <open_softirq>
			ffff80001139e698: R_AARCH64_CALL26	open_softirq
ffff80001139e69c:	90000001 	adrp	x1, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e69c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x228
ffff80001139e6a0:	90000004 	adrp	x4, ffff80001139e37c <netdev_boot_setup>
			ffff80001139e6a0: R_AARCH64_ADR_PREL_PG_HI21	.text+0x89d8
ffff80001139e6a4:	91000021 	add	x1, x1, #0x0
			ffff80001139e6a4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x228
ffff80001139e6a8:	528003c0 	mov	w0, #0x1e                  	// #30
ffff80001139e6ac:	2a1303e2 	mov	w2, w19
ffff80001139e6b0:	d2800003 	mov	x3, #0x0                   	// #0
ffff80001139e6b4:	91000084 	add	x4, x4, #0x0
			ffff80001139e6b4: R_AARCH64_ADD_ABS_LO12_NC	.text+0x89d8
	if (!(dev->flags & IFF_UP))
ffff80001139e6b8:	2a1303e5 	mov	w5, w19
ffff80001139e6bc:	94000000 	bl	0 <__cpuhp_setup_state>
			ffff80001139e6bc: R_AARCH64_CALL26	__cpuhp_setup_state
	struct netdev_notifier_info info = {
ffff80001139e6c0:	2a1303e1 	mov	w1, w19
	return nb->notifier_call(nb, val, &info);
ffff80001139e6c4:	36f80040 	tbz	w0, #31, ffff80001139e6cc <net_dev_init+0x230>
	struct netdev_notifier_info info = {
ffff80001139e6c8:	d4210000 	brk	#0x800
	return nb->notifier_call(nb, val, &info);
ffff80001139e6cc:	2a0103e0 	mov	w0, w1
ffff80001139e6d0:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e6d4:	a9425bf5 	ldp	x21, x22, [sp,#32]
ffff80001139e6d8:	a94363f7 	ldp	x23, x24, [sp,#48]
	for_each_netdev(net, dev) {
ffff80001139e6dc:	f94023f9 	ldr	x25, [sp,#64]
ffff80001139e6e0:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff80001139e6e4:	d65f03c0 	ret

Disassembly of section .text.unlikely:

ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>:
	asm(ALTERNATIVE("mrs %0, tpidr_el1",
ffff80001139e37c:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
}
ffff80001139e380:	910003fd 	mov	x29, sp
{
ffff80001139e384:	f9000bf3 	str	x19, [sp,#16]
ffff80001139e388:	f90017a1 	str	x1, [x29,#40]
ffff80001139e38c:	aa0003f3 	mov	x19, x0
ffff80001139e390:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e390: R_AARCH64_CALL26	.text
ffff80001139e394:	f94017a1 	ldr	x1, [x29,#40]
ffff80001139e398:	b940bc22 	ldr	w2, [x1,#188]
	if (dev->netdev_ops && dev->netdev_ops->ndo_get_iflink)
ffff80001139e39c:	f9406023 	ldr	x3, [x1,#192]
ffff80001139e3a0:	b9402824 	ldr	w4, [x1,#40]
ffff80001139e3a4:	8b020063 	add	x3, x3, x2
ffff80001139e3a8:	79400865 	ldrh	w5, [x3,#4]
		return dev->netdev_ops->ndo_get_iflink(dev);
ffff80001139e3ac:	8b130002 	add	x2, x0, x19
ffff80001139e3b0:	52800021 	mov	w1, #0x1                   	// #1
}
ffff80001139e3b4:	34000045 	cbz	w5, ffff80001139e3bc <mini_qdisc_bstats_cpu_update.isra.70+0x40>
ffff80001139e3b8:	79400c61 	ldrh	w1, [x3,#6]
ffff80001139e3bc:	f8736803 	ldr	x3, [x0,x19]
	return dev->ifindex;
ffff80001139e3c0:	8b040063 	add	x3, x3, x4
}
ffff80001139e3c4:	f8336803 	str	x3, [x0,x19]
ffff80001139e3c8:	f9400440 	ldr	x0, [x2,#8]
ffff80001139e3cc:	8b212001 	add	x1, x0, w1, uxth
{
ffff80001139e3d0:	f9000441 	str	x1, [x2,#8]
ffff80001139e3d4:	f9400bf3 	ldr	x19, [sp,#16]
ffff80001139e3d8:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139e3dc:	d65f03c0 	ret

ffff80001139e3e0 <mini_qdisc_qstats_cpu_drop.isra.71>:
ffff80001139e3e0:	a9be7bfd 	stp	x29, x30, [sp,#-32]!
ffff80001139e3e4:	910003fd 	mov	x29, sp
ffff80001139e3e8:	f9000bf3 	str	x19, [sp,#16]
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3ec:	f9400013 	ldr	x19, [x0]
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f0:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e3f0: R_AARCH64_CALL26	.text
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e3f4:	91002273 	add	x19, x19, #0x8
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e3f8:	52800021 	mov	w1, #0x1                   	// #1
ffff80001139e3fc:	8b130004 	add	x4, x0, x19
ffff80001139e400:	885f7c83 	ldxr	w3, [x4]
ffff80001139e404:	0b010063 	add	w3, w3, w1
		if (dev->ifindex == ifindex)
ffff80001139e408:	88027c83 	stxr	w2, w3, [x4]
ffff80001139e40c:	35ffffa2 	cbnz	w2, ffff80001139e400 <mini_qdisc_qstats_cpu_drop.isra.71+0x20>
ffff80001139e410:	f9400bf3 	ldr	x19, [sp,#16]
	hlist_for_each_entry(dev, head, index_hlist)
ffff80001139e414:	a8c27bfd 	ldp	x29, x30, [sp],#32
ffff80001139e418:	d65f03c0 	ret

ffff80001139e41c <__skb_pull.part.98>:
}
ffff80001139e41c:	d4210000 	brk	#0x800

ffff80001139e420 <skb_warn_bad_offload>:
ffff80001139e420:	a9bd7bfd 	stp	x29, x30, [sp,#-48]!
ffff80001139e424:	910003fd 	mov	x29, sp
{
ffff80001139e428:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e42c:	f90013f5 	str	x21, [sp,#32]
ffff80001139e430:	aa0003f4 	mov	x20, x0
ffff80001139e434:	aa1e03e0 	mov	x0, x30
ffff80001139e438:	94000000 	bl	0 <_mcount>
			ffff80001139e438: R_AARCH64_CALL26	_mcount
ffff80001139e43c:	f9400a93 	ldr	x19, [x20,#16]
ffff80001139e440:	94000000 	bl	0 <net_ratelimit>
			ffff80001139e440: R_AARCH64_CALL26	net_ratelimit
	return &net->dev_index_head[ifindex & (NETDEV_HASHENTRIES - 1)];
ffff80001139e444:	34000520 	cbz	w0, ffff80001139e4e8 <skb_warn_bad_offload+0xc8>
ffff80001139e448:	b4000193 	cbz	x19, ffff80001139e478 <skb_warn_bad_offload+0x58>
ffff80001139e44c:	f942aa60 	ldr	x0, [x19,#1360]
ffff80001139e450:	b4000080 	cbz	x0, ffff80001139e460 <skb_warn_bad_offload+0x40>
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e454:	94000000 	bl	0 <dev_driver_string>
			ffff80001139e454: R_AARCH64_CALL26	dev_driver_string
ffff80001139e458:	aa0003f5 	mov	x21, x0
ffff80001139e45c:	1400000c 	b	ffff80001139e48c <skb_warn_bad_offload+0x6c>
		if (dev->ifindex == ifindex)
ffff80001139e460:	39400260 	ldrb	w0, [x19]
ffff80001139e464:	34000100 	cbz	w0, ffff80001139e484 <skb_warn_bad_offload+0x64>
ffff80001139e468:	aa1303e0 	mov	x0, x19
ffff80001139e46c:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e46c: R_AARCH64_CALL26	.text+0x3610
	hlist_for_each_entry_rcu(dev, head, index_hlist)
ffff80001139e470:	aa0003f5 	mov	x21, x0
}
ffff80001139e474:	14000006 	b	ffff80001139e48c <skb_warn_bad_offload+0x6c>
ffff80001139e478:	90000015 	adrp	x21, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e478: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x68
ffff80001139e47c:	910002b5 	add	x21, x21, #0x0
			ffff80001139e47c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x68
{
ffff80001139e480:	14000003 	b	ffff80001139e48c <skb_warn_bad_offload+0x6c>
ffff80001139e484:	90000015 	adrp	x21, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e484: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
ffff80001139e488:	910002b5 	add	x21, x21, #0x0
			ffff80001139e488: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
ffff80001139e48c:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e48c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x170
ffff80001139e490:	91000000 	add	x0, x0, #0x0
			ffff80001139e490: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x170
ffff80001139e494:	aa1403e1 	mov	x1, x20
	if (napi_id < MIN_NAPI_ID)
ffff80001139e498:	52800002 	mov	w2, #0x0                   	// #0
ffff80001139e49c:	94000000 	bl	0 <skb_dump>
			ffff80001139e49c: R_AARCH64_CALL26	skb_dump
ffff80001139e4a0:	b4000073 	cbz	x19, ffff80001139e4ac <skb_warn_bad_offload+0x8c>
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4a4:	91032262 	add	x2, x19, #0xc8
ffff80001139e4a8:	14000004 	b	ffff80001139e4b8 <skb_warn_bad_offload+0x98>
ffff80001139e4ac:	90000002 	adrp	x2, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e4ac: R_AARCH64_ADR_PREL_PG_HI21	.bss
ffff80001139e4b0:	91000042 	add	x2, x2, #0x0
			ffff80001139e4b0: R_AARCH64_ADD_ABS_LO12_NC	.bss
ffff80001139e4b4:	910c4042 	add	x2, x2, #0x310
ffff80001139e4b8:	f9400e83 	ldr	x3, [x20,#24]
		if (napi->napi_id == napi_id)
ffff80001139e4bc:	b4000063 	cbz	x3, ffff80001139e4c8 <skb_warn_bad_offload+0xa8>
ffff80001139e4c0:	9107a063 	add	x3, x3, #0x1e8
ffff80001139e4c4:	14000004 	b	ffff80001139e4d4 <skb_warn_bad_offload+0xb4>
ffff80001139e4c8:	90000003 	adrp	x3, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e4c8: R_AARCH64_ADR_PREL_PG_HI21	.bss
	hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node)
ffff80001139e4cc:	91000063 	add	x3, x3, #0x0
			ffff80001139e4cc: R_AARCH64_ADD_ABS_LO12_NC	.bss
		return NULL;
ffff80001139e4d0:	910c4063 	add	x3, x3, #0x310
}
ffff80001139e4d4:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e4d4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x178
ffff80001139e4d8:	91000000 	add	x0, x0, #0x0
			ffff80001139e4d8: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x178
ffff80001139e4dc:	aa1503e1 	mov	x1, x21
	return napi ? napi->dev : NULL;
ffff80001139e4e0:	94000000 	bl	0 <__warn_printk>
			ffff80001139e4e0: R_AARCH64_CALL26	__warn_printk
}
ffff80001139e4e4:	d4210000 	brk	#0x800
ffff80001139e4e8:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e4ec:	f94013f5 	ldr	x21, [sp,#32]
{
ffff80001139e4f0:	a8c37bfd 	ldp	x29, x30, [sp],#48
ffff80001139e4f4:	d65f03c0 	ret

ffff80001139e4f8 <__netdev_printk>:
ffff80001139e4f8:	a9bb7bfd 	stp	x29, x30, [sp,#-80]!
ffff80001139e4fc:	910003fd 	mov	x29, sp
ffff80001139e500:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e504:	a9025bf5 	stp	x21, x22, [sp,#32]
ffff80001139e508:	a90363f7 	stp	x23, x24, [sp,#48]
ffff80001139e50c:	aa0003f5 	mov	x21, x0
ffff80001139e510:	aa0103f3 	mov	x19, x1
ffff80001139e514:	aa1e03e0 	mov	x0, x30
ffff80001139e518:	aa0203f4 	mov	x20, x2
ffff80001139e51c:	94000000 	bl	0 <_mcount>
			ffff80001139e51c: R_AARCH64_CALL26	_mcount
}
ffff80001139e520:	b4000693 	cbz	x19, ffff80001139e5f0 <__netdev_printk+0xf8>
ffff80001139e524:	f942aa60 	ldr	x0, [x19,#1360]
ffff80001139e528:	b40003e0 	cbz	x0, ffff80001139e5a4 <__netdev_printk+0xac>
{
ffff80001139e52c:	394006b7 	ldrb	w23, [x21,#1]
ffff80001139e530:	94000000 	bl	0 <dev_driver_string>
			ffff80001139e530: R_AARCH64_CALL26	dev_driver_string
}
ffff80001139e534:	f942aa76 	ldr	x22, [x19,#1360]
ffff80001139e538:	5100c2f7 	sub	w23, w23, #0x30
ffff80001139e53c:	f9402ad5 	ldr	x21, [x22,#80]
{
ffff80001139e540:	aa0003f8 	mov	x24, x0
ffff80001139e544:	b5000055 	cbnz	x21, ffff80001139e54c <__netdev_printk+0x54>
ffff80001139e548:	f94002d5 	ldr	x21, [x22]
ffff80001139e54c:	39400260 	ldrb	w0, [x19]
ffff80001139e550:	340000a0 	cbz	w0, ffff80001139e564 <__netdev_printk+0x6c>
ffff80001139e554:	aa1303e0 	mov	x0, x19
ffff80001139e558:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e558: R_AARCH64_CALL26	.text+0x3610
ffff80001139e55c:	aa0003e5 	mov	x5, x0
ffff80001139e560:	14000003 	b	ffff80001139e56c <__netdev_printk+0x74>
ffff80001139e564:	90000005 	adrp	x5, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e564: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
	if (dev->flags & IFF_UP) {
ffff80001139e568:	910000a5 	add	x5, x5, #0x0
			ffff80001139e568: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
{
ffff80001139e56c:	aa1303e0 	mov	x0, x19
	struct netdev_notifier_info info = {
ffff80001139e570:	f90027a5 	str	x5, [x29,#72]
	if (dev->flags & IFF_UP) {
ffff80001139e574:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e574: R_AARCH64_CALL26	.text+0x189c
	struct netdev_notifier_info info = {
ffff80001139e578:	90000002 	adrp	x2, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e578: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x190
	return nb->notifier_call(nb, val, &info);
ffff80001139e57c:	f94027a5 	ldr	x5, [x29,#72]
ffff80001139e580:	aa0003e6 	mov	x6, x0
ffff80001139e584:	aa1603e1 	mov	x1, x22
	struct netdev_notifier_info info = {
ffff80001139e588:	2a1703e0 	mov	w0, w23
	return nb->notifier_call(nb, val, &info);
ffff80001139e58c:	91000042 	add	x2, x2, #0x0
			ffff80001139e58c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x190
ffff80001139e590:	aa1803e3 	mov	x3, x24
ffff80001139e594:	aa1503e4 	mov	x4, x21
	struct netdev_notifier_info info = {
ffff80001139e598:	aa1403e7 	mov	x7, x20
ffff80001139e59c:	94000000 	bl	0 <dev_printk_emit>
			ffff80001139e59c: R_AARCH64_CALL26	dev_printk_emit
	return nb->notifier_call(nb, val, &info);
ffff80001139e5a0:	14000019 	b	ffff80001139e604 <__netdev_printk+0x10c>
ffff80001139e5a4:	39400260 	ldrb	w0, [x19]
ffff80001139e5a8:	340000a0 	cbz	w0, ffff80001139e5bc <__netdev_printk+0xc4>
ffff80001139e5ac:	aa1303e0 	mov	x0, x19
	struct netdev_notifier_info info = {
ffff80001139e5b0:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e5b0: R_AARCH64_CALL26	.text+0x3610
	return nb->notifier_call(nb, val, &info);
ffff80001139e5b4:	aa0003e2 	mov	x2, x0
ffff80001139e5b8:	14000003 	b	ffff80001139e5c4 <__netdev_printk+0xcc>
	struct netdev_notifier_info info = {
ffff80001139e5bc:	90000002 	adrp	x2, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e5bc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x158
	return nb->notifier_call(nb, val, &info);
ffff80001139e5c0:	91000042 	add	x2, x2, #0x0
			ffff80001139e5c0: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x158
ffff80001139e5c4:	aa1303e0 	mov	x0, x19
ffff80001139e5c8:	f90027a2 	str	x2, [x29,#72]
}
ffff80001139e5cc:	94000000 	bl	ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e5cc: R_AARCH64_CALL26	.text+0x189c
ffff80001139e5d0:	aa0003e3 	mov	x3, x0
ffff80001139e5d4:	f94027a2 	ldr	x2, [x29,#72]
ffff80001139e5d8:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e5d8: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1a0
ffff80001139e5dc:	aa1503e1 	mov	x1, x21
ffff80001139e5e0:	aa1403e4 	mov	x4, x20
ffff80001139e5e4:	91000000 	add	x0, x0, #0x0
			ffff80001139e5e4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1a0
ffff80001139e5e8:	94000000 	bl	0 <printk>
			ffff80001139e5e8: R_AARCH64_CALL26	printk
ffff80001139e5ec:	14000006 	b	ffff80001139e604 <__netdev_printk+0x10c>
{
ffff80001139e5f0:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e5f0: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1b0
ffff80001139e5f4:	91000000 	add	x0, x0, #0x0
			ffff80001139e5f4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1b0
ffff80001139e5f8:	aa1503e1 	mov	x1, x21
ffff80001139e5fc:	aa1403e2 	mov	x2, x20
ffff80001139e600:	94000000 	bl	0 <printk>
			ffff80001139e600: R_AARCH64_CALL26	printk
ffff80001139e604:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e608:	a9425bf5 	ldp	x21, x22, [sp,#32]
	for_each_netdev(net, dev) {
ffff80001139e60c:	a94363f7 	ldp	x23, x24, [sp,#48]
{
ffff80001139e610:	a8c57bfd 	ldp	x29, x30, [sp],#80
ffff80001139e614:	d65f03c0 	ret

ffff80001139e618 <netdev_printk>:
ffff80001139e618:	a9b57bfd 	stp	x29, x30, [sp,#-176]!
	for_each_netdev(net, dev) {
ffff80001139e61c:	910003fd 	mov	x29, sp
{
ffff80001139e620:	a90153f3 	stp	x19, x20, [sp,#16]
	for_each_netdev(net, dev) {
ffff80001139e624:	f90013f5 	str	x21, [sp,#32]
ffff80001139e628:	aa0003f5 	mov	x21, x0
ffff80001139e62c:	aa1e03e0 	mov	x0, x30
ffff80001139e630:	aa0203f4 	mov	x20, x2
	struct netdev_notifier_info info = {
ffff80001139e634:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e634: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	return nb->notifier_call(nb, val, &info);
ffff80001139e638:	f90047a3 	str	x3, [x29,#136]
	struct netdev_notifier_info info = {
ffff80001139e63c:	f9004ba4 	str	x4, [x29,#144]
	return nb->notifier_call(nb, val, &info);
ffff80001139e640:	f9004fa5 	str	x5, [x29,#152]
ffff80001139e644:	f90053a6 	str	x6, [x29,#160]
ffff80001139e648:	f90057a7 	str	x7, [x29,#168]
ffff80001139e64c:	f9001fa1 	str	x1, [x29,#56]
	ret &= ~NOTIFY_STOP_MASK;
ffff80001139e650:	94000000 	bl	0 <_mcount>
			ffff80001139e650: R_AARCH64_CALL26	_mcount
	return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
ffff80001139e654:	f9400263 	ldr	x3, [x19]
			ffff80001139e654: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e658:	f9401fa1 	ldr	x1, [x29,#56]
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e65c:	f9003fa3 	str	x3, [x29,#120]
ffff80001139e660:	9102c3a3 	add	x3, x29, #0xb0
ffff80001139e664:	f9002fa3 	str	x3, [x29,#88]
ffff80001139e668:	f90033a3 	str	x3, [x29,#96]
ffff80001139e66c:	910203a3 	add	x3, x29, #0x80
ffff80001139e670:	f90037a3 	str	x3, [x29,#104]
		call_netdevice_unregister_notifiers(nb, dev);
ffff80001139e674:	128004e3 	mov	w3, #0xffffffd8            	// #-40
ffff80001139e678:	aa1503e0 	mov	x0, x21
ffff80001139e67c:	b90073a3 	str	w3, [x29,#112]
	for_each_netdev_continue_reverse(net, dev)
ffff80001139e680:	910123a2 	add	x2, x29, #0x48
ffff80001139e684:	910163a3 	add	x3, x29, #0x58
ffff80001139e688:	b90077bf 	str	wzr, [x29,#116]
ffff80001139e68c:	f90027b4 	str	x20, [x29,#72]
ffff80001139e690:	f9002ba3 	str	x3, [x29,#80]
}
ffff80001139e694:	97ffff99 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139e698:	f9403fa1 	ldr	x1, [x29,#120]
ffff80001139e69c:	f9400260 	ldr	x0, [x19]
			ffff80001139e69c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e6a0:	eb00003f 	cmp	x1, x0
ffff80001139e6a4:	54000040 	b.eq	ffff80001139e6ac <netdev_printk+0x94>
ffff80001139e6a8:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e6a8: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e6ac:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e6b0:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e6b4:	a8cb7bfd 	ldp	x29, x30, [sp],#176
	if (!(dev->flags & IFF_UP))
ffff80001139e6b8:	d65f03c0 	ret

ffff80001139e6bc <netdev_emerg>:
ffff80001139e6bc:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
	struct netdev_notifier_info info = {
ffff80001139e6c0:	910003fd 	mov	x29, sp
	return nb->notifier_call(nb, val, &info);
ffff80001139e6c4:	a90153f3 	stp	x19, x20, [sp,#16]
	struct netdev_notifier_info info = {
ffff80001139e6c8:	f90013f5 	str	x21, [sp,#32]
	return nb->notifier_call(nb, val, &info);
ffff80001139e6cc:	aa0003f5 	mov	x21, x0
ffff80001139e6d0:	aa1e03e0 	mov	x0, x30
ffff80001139e6d4:	aa0103f4 	mov	x20, x1
ffff80001139e6d8:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e6d8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	for_each_netdev(net, dev) {
ffff80001139e6dc:	f9003ba2 	str	x2, [x29,#112]
ffff80001139e6e0:	f9003fa3 	str	x3, [x29,#120]
ffff80001139e6e4:	f90043a4 	str	x4, [x29,#128]
ffff80001139e6e8:	f90047a5 	str	x5, [x29,#136]
	return 0;
ffff80001139e6ec:	f9004ba6 	str	x6, [x29,#144]
ffff80001139e6f0:	f9004fa7 	str	x7, [x29,#152]
}
ffff80001139e6f4:	94000000 	bl	0 <_mcount>
			ffff80001139e6f4: R_AARCH64_CALL26	_mcount
{
ffff80001139e6f8:	f9400263 	ldr	x3, [x19]
			ffff80001139e6f8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e6fc:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e6fc: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1d0
ffff80001139e700:	f90037a3 	str	x3, [x29,#104]
ffff80001139e704:	910283a3 	add	x3, x29, #0xa0
ffff80001139e708:	f90027a3 	str	x3, [x29,#72]
ffff80001139e70c:	f9002ba3 	str	x3, [x29,#80]
ffff80001139e710:	9101c3a3 	add	x3, x29, #0x70
ffff80001139e714:	f9002fa3 	str	x3, [x29,#88]
ffff80001139e718:	128005e3 	mov	w3, #0xffffffd0            	// #-48
ffff80001139e71c:	91000000 	add	x0, x0, #0x0
			ffff80001139e71c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1d0
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff80001139e720:	aa1503e1 	mov	x1, x21
ffff80001139e724:	b90063a3 	str	w3, [x29,#96]
ffff80001139e728:	9100e3a2 	add	x2, x29, #0x38
}
ffff80001139e72c:	910123a3 	add	x3, x29, #0x48
ffff80001139e730:	b90067bf 	str	wzr, [x29,#100]
ffff80001139e734:	f9001fb4 	str	x20, [x29,#56]
ffff80001139e738:	f90023a3 	str	x3, [x29,#64]
	return !list_empty(&ptype_all) || !list_empty(&dev->ptype_all);
ffff80001139e73c:	97ffff6f 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139e740:	f94037a1 	ldr	x1, [x29,#104]
}
ffff80001139e744:	f9400260 	ldr	x0, [x19]
			ffff80001139e744: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e748:	eb00003f 	cmp	x1, x0
ffff80001139e74c:	54000040 	b.eq	ffff80001139e754 <netdev_emerg+0x98>
{
ffff80001139e750:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e750: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e754:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e758:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e75c:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139e760:	d65f03c0 	ret

ffff80001139e764 <netdev_alert>:
ffff80001139e764:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff80001139e768:	910003fd 	mov	x29, sp
ffff80001139e76c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e770:	f90013f5 	str	x21, [sp,#32]
ffff80001139e774:	aa0003f5 	mov	x21, x0
ffff80001139e778:	aa1e03e0 	mov	x0, x30
	if (sb_dev->num_tc >= 0 || tc >= dev->num_tc)
ffff80001139e77c:	aa0103f4 	mov	x20, x1
ffff80001139e780:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e780: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e784:	f9003ba2 	str	x2, [x29,#112]
ffff80001139e788:	f9003fa3 	str	x3, [x29,#120]
ffff80001139e78c:	f90043a4 	str	x4, [x29,#128]
ffff80001139e790:	f90047a5 	str	x5, [x29,#136]
	if ((offset + count) > dev->real_num_tx_queues)
ffff80001139e794:	f9004ba6 	str	x6, [x29,#144]
ffff80001139e798:	f9004fa7 	str	x7, [x29,#152]
ffff80001139e79c:	94000000 	bl	0 <_mcount>
			ffff80001139e79c: R_AARCH64_CALL26	_mcount
ffff80001139e7a0:	f9400263 	ldr	x3, [x19]
			ffff80001139e7a0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e7a4:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e7a4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1d8
	while (count--)
ffff80001139e7a8:	f90037a3 	str	x3, [x29,#104]
	sb_dev->tc_to_txq[tc].count = count;
ffff80001139e7ac:	910283a3 	add	x3, x29, #0xa0
	sb_dev->tc_to_txq[tc].offset = offset;
ffff80001139e7b0:	f90027a3 	str	x3, [x29,#72]
	while (count--)
ffff80001139e7b4:	f9002ba3 	str	x3, [x29,#80]
	return &dev->_tx[index];
ffff80001139e7b8:	9101c3a3 	add	x3, x29, #0x70
ffff80001139e7bc:	f9002fa3 	str	x3, [x29,#88]
ffff80001139e7c0:	128005e3 	mov	w3, #0xffffffd0            	// #-48
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7c4:	91000000 	add	x0, x0, #0x0
			ffff80001139e7c4: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1d8
ffff80001139e7c8:	aa1503e1 	mov	x1, x21
	while (count--)
ffff80001139e7cc:	b90063a3 	str	w3, [x29,#96]
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7d0:	9100e3a2 	add	x2, x29, #0x38
	while (count--)
ffff80001139e7d4:	910123a3 	add	x3, x29, #0x48
		netdev_get_tx_queue(dev, count + offset)->sb_dev = sb_dev;
ffff80001139e7d8:	b90067bf 	str	wzr, [x29,#100]
	while (count--)
ffff80001139e7dc:	f9001fb4 	str	x20, [x29,#56]
ffff80001139e7e0:	f90023a3 	str	x3, [x29,#64]
}
ffff80001139e7e4:	97ffff45 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139e7e8:	f94037a1 	ldr	x1, [x29,#104]
	return 0;
ffff80001139e7ec:	f9400260 	ldr	x0, [x19]
			ffff80001139e7ec: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
}
ffff80001139e7f0:	eb00003f 	cmp	x1, x0
ffff80001139e7f4:	54000040 	b.eq	ffff80001139e7fc <netdev_alert+0x98>
ffff80001139e7f8:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e7f8: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e7fc:	a94153f3 	ldp	x19, x20, [sp,#16]
		return -EINVAL;
ffff80001139e800:	f94013f5 	ldr	x21, [sp,#32]
}
ffff80001139e804:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139e808:	d65f03c0 	ret

ffff80001139e80c <netdev_crit>:
{
ffff80001139e80c:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff80001139e810:	910003fd 	mov	x29, sp
ffff80001139e814:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e818:	f90013f5 	str	x21, [sp,#32]
ffff80001139e81c:	aa0003f5 	mov	x21, x0
ffff80001139e820:	aa1e03e0 	mov	x0, x30
ffff80001139e824:	aa0103f4 	mov	x20, x1
	if (netif_is_multiqueue(dev))
ffff80001139e828:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e828: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e82c:	f9003ba2 	str	x2, [x29,#112]
ffff80001139e830:	f9003fa3 	str	x3, [x29,#120]
	if (channel > S16_MAX)
ffff80001139e834:	f90043a4 	str	x4, [x29,#128]
	dev->num_tc = -channel;
ffff80001139e838:	f90047a5 	str	x5, [x29,#136]
ffff80001139e83c:	f9004ba6 	str	x6, [x29,#144]
	return 0;
ffff80001139e840:	f9004fa7 	str	x7, [x29,#152]
}
ffff80001139e844:	94000000 	bl	0 <_mcount>
			ffff80001139e844: R_AARCH64_CALL26	_mcount
ffff80001139e848:	f9400263 	ldr	x3, [x19]
			ffff80001139e848: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e84c:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e84c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1e0
		return -ENODEV;
ffff80001139e850:	f90037a3 	str	x3, [x29,#104]
}
ffff80001139e854:	910283a3 	add	x3, x29, #0xa0
ffff80001139e858:	f90027a3 	str	x3, [x29,#72]
ffff80001139e85c:	f9002ba3 	str	x3, [x29,#80]
		return -EINVAL;
ffff80001139e860:	9101c3a3 	add	x3, x29, #0x70
ffff80001139e864:	f9002fa3 	str	x3, [x29,#88]
{
ffff80001139e868:	128005e3 	mov	w3, #0xffffffd0            	// #-48
ffff80001139e86c:	91000000 	add	x0, x0, #0x0
			ffff80001139e86c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1e0
ffff80001139e870:	aa1503e1 	mov	x1, x21
ffff80001139e874:	b90063a3 	str	w3, [x29,#96]
ffff80001139e878:	9100e3a2 	add	x2, x29, #0x38
		1 : min_t(int, DEFAULT_MAX_NUM_RSS_QUEUES, num_online_cpus());
ffff80001139e87c:	910123a3 	add	x3, x29, #0x48
ffff80001139e880:	b90067bf 	str	wzr, [x29,#100]
ffff80001139e884:	f9001fb4 	str	x20, [x29,#56]
ffff80001139e888:	f90023a3 	str	x3, [x29,#64]
ffff80001139e88c:	97ffff1b 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139e890:	f94037a1 	ldr	x1, [x29,#104]
ffff80001139e894:	f9400260 	ldr	x0, [x19]
			ffff80001139e894: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e898:	eb00003f 	cmp	x1, x0
ffff80001139e89c:	54000040 	b.eq	ffff80001139e8a4 <netdev_crit+0x98>
}
ffff80001139e8a0:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e8a0: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e8a4:	a94153f3 	ldp	x19, x20, [sp,#16]
{
ffff80001139e8a8:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e8ac:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139e8b0:	d65f03c0 	ret

ffff80001139e8b4 <netdev_err>:
ffff80001139e8b4:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff80001139e8b8:	910003fd 	mov	x29, sp
}
ffff80001139e8bc:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e8c0:	f90013f5 	str	x21, [sp,#32]
ffff80001139e8c4:	aa0003f5 	mov	x21, x0
ffff80001139e8c8:	aa1e03e0 	mov	x0, x30
{
ffff80001139e8cc:	aa0103f4 	mov	x20, x1
ffff80001139e8d0:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e8d0: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e8d4:	f9003ba2 	str	x2, [x29,#112]
ffff80001139e8d8:	f9003fa3 	str	x3, [x29,#120]
}
ffff80001139e8dc:	f90043a4 	str	x4, [x29,#128]
ffff80001139e8e0:	f90047a5 	str	x5, [x29,#136]
ffff80001139e8e4:	f9004ba6 	str	x6, [x29,#144]
{
ffff80001139e8e8:	f9004fa7 	str	x7, [x29,#152]
ffff80001139e8ec:	94000000 	bl	0 <_mcount>
			ffff80001139e8ec: R_AARCH64_CALL26	_mcount
ffff80001139e8f0:	f9400263 	ldr	x3, [x19]
			ffff80001139e8f0: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e8f4:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e8f4: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1e8
ffff80001139e8f8:	f90037a3 	str	x3, [x29,#104]
ffff80001139e8fc:	910283a3 	add	x3, x29, #0xa0
ffff80001139e900:	f90027a3 	str	x3, [x29,#72]
ffff80001139e904:	f9002ba3 	str	x3, [x29,#80]
ffff80001139e908:	9101c3a3 	add	x3, x29, #0x70
ffff80001139e90c:	f9002fa3 	str	x3, [x29,#88]
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e910:	128005e3 	mov	w3, #0xffffffd0            	// #-48
ffff80001139e914:	91000000 	add	x0, x0, #0x0
			ffff80001139e914: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1e8
ffff80001139e918:	aa1503e1 	mov	x1, x21
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff80001139e91c:	b90063a3 	str	w3, [x29,#96]
ffff80001139e920:	9100e3a2 	add	x2, x29, #0x38
ffff80001139e924:	910123a3 	add	x3, x29, #0x48
ffff80001139e928:	b90067bf 	str	wzr, [x29,#100]
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e92c:	f9001fb4 	str	x20, [x29,#56]
ffff80001139e930:	f90023a3 	str	x3, [x29,#64]
ffff80001139e934:	97fffef1 	bl	ffff80001139e4f8 <__netdev_printk>
	return NULL;
ffff80001139e938:	f94037a1 	ldr	x1, [x29,#104]
}
ffff80001139e93c:	f9400260 	ldr	x0, [x19]
			ffff80001139e93c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e940:	eb00003f 	cmp	x1, x0
ffff80001139e944:	54000040 	b.eq	ffff80001139e94c <netdev_err+0x98>
		if (ptype->type != type || !ptype->callbacks.gro_receive)
ffff80001139e948:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e948: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139e94c:	a94153f3 	ldp	x19, x20, [sp,#16]
}
ffff80001139e950:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e954:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139e958:	d65f03c0 	ret

ffff80001139e95c <netdev_warn>:
{
ffff80001139e95c:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff80001139e960:	910003fd 	mov	x29, sp
ffff80001139e964:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139e968:	f90013f5 	str	x21, [sp,#32]
ffff80001139e96c:	aa0003f5 	mov	x21, x0
ffff80001139e970:	aa1e03e0 	mov	x0, x30
ffff80001139e974:	aa0103f4 	mov	x20, x1
ffff80001139e978:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139e978: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139e97c:	f9003ba2 	str	x2, [x29,#112]
ffff80001139e980:	f9003fa3 	str	x3, [x29,#120]
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e984:	f90043a4 	str	x4, [x29,#128]
ffff80001139e988:	f90047a5 	str	x5, [x29,#136]
ffff80001139e98c:	f9004ba6 	str	x6, [x29,#144]
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff80001139e990:	f9004fa7 	str	x7, [x29,#152]
ffff80001139e994:	94000000 	bl	0 <_mcount>
			ffff80001139e994: R_AARCH64_CALL26	_mcount
ffff80001139e998:	f9400263 	ldr	x3, [x19]
			ffff80001139e998: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e99c:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139e99c: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x170
	list_for_each_entry_rcu(ptype, offload_head, list) {
ffff80001139e9a0:	f90037a3 	str	x3, [x29,#104]
ffff80001139e9a4:	910283a3 	add	x3, x29, #0xa0
ffff80001139e9a8:	f90027a3 	str	x3, [x29,#72]
	return NULL;
ffff80001139e9ac:	f9002ba3 	str	x3, [x29,#80]
}
ffff80001139e9b0:	9101c3a3 	add	x3, x29, #0x70
ffff80001139e9b4:	f9002fa3 	str	x3, [x29,#88]
ffff80001139e9b8:	128005e3 	mov	w3, #0xffffffd0            	// #-48
		if (ptype->type != type || !ptype->callbacks.gro_complete)
ffff80001139e9bc:	91000000 	add	x0, x0, #0x0
			ffff80001139e9bc: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x170
ffff80001139e9c0:	aa1503e1 	mov	x1, x21
}
ffff80001139e9c4:	b90063a3 	str	w3, [x29,#96]
ffff80001139e9c8:	9100e3a2 	add	x2, x29, #0x38
ffff80001139e9cc:	910123a3 	add	x3, x29, #0x48
{
ffff80001139e9d0:	b90067bf 	str	wzr, [x29,#100]
ffff80001139e9d4:	f9001fb4 	str	x20, [x29,#56]
ffff80001139e9d8:	f90023a3 	str	x3, [x29,#64]
ffff80001139e9dc:	97fffec7 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139e9e0:	f94037a1 	ldr	x1, [x29,#104]
ffff80001139e9e4:	f9400260 	ldr	x0, [x19]
			ffff80001139e9e4: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139e9e8:	eb00003f 	cmp	x1, x0
	return upper_dev == dev;
ffff80001139e9ec:	54000040 	b.eq	ffff80001139e9f4 <netdev_warn+0x98>
ffff80001139e9f0:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139e9f0: R_AARCH64_CALL26	__stack_chk_fail
}
ffff80001139e9f4:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139e9f8:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139e9fc:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139ea00:	d65f03c0 	ret

ffff80001139ea04 <netdev_notice>:
{
ffff80001139ea04:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
ffff80001139ea08:	910003fd 	mov	x29, sp
ffff80001139ea0c:	a90153f3 	stp	x19, x20, [sp,#16]
ffff80001139ea10:	f90013f5 	str	x21, [sp,#32]
ffff80001139ea14:	aa0003f5 	mov	x21, x0
ffff80001139ea18:	aa1e03e0 	mov	x0, x30
}
ffff80001139ea1c:	aa0103f4 	mov	x20, x1
ffff80001139ea20:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139ea20: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
ffff80001139ea24:	f9003ba2 	str	x2, [x29,#112]
ffff80001139ea28:	f9003fa3 	str	x3, [x29,#120]
{
ffff80001139ea2c:	f90043a4 	str	x4, [x29,#128]
ffff80001139ea30:	f90047a5 	str	x5, [x29,#136]
ffff80001139ea34:	f9004ba6 	str	x6, [x29,#144]
ffff80001139ea38:	f9004fa7 	str	x7, [x29,#152]
ffff80001139ea3c:	94000000 	bl	0 <_mcount>
			ffff80001139ea3c: R_AARCH64_CALL26	_mcount
ffff80001139ea40:	f9400263 	ldr	x3, [x19]
			ffff80001139ea40: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139ea44:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139ea44: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1f0
	upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ea48:	f90037a3 	str	x3, [x29,#104]
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ea4c:	910283a3 	add	x3, x29, #0xa0
	upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
ffff80001139ea50:	f90027a3 	str	x3, [x29,#72]
ffff80001139ea54:	f9002ba3 	str	x3, [x29,#80]
	if (&upper->list == &dev->adj_list.upper)
ffff80001139ea58:	9101c3a3 	add	x3, x29, #0x70
ffff80001139ea5c:	f9002fa3 	str	x3, [x29,#88]
	*iter = &upper->list;
ffff80001139ea60:	128005e3 	mov	w3, #0xffffffd0            	// #-48
	return upper->dev;
ffff80001139ea64:	91000000 	add	x0, x0, #0x0
			ffff80001139ea64: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1f0
}
ffff80001139ea68:	aa1503e1 	mov	x1, x21
ffff80001139ea6c:	b90063a3 	str	w3, [x29,#96]
ffff80001139ea70:	9100e3a2 	add	x2, x29, #0x38
		return NULL;
ffff80001139ea74:	910123a3 	add	x3, x29, #0x48
ffff80001139ea78:	b90067bf 	str	wzr, [x29,#100]
{
ffff80001139ea7c:	f9001fb4 	str	x20, [x29,#56]
ffff80001139ea80:	f90023a3 	str	x3, [x29,#64]
ffff80001139ea84:	97fffe9d 	bl	ffff80001139e4f8 <__netdev_printk>
ffff80001139ea88:	f94037a1 	ldr	x1, [x29,#104]
ffff80001139ea8c:	f9400260 	ldr	x0, [x19]
			ffff80001139ea8c: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139ea90:	eb00003f 	cmp	x1, x0
ffff80001139ea94:	54000040 	b.eq	ffff80001139ea9c <netdev_notice+0x98>
ffff80001139ea98:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139ea98: R_AARCH64_CALL26	__stack_chk_fail
ffff80001139ea9c:	a94153f3 	ldp	x19, x20, [sp,#16]
ffff80001139eaa0:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139eaa4:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139eaa8:	d65f03c0 	ret

ffff80001139eaac <netdev_info>:
ffff80001139eaac:	a9b67bfd 	stp	x29, x30, [sp,#-160]!
	iter = &dev->adj_list.upper;
ffff80001139eab0:	910003fd 	mov	x29, sp
{
ffff80001139eab4:	a90153f3 	stp	x19, x20, [sp,#16]
	iter = &dev->adj_list.upper;
ffff80001139eab8:	f90013f5 	str	x21, [sp,#32]
	now = dev;
ffff80001139eabc:	aa0003f5 	mov	x21, x0
	int ret, cur = 0;
ffff80001139eac0:	aa1e03e0 	mov	x0, x30
			niter = iter_stack[cur];
ffff80001139eac4:	aa0103f4 	mov	x20, x1
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139eac8:	90000013 	adrp	x19, 0 <__stack_chk_guard>
			ffff80001139eac8: R_AARCH64_ADR_PREL_PG_HI21	__stack_chk_guard
	if (&upper->list == &dev->adj_list.upper)
ffff80001139eacc:	f9003ba2 	str	x2, [x29,#112]
ffff80001139ead0:	f9003fa3 	str	x3, [x29,#120]
ffff80001139ead4:	f90043a4 	str	x4, [x29,#128]
	return upper->dev;
ffff80001139ead8:	f90047a5 	str	x5, [x29,#136]
	*ignore = upper->ignore;
ffff80001139eadc:	f9004ba6 	str	x6, [x29,#144]
			if (!udev)
ffff80001139eae0:	f9004fa7 	str	x7, [x29,#152]
			if (ignore)
ffff80001139eae4:	94000000 	bl	0 <_mcount>
			ffff80001139eae4: R_AARCH64_CALL26	_mcount
			dev_stack[cur] = now;
ffff80001139eae8:	f9400263 	ldr	x3, [x19]
			ffff80001139eae8: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139eaec:	90000000 	adrp	x0, ffff80001139e37c <mini_qdisc_bstats_cpu_update.isra.70>
			ffff80001139eaec: R_AARCH64_ADR_PREL_PG_HI21	.rodata.str1.8+0x1f8
			iter_stack[cur++] = iter;
ffff80001139eaf0:	f90037a3 	str	x3, [x29,#104]
			niter = &udev->adj_list.upper;
ffff80001139eaf4:	910283a3 	add	x3, x29, #0xa0
			iter_stack[cur++] = iter;
ffff80001139eaf8:	f90027a3 	str	x3, [x29,#72]
	return upper->dev;
ffff80001139eafc:	f9002ba3 	str	x3, [x29,#80]
		if (now != dev) {
ffff80001139eb00:	9101c3a3 	add	x3, x29, #0x70
ffff80001139eb04:	f9002fa3 	str	x3, [x29,#88]
			ret = fn(now, data);
ffff80001139eb08:	128005e3 	mov	w3, #0xffffffd0            	// #-48
ffff80001139eb0c:	91000000 	add	x0, x0, #0x0
			ffff80001139eb0c: R_AARCH64_ADD_ABS_LO12_NC	.rodata.str1.8+0x1f8
ffff80001139eb10:	aa1503e1 	mov	x1, x21
			if (ret)
ffff80001139eb14:	b90063a3 	str	w3, [x29,#96]
	upper = list_entry((*iter)->next, struct netdev_adjacent, list);
ffff80001139eb18:	9100e3a2 	add	x2, x29, #0x38
ffff80001139eb1c:	910123a3 	add	x3, x29, #0x48
	if (&upper->list == &dev->adj_list.upper)
ffff80001139eb20:	b90067bf 	str	wzr, [x29,#100]
ffff80001139eb24:	f9001fb4 	str	x20, [x29,#56]
ffff80001139eb28:	f90023a3 	str	x3, [x29,#64]
			if (!cur)
ffff80001139eb2c:	97fffe73 	bl	ffff80001139e4f8 <__netdev_printk>
			next = dev_stack[--cur];
ffff80001139eb30:	f94037a1 	ldr	x1, [x29,#104]
ffff80001139eb34:	f9400260 	ldr	x0, [x19]
			ffff80001139eb34: R_AARCH64_LDST64_ABS_LO12_NC	__stack_chk_guard
ffff80001139eb38:	eb00003f 	cmp	x1, x0
			niter = iter_stack[cur];
ffff80001139eb3c:	54000040 	b.eq	ffff80001139eb44 <netdev_info+0x98>
ffff80001139eb40:	94000000 	bl	0 <__stack_chk_fail>
			ffff80001139eb40: R_AARCH64_CALL26	__stack_chk_fail
				return 0;
ffff80001139eb44:	a94153f3 	ldp	x19, x20, [sp,#16]
}
ffff80001139eb48:	f94013f5 	ldr	x21, [sp,#32]
ffff80001139eb4c:	a8ca7bfd 	ldp	x29, x30, [sp],#160
ffff80001139eb50:	d65f03c0 	ret

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-04-30 17:12 ` Florian Fainelli
@ 2020-05-01  6:48   ` Allen
  2020-05-01 17:35     ` Florian Fainelli
  0 siblings, 1 reply; 13+ messages in thread
From: Allen @ 2020-05-01  6:48 UTC (permalink / raw)
  To: Florian Fainelli, netdev, Andrew Lunn, Vivien Didelot


> 
> you have missed an important detail here which is the master device that
> was used for DSA. The current code defaults to whatever "eth0" is, what
> does this map to for your configuration?
> 

  It maps to "eth0". Please let me know if you need further details.

- Allen

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-04-30  6:24 Net: [DSA]: dsa-loop kernel panic Allen
  2020-04-30 14:06 ` Andrew Lunn
  2020-04-30 17:12 ` Florian Fainelli
@ 2020-05-01 13:10 ` Andrew Lunn
  2020-05-04 12:40   ` Allen
  2 siblings, 1 reply; 13+ messages in thread
From: Andrew Lunn @ 2020-05-01 13:10 UTC (permalink / raw)
  To: Allen; +Cc: netdev, Vivien Didelot, Florian Fainelli

On Thu, Apr 30, 2020 at 11:54:15AM +0530, Allen wrote:
> Hi,
> 
> $ rmmod dsa-loop
> [   50.688935] Unable to handle kernel read from unreadable memory at
> virtual address 0000000000000040

> [   50.718185] pstate: 60400005 (nZCv daif +PAN -UAO)
> [   50.719274] pc : __dev_set_rx_mode+0x48/0xa0

ffff8000113adb60 <__dev_set_rx_mode>:

Function starts at ffff8000113adb60, the instruction with problems is
ffff8000113adb60+48.

{
ffff8000113adb60:       a9bd7bfd        stp     x29, x30, [sp,#-48]!
ffff8000113adb64:       910003fd        mov     x29, sp
ffff8000113adb68:       a90153f3        stp     x19, x20, [sp,#16]
ffff8000113adb6c:       f90013f5        str     x21, [sp,#32]
ffff8000113adb70:       aa0003f3        mov     x19, x0
ffff8000113adb74:       aa1e03e0        mov     x0, x30
ffff8000113adb78:       94000000        bl      0 <_mcount>
                        ffff8000113adb78: R_AARCH64_CALL26      _mcount
        if (!(dev->flags&IFF_UP))
ffff8000113adb7c:       b9422a60        ldr     w0, [x19,#552]
        const struct net_device_ops *ops = dev->netdev_ops;
ffff8000113adb80:       f940fa74        ldr     x20, [x19,#496]
        if (!(dev->flags&IFF_UP))
ffff8000113adb84:       360001a0        tbz     w0, #0, ffff8000113adbb8
<__dev_set_rx_mode+0x58>
ffff8000113adb88:       f9402260        ldr     x0, [x19,#64]
        if (!netif_device_present(dev))
ffff8000113adb8c:       36080160        tbz     w0, #1, ffff8000113adbb8
<__dev_set_rx_mode+0x58>
        if (!(dev->priv_flags & IFF_UNICAST_FLT)) {
ffff8000113adb90:       b9422e60        ldr     w0, [x19,#556]
ffff8000113adb94:       376000a0        tbnz    w0, #12, ffff8000113adba8
<__dev_set_rx_mode+0x48>
                if (!netdev_uc_empty(dev) && !dev->uc_promisc) {
ffff8000113adb98:       b9429275        ldr     w21, [x19,#656]
ffff8000113adb9c:       35000175        cbnz    w21, ffff8000113adbc8
<__dev_set_rx_mode+0x68>
                } else if (netdev_uc_empty(dev) && dev->uc_promisc) {
ffff8000113adba0:       3949f660        ldrb    w0, [x19,#637]
ffff8000113adba4:       35000220        cbnz    w0, ffff8000113adbe8 <__dev_set_rx_mode+0x88>
        if (ops->ndo_set_rx_mode)
ffff8000113adba8:       f9402281        ldr     x1, [x20,#64]

Which suggests ops is NULL. The #64 also matches with

> [   50.688935] Unable to handle kernel read from unreadable memory at
> virtual address 0000000000000040

How did dev->netdev_ops become NULL?

Odd

	Andrew

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-01  6:48   ` Allen
@ 2020-05-01 17:35     ` Florian Fainelli
  2020-05-01 17:58       ` Allen
  0 siblings, 1 reply; 13+ messages in thread
From: Florian Fainelli @ 2020-05-01 17:35 UTC (permalink / raw)
  To: Allen, netdev, Andrew Lunn, Vivien Didelot

On 4/30/20 11:48 PM, Allen wrote:
> 
>>
>> you have missed an important detail here which is the master device that
>> was used for DSA. The current code defaults to whatever "eth0" is, what
>> does this map to for your configuration?
>>
> 
>  It maps to "eth0". Please let me know if you need further details.

I suppose I should have been clearer, what network device driver created
eth0?
-- 
Florian

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-01 17:35     ` Florian Fainelli
@ 2020-05-01 17:58       ` Allen
  2020-05-01 18:05         ` Florian Fainelli
  2020-05-03 21:06         ` Florian Fainelli
  0 siblings, 2 replies; 13+ messages in thread
From: Allen @ 2020-05-01 17:58 UTC (permalink / raw)
  To: Florian Fainelli, netdev, Andrew Lunn, Vivien Didelot

>>
>>   It maps to "eth0". Please let me know if you need further details.
> 
> I suppose I should have been clearer, what network device driver created
> eth0?
> 

  This was seen on a VM.
eth0 [52:54:00:c1:cd:65]: virtio_net (up)

Thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-01 17:58       ` Allen
@ 2020-05-01 18:05         ` Florian Fainelli
  2020-05-03 21:06         ` Florian Fainelli
  1 sibling, 0 replies; 13+ messages in thread
From: Florian Fainelli @ 2020-05-01 18:05 UTC (permalink / raw)
  To: Allen, netdev, Andrew Lunn, Vivien Didelot

On 5/1/20 10:58 AM, Allen wrote:
>>>
>>>   It maps to "eth0". Please let me know if you need further details.
>>
>> I suppose I should have been clearer, what network device driver created
>> eth0?
>>
> 
>  This was seen on a VM.
> eth0 [52:54:00:c1:cd:65]: virtio_net (up)

Thanks, I will try to reproduce this with virtio_net, I usually use
e1000 which did not complain until now.
-- 
Florian

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-01 17:58       ` Allen
  2020-05-01 18:05         ` Florian Fainelli
@ 2020-05-03 21:06         ` Florian Fainelli
  2020-05-04  3:40           ` Florian Fainelli
  1 sibling, 1 reply; 13+ messages in thread
From: Florian Fainelli @ 2020-05-03 21:06 UTC (permalink / raw)
  To: Allen, netdev, Andrew Lunn, Vivien Didelot

Le 2020-05-01 à 10:58, Allen a écrit :
>>>
>>>   It maps to "eth0". Please let me know if you need further details.
>>
>> I suppose I should have been clearer, what network device driver created
>> eth0?
>>
> 
>  This was seen on a VM.
> eth0 [52:54:00:c1:cd:65]: virtio_net (up)

I have reproduced it here with virtio_net and am now looking into this,
at first glance it does not look like we are properly holding the device
reference count for the case where DSA was probed via platform device
configuration.
-- 
Florian

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-03 21:06         ` Florian Fainelli
@ 2020-05-04  3:40           ` Florian Fainelli
  2020-05-04  4:55             ` Allen
  0 siblings, 1 reply; 13+ messages in thread
From: Florian Fainelli @ 2020-05-04  3:40 UTC (permalink / raw)
  To: Allen, netdev, Andrew Lunn, Vivien Didelot



On 5/3/2020 2:06 PM, Florian Fainelli wrote:
> Le 2020-05-01 à 10:58, Allen a écrit :
>>>>
>>>>   It maps to "eth0". Please let me know if you need further details.
>>>
>>> I suppose I should have been clearer, what network device driver created
>>> eth0?
>>>
>>
>>  This was seen on a VM.
>> eth0 [52:54:00:c1:cd:65]: virtio_net (up)
> 
> I have reproduced it here with virtio_net and am now looking into this,
> at first glance it does not look like we are properly holding the device
> reference count for the case where DSA was probed via platform device
> configuration.

There is a DSA master reference counting issue, but with dsa-loop, the
DSA master is already properly reference counted thanks to the
dev_get_by_name() call, I will keep digging.
-- 
Florian

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-04  3:40           ` Florian Fainelli
@ 2020-05-04  4:55             ` Allen
  0 siblings, 0 replies; 13+ messages in thread
From: Allen @ 2020-05-04  4:55 UTC (permalink / raw)
  To: Florian Fainelli, netdev, Andrew Lunn, Vivien Didelot


> 
> There is a DSA master reference counting issue, but with dsa-loop, the
> DSA master is already properly reference counted thanks to the
> dev_get_by_name() call, I will keep digging.
> 

Thank you Florain.

I am not dsa expert, am debugging the call chain.

- Allen

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Net: [DSA]: dsa-loop kernel panic
  2020-05-01 13:10 ` Andrew Lunn
@ 2020-05-04 12:40   ` Allen
  0 siblings, 0 replies; 13+ messages in thread
From: Allen @ 2020-05-04 12:40 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: netdev, Vivien Didelot, Florian Fainelli

Andrew,
> 
> Which suggests ops is NULL. The #64 also matches with
> 
>> [   50.688935] Unable to handle kernel read from unreadable memory at
>> virtual address 0000000000000040
> 
> How did dev->netdev_ops become NULL?
> 

Thanks. Yes, my debugging also led to this point but not further.
I am tracing the pointer in the call chain. Hoping to find
something.

- Allen

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-05-04 12:42 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-30  6:24 Net: [DSA]: dsa-loop kernel panic Allen
2020-04-30 14:06 ` Andrew Lunn
2020-05-01  6:47   ` Allen
2020-04-30 17:12 ` Florian Fainelli
2020-05-01  6:48   ` Allen
2020-05-01 17:35     ` Florian Fainelli
2020-05-01 17:58       ` Allen
2020-05-01 18:05         ` Florian Fainelli
2020-05-03 21:06         ` Florian Fainelli
2020-05-04  3:40           ` Florian Fainelli
2020-05-04  4:55             ` Allen
2020-05-01 13:10 ` Andrew Lunn
2020-05-04 12:40   ` Allen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.