void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.59k stars 2.15k forks source link

broadcom-wl-dkms produces dmesg warning at boot #39839

Closed metent closed 2 years ago

metent commented 2 years ago

Is this a new report?

Yes

System Info

Void 5.19.13_1 x86_64-musl GenuineIntel uptodate FF

Package(s) Affected

broadcom-wl-dkms-6.30.223.271_13

Does a report exist for this bug with the project's home (upstream) and/or another distro?

https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1863633.html https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1961801 https://groups.google.com/g/linux.debian.bugs.dist/c/tpvQYOd8Gtc

Expected behaviour

Network driver should not produce dmesg warning dumps.

Actual behaviour

Network driver produces warning dump in dmesg log at boot.

[    7.621730] ------------[ cut here ]------------
[    7.621731] netdevice: wlp3s0: Incorrect netdev->dev_addr
[    7.621742] WARNING: CPU: 2 PID: 696 at net/core/dev_addr_lists.c:519 dev_addr_check.cold+0x43/0x7a
[    7.621750] Modules linked in: algif_skcipher 8021q cmac garp mrp md4 stp algif_hash llc af_alg nls_ascii nls_cp437 vfat fat intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel iTCO_wdt spi_intel_platform intel_pmc_bxt snd_hda_codec_cirrus mei_pxp mei_hdcp spi_intel iTCO_vendor_support snd_hda_codec_generic kvm ledtrig_audio snd_hda_codec_hdmi irqbypass snd_hda_intel applesmc snd_intel_dspcfg rapl snd_intel_sdw_acpi intel_cstate pcspkr snd_hda_codec intel_pch_thermal btusb i2c_i801 mei_me lpc_ich i2c_smbus btrtl btbcm thunderbolt mei spi_pxa2xx_pci dw_dmac_pci snd_hda_core btintel bcm5974 input_leds snd_hwdep btmtk sbs acpi_als apple_mfi_fastcharge snd_pcm industrialio_triggered_buffer kfifo_buf sbshc spi_pxa2xx_platform evdev industrialio mac_hid dw_dmac dw_dmac_core apple_bl ac tiny_power_button wl(PO) cfg80211 snd_seq snd_seq_device snd_timer snd soundcore vhost_vsock vmw_vsock_virtio_transport_common vsock vhost_net vhost vhost_iotlb tap uhid
[    7.621826]  hci_vhci bluetooth ecdh_generic rfkill ecc vfio_iommu_type1 vfio dm_mod uinput userio ppp_generic slhc tun loop nvram btrfs blake2b_generic xor raid6_pq libcrc32c cuse fuse ext4 crc32c_generic mbcache jbd2 hid_apple usbkbd hid_generic usbmouse usbhid uas usb_storage hid i915 intel_gtt drm_buddy i2c_algo_bit drm_display_helper cec rc_core sd_mod crct10dif_pclmul ahci drm_kms_helper crc32_pclmul crc32c_intel libahci syscopyarea xhci_pci sysfillrect sysimgblt ghash_clmulni_intel xhci_pci_renesas fb_sys_fops libata ttm xhci_hcd aesni_intel crypto_simd drm scsi_mod cryptd scsi_common usbcore agpgart usb_common applespi crc16 video button
[    7.621880] Unloaded tainted modules: acpi_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 fjes():1 acpi_cpufreq():1 acpi_cpufreq():1 fjes():1 pcc_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1
[    7.621906] CPU: 2 PID: 696 Comm: dhcpcd Tainted: P           O      5.19.13_1 #1
[    7.621909] Hardware name: Apple Inc. MacBookAir7,2/Mac-937CB26E2E02BB01, BIOS 428.60.3.0.0 10/27/2021
[    7.621910] RIP: 0010:dev_addr_check.cold+0x43/0x7a
[    7.621915] Code: 01 e8 1e 58 fc ff 0f 0b 49 c7 c4 53 6b 22 b0 80 3b 00 75 30 48 c7 c6 5e 6b 22 b0 4c 89 e2 48 c7 c7 90 fb 27 b0 e8 fa 57 fc ff <0f> 0b e9 32 61 de ff 49 c7 c4 53 6b 22 b0 eb d5 4c 8b 24 d5 60 3f
[    7.621917] RSP: 0018:ffffb58b408cfb90 EFLAGS: 00010286
[    7.621919] RAX: 0000000000000000 RBX: ffff8d954605d000 RCX: 0000000000000000
[    7.621921] RDX: 0000000000000001 RSI: 0000000000000002 RDI: 00000000ffffffff
[    7.621923] RBP: ffffffffc14b5480 R08: ffffffffb086b580 R09: 00000000b115dba8
[    7.621925] R10: ffffffffffffffff R11: 61c8864680b583eb R12: ffffffffb01f5699
[    7.621926] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
[    7.621928] FS:  00007f3404aead88(0000) GS:ffff8d96a6d00000(0000) knlGS:0000000000000000
[    7.621931] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    7.621933] CR2: 000055b8df0829d8 CR3: 00000001027a8004 CR4: 00000000003706e0
[    7.621934] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    7.621936] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[    7.621937] Call Trace:
[    7.621940]  <TASK>
[    7.621942]  __dev_open+0x3f/0x1b0
[    7.621948]  ? terminate_walk+0xe5/0xf0
[    7.621952]  __dev_change_flags+0x1da/0x250
[    7.621955]  dev_change_flags+0x21/0x60
[    7.621957]  devinet_ioctl+0x656/0x820
[    7.621960]  ? _copy_from_user+0x3a/0x60
[    7.621962]  inet_ioctl+0x177/0x1b0
[    7.621965]  ? dev_get_by_name_rcu+0xa/0x20
[    7.621967]  ? netdev_name_node_lookup_rcu+0x68/0x80
[    7.621969]  ? __check_object_size+0x4a/0x250
[    7.621972]  ? _copy_to_user+0x21/0x30
[    7.621973]  sock_do_ioctl+0x3c/0xe0
[    7.621977]  sock_ioctl+0xe6/0x2f0
[    7.621979]  ? __sys_connect+0x9f/0xd0
[    7.621982]  __x64_sys_ioctl+0x8b/0xc0
[    7.621986]  do_syscall_64+0x5c/0x90
[    7.621988]  ? exit_to_user_mode_prepare+0x40/0x140
[    7.621992]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.621995]  ? __x64_sys_connect+0x16/0x20
[    7.621997]  ? do_syscall_64+0x69/0x90
[    7.621999]  ? fpregs_assert_state_consistent+0x22/0x50
[    7.622002]  ? exit_to_user_mode_prepare+0x40/0x140
[    7.622005]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.622008]  ? __do_sys_getpid+0x1a/0x30
[    7.622011]  ? do_syscall_64+0x69/0x90
[    7.622013]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.622015]  ? do_syscall_64+0x69/0x90
[    7.622017]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[    7.622020] RIP: 0033:0x7f3404a7a8f2
[    7.622022] Code: 63 f6 48 8d 44 24 60 48 89 54 24 30 48 89 44 24 10 48 8d 44 24 20 48 89 44 24 18 b8 10 00 00 00 c7 44 24 08 10 00 00 00 0f 05 <48> 63 f8 e8 a6 2a fe ff 48 83 c4 58 c3 90 0f be 05 7b df 06 00 c3
[    7.622023] RSP: 002b:00007ffcbc9a9cc0 EFLAGS: 00000206 ORIG_RAX: 0000000000000010
[    7.622025] RAX: ffffffffffffffda RBX: 0000000000001043 RCX: 00007f3404a7a8f2
[    7.622026] RDX: 00007ffcbc9a9d20 RSI: 0000000000008914 RDI: 000000000000000b
[    7.622027] RBP: 0000000000000000 R08: 00007ffcbc9a9d20 R09: 8080808080808080
[    7.622028] R10: fefefefefefefeff R11: 0000000000000206 R12: 0000562bd6d2dea0
[    7.622029] R13: 00007ffcbc9a9d20 R14: 00007ffcbc9aa078 R15: 00007ffcbc9a9e30
[    7.622031]  </TASK>
[    7.622032] ---[ end trace 0000000000000000 ]---
[    7.638698] elogind-daemon[759]: New seat seat0.
[    7.642120] elogind-daemon[759]: Watching system buttons on /dev/input/event3 (Power Button)
[    7.643084] elogind-daemon[759]: Watching system buttons on /dev/input/event1 (Power Button)
[    7.644820] elogind-daemon[759]: Watching system buttons on /dev/input/event0 (Lid Switch)
[    7.645926] elogind-daemon[759]: Watching system buttons on /dev/input/event2 (Sleep Button)
[    7.649022] elogind-daemon[759]: Watching system buttons on /dev/input/event7 (Apple Inc. Apple Internal Keyboard / Trackpad)
[    7.651528] elogind-daemon[759]: New session 1 of user _greeter.
[    7.681350] wl 0000:03:00.0 wlp3s0: Current addr:  98 46 0a a0 d0 7c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    7.681354] wl 0000:03:00.0 wlp3s0: Expected addr: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    7.681356] ------------[ cut here ]------------
[    7.681357] netdevice: wlp3s0: Incorrect netdev->dev_addr
[    7.681365] WARNING: CPU: 2 PID: 689 at net/core/dev_addr_lists.c:519 dev_addr_check.cold+0x43/0x7a
[    7.681371] Modules linked in: ccm algif_aead des_generic libdes algif_skcipher 8021q cmac garp mrp md4 stp algif_hash llc af_alg nls_ascii nls_cp437 vfat fat intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel iTCO_wdt spi_intel_platform intel_pmc_bxt snd_hda_codec_cirrus mei_pxp mei_hdcp spi_intel iTCO_vendor_support snd_hda_codec_generic kvm ledtrig_audio snd_hda_codec_hdmi irqbypass snd_hda_intel applesmc snd_intel_dspcfg rapl snd_intel_sdw_acpi intel_cstate pcspkr snd_hda_codec intel_pch_thermal btusb i2c_i801 mei_me lpc_ich i2c_smbus btrtl btbcm thunderbolt mei spi_pxa2xx_pci dw_dmac_pci snd_hda_core btintel bcm5974 input_leds snd_hwdep btmtk sbs acpi_als apple_mfi_fastcharge snd_pcm industrialio_triggered_buffer kfifo_buf sbshc spi_pxa2xx_platform evdev industrialio mac_hid dw_dmac dw_dmac_core apple_bl ac tiny_power_button wl(PO) cfg80211 snd_seq snd_seq_device snd_timer snd soundcore vhost_vsock vmw_vsock_virtio_transport_common vsock
[    7.681415]  vhost_net vhost vhost_iotlb tap uhid hci_vhci bluetooth ecdh_generic rfkill ecc vfio_iommu_type1 vfio dm_mod uinput userio ppp_generic slhc tun loop nvram btrfs blake2b_generic xor raid6_pq libcrc32c cuse fuse ext4 crc32c_generic mbcache jbd2 hid_apple usbkbd hid_generic usbmouse usbhid uas usb_storage hid i915 intel_gtt drm_buddy i2c_algo_bit drm_display_helper cec rc_core sd_mod crct10dif_pclmul ahci drm_kms_helper crc32_pclmul crc32c_intel libahci syscopyarea xhci_pci sysfillrect sysimgblt ghash_clmulni_intel xhci_pci_renesas fb_sys_fops libata ttm xhci_hcd aesni_intel crypto_simd drm scsi_mod cryptd scsi_common usbcore agpgart usb_common applespi crc16 video button
[    7.684701] Unloaded tainted modules: acpi_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 acpi_cpufreq():1 pcc_cpufreq():1 fjes():1 acpi_cpufreq():1 acpi_cpufreq():1 fjes():1 pcc_cpufreq():1 acpi_cpufreq():1 acpi_cpufreq():1
[    7.684716] CPU: 2 PID: 689 Comm: iwd Tainted: P        W  O      5.19.13_1 #1
[    7.684718] Hardware name: Apple Inc. MacBookAir7,2/Mac-937CB26E2E02BB01, BIOS 428.60.3.0.0 10/27/2021
[    7.684719] RIP: 0010:dev_addr_check.cold+0x43/0x7a
[    7.684724] Code: 01 e8 1e 58 fc ff 0f 0b 49 c7 c4 53 6b 22 b0 80 3b 00 75 30 48 c7 c6 5e 6b 22 b0 4c 89 e2 48 c7 c7 90 fb 27 b0 e8 fa 57 fc ff <0f> 0b e9 32 61 de ff 49 c7 c4 53 6b 22 b0 eb d5 4c 8b 24 d5 60 3f
[    7.684725] RSP: 0018:ffffb58b408576f8 EFLAGS: 00010282
[    7.684727] RAX: 0000000000000000 RBX: ffff8d954605d000 RCX: 0000000000000000
[    7.684728] RDX: 0000000000000001 RSI: 0000000000000002 RDI: 00000000ffffffff
[    7.684729] RBP: ffffffffc14b5480 R08: ffffffffb086b580 R09: 00000000b115f548
[    7.684730] R10: ffffffffffffffff R11: ffffb58b40857900 R12: ffffffffb01f5699
[    7.684731] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
[    7.684732] FS:  00007f613f33ad88(0000) GS:ffff8d96a6d00000(0000) knlGS:0000000000000000
[    7.684733] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    7.684734] CR2: 00005581a5cd2ff0 CR3: 0000000109bee003 CR4: 00000000003706e0
[    7.684735] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    7.684736] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[    7.684737] Call Trace:
[    7.684739]  <TASK>
[    7.684741]  __dev_open+0x3f/0x1b0
[    7.684744]  ? notifier_call_chain+0x46/0xb0
[    7.684748]  __dev_change_flags+0x1da/0x250
[    7.684750]  ? __dev_notify_flags+0x8b/0xf0
[    7.684753]  dev_change_flags+0x21/0x60
[    7.684755]  do_setlink+0x292/0x10b0
[    7.684759]  ? __wake_up_common+0x80/0x190
[    7.684761]  ? __nla_validate_parse+0x5f/0xc10
[    7.684764]  ? __nla_validate_parse+0x5f/0xc10
[    7.684766]  ? __wake_up_common_lock+0x8a/0xc0
[    7.684768]  rtnl_setlink+0xd4/0x160
[    7.684773]  ? kfree+0xc9/0x2f0
[    7.684776]  ? __wake_up_common+0x80/0x190
[    7.684778]  ? cap_inode_killpriv+0x30/0x30
[    7.684780]  ? security_capable+0x36/0x60
[    7.684782]  rtnetlink_rcv_msg+0x152/0x3d0
[    7.684785]  ? sock_def_readable+0x3c/0x80
[    7.684787]  ? rtnl_calcit.isra.0+0x140/0x140
[    7.684789]  netlink_rcv_skb+0x50/0x100
[    7.684792]  netlink_unicast+0x242/0x350
[    7.684795]  netlink_sendmsg+0x24c/0x4b0
[    7.684799]  sock_sendmsg+0x62/0x70
[    7.684801]  __sys_sendto+0xee/0x160
[    7.684804]  ? sock_poll+0x4f/0xe0
[    7.684807]  ? preempt_count_add+0x70/0xa0
[    7.684809]  ? _raw_write_lock_irq+0x19/0x40
[    7.684811]  ? _raw_write_unlock_irq+0x18/0x40
[    7.684812]  ? do_epoll_ctl+0x1b6/0xc90
[    7.684815]  ? do_compat_epoll_pwait.part.0+0xc/0x70
[    7.684818]  __x64_sys_sendto+0x25/0x30
[    7.684820]  do_syscall_64+0x5c/0x90
[    7.684823]  ? exit_to_user_mode_prepare+0x40/0x140
[    7.684826]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.684829]  ? do_syscall_64+0x69/0x90
[    7.684830]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.684833]  ? do_syscall_64+0x69/0x90
[    7.684835]  ? syscall_exit_to_user_mode+0x22/0x50
[    7.684837]  ? do_syscall_64+0x69/0x90
[    7.684839]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[    7.684841] RIP: 0033:0x7f613f300eae
[    7.684843] Code: c3 8b 07 85 c0 75 24 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> e9 dc 1d ff ff 48 31 ed 48 89 e7 48 8d 35 ff 6e 03 00 48 83 e4
[    7.684845] RSP: 002b:00007ffc5350d388 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
[    7.684847] RAX: ffffffffffffffda RBX: 00007f613f33ad88 RCX: 00007f613f300eae
[    7.684847] RDX: 0000000000000020 RSI: 00005581a5cd0528 RDI: 0000000000000005
[    7.684848] RBP: 00005581a5cd0500 R08: 00007ffc5350d3fc R09: 000000000000000c
[    7.684849] R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000002c
[    7.684850] R13: 0000000000000005 R14: 00005581a5cd0528 R15: 0000000000000000
[    7.684852]  </TASK>
[    7.684852] ---[ end trace 0000000000000000 ]---

Steps to reproduce

  1. Install iwd and broadcom-wl-dkms on MacBookAir7,2 .
  2. Enable iwd service.
  3. Network driver produces warning dump in dmesg log at boot.
sgn commented 2 years ago

Please test #39950 39950

metent commented 2 years ago

Doesn't seem to fix. It still dumps the (exactly) same warning. I previously installed the package from the repository mistakenly. The package in the master branch compiles fine but the dkms module fails to build. Log:

DKMS make.log for wl-6.30.223.271 for kernel 5.19.15_1 (x86_64)
Sun Oct 16 13:55:08 IST 2022
make: Entering directory '/usr/src/kernel-headers-5.19.15_1'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /var/lib/dkms/wl/6.30.223.271/build/src/shared/linux_osl.o
  CC [M]  /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.o
  CC [M]  /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_iw.o
  CC [M]  /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o
In file included from /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:43:
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c: In function 'wl_set_auth_type':
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.h:59:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   59 |  if (wl_dbg_level & WL_DBG_DBG) {   \
      |     ^
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:797:3: note: in expansion of macro 'WL_DBG'
  797 |   WL_DBG(("network eap\n"));
      |   ^~~~~~
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.c:798:2: note: here
  798 |  default:
      |  ^~~~~~~
In file included from /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:81:
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_iw.h:73: warning: "isprint" redefined
   73 | #define isprint(c) bcm_isprint(c)
      | 
In file included from ./include/linux/string_helpers.h:6,
                 from ./include/linux/seq_file.h:7,
                 from ./include/linux/seq_file_net.h:5,
                 from ./include/net/net_namespace.h:183,
                 from ./include/linux/netdevice.h:38,
                 from /var/lib/dkms/wl/6.30.223.271/build/src/include/linuxver.h:69,
                 from /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:27:
./include/linux/ctype.h:30: note: this is the location of the previous definition
   30 | #define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
      | 
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c: In function 'wl_pci_probe':
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:789:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  789 |  if ((val & 0x0000ff00) != 0)
      |  ^~
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:791:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  791 |   bar1_size = pci_resource_len(pdev, 2);
      |   ^~~~~~~~~
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c: In function 'wl_dump_ver':
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:2104:3: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
 2104 |   __DATE__, __TIME__, EPI_VERSION_STR);
      |   ^~~~~~~~
/var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.c:2104:13: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
 2104 |   __DATE__, __TIME__, EPI_VERSION_STR);
      |             ^~~~~~~~
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:249: /var/lib/dkms/wl/6.30.223.271/build/src/wl/sys/wl_linux.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1846: /var/lib/dkms/wl/6.30.223.271/build] Error 2
make: Leaving directory '/usr/src/kernel-headers-5.19.15_1'
sgn commented 2 years ago

Opps, I though the -Wno-date-time is no longer needed

sgn commented 2 years ago

Please test with newest broadcom-wl-dkms

metent commented 2 years ago

Patch works flawlessly. Thanks.