From 3c707a2ef840b14edd75a00fcfa09c9d95891b8b Mon Sep 17 00:00:00 2001 From: Albert Xu <19632674+1582130940@users.noreply.github.com> Date: Sun, 20 Nov 2022 01:09:37 +0800 Subject: [PATCH] firmware: Sync with upstream (#10459) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * firmware: intel-microcode: update to 20220809 Debian's changelog by Henrique de Moraes Holschuh : * New upstream microcode datafile 20220809 * Fixes INTEL-SA-00657, CVE-2022-21233 Stale data from APIC leaks SGX memory (AEPIC leak) * Fixes unspecified errata (functional issues) on Xeon Scalable * Updated Microcodes: sig 0x00050653, pf_mask 0x97, 2022-03-14, rev 0x100015e, size 34816 sig 0x00050654, pf_mask 0xb7, 2022-03-08, rev 0x2006e05, size 44032 sig 0x000606a6, pf_mask 0x87, 2022-04-07, rev 0xd000375, size 293888 sig 0x000706a1, pf_mask 0x01, 2022-03-23, rev 0x003c, size 75776 sig 0x000706a8, pf_mask 0x01, 2022-03-23, rev 0x0020, size 75776 sig 0x000706e5, pf_mask 0x80, 2022-03-17, rev 0x00b2, size 112640 sig 0x000806c2, pf_mask 0xc2, 2022-03-19, rev 0x0028, size 97280 sig 0x000806d1, pf_mask 0xc2, 2022-03-28, rev 0x0040, size 102400 sig 0x00090672, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064 sig 0x00090675, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064 sig 0x000906a3, pf_mask 0x80, 2022-06-15, rev 0x0421, size 216064 sig 0x000906a4, pf_mask 0x80, 2022-06-15, rev 0x0421, size 216064 sig 0x000a0671, pf_mask 0x02, 2022-03-17, rev 0x0054, size 103424 sig 0x000b06f2, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064 sig 0x000b06f5, pf_mask 0x03, 2022-06-07, rev 0x0022, size 216064 Signed-off-by: Christian Lamparter * bcm27xx-gpu-fw: update to latest version Multiple firmware fixes needed for kernel updates. Signed-off-by: Álvaro Fernández Rojas * bcm27xx-gpu-fw: update to latest version Latest GPU FW contains multiple fixes and improvements. Signed-off-by: Álvaro Fernández Rojas * bcm63xx-cfe: update to the latest master e5050f3 linksys: ea9500-v2: add cferam file Signed-off-by: Rafał Miłecki * nat46: fix translation of ICMP protocols parameter problem and unreachable 9b3a819 nat46-core: Fix translation of ICMP protocols parameter problem and unreachable (#27) Signed-off-by: Hans Dedecker * nat46: update to latest git HEAD 1fdf2a3 Fix kernel panic due to device deletion (#29) e7b48d1 add the mutex lock for create/delete/config/insert nat46 devices to fix nat46 module crash issues. (#28) Signed-off-by: Hans Dedecker * nat46: update to latest git HEAD d9bc161 nat46-core: Fix typo since day one (#31) 840e235 Fix coverity issues observed so far (#30) Signed-off-by: Hans Dedecker * nat46: update to git HEAD 95ca1c3 nat46-core: ignore IPv4 options when translating packets 39778c2 add a module argument to ignore TOS translate for IPv4 9a36ee1 add a module argument to ignore TOS translate for IPv4 79190a8 add a module argument to ignore TOS translate for IPv4 Signed-off-by: Hans Dedecker * mwlwifi: fix 5.15 kernel support Fix compilation and usage under kernel 5.15 for the mwlwifi driver. For detailed description of changes, check individual patches. Signed-off-by: Robert Marko * rtl8812au-ct: Fix compile Replace the extern inline with a static inline. With extern inline the compiler will generate the function in all compile units including this file which breaks linking later. Signed-off-by: Hauke Mehrtens Signed-off-by: Christian Lamparter Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Rafał Miłecki Signed-off-by: Hans Dedecker Signed-off-by: Robert Marko Signed-off-by: Hauke Mehrtens Co-authored-by: Christian Lamparter Co-authored-by: Álvaro Fernández Rojas Co-authored-by: Rafał Miłecki Co-authored-by: Hans Dedecker Co-authored-by: Robert Marko Co-authored-by: Hauke Mehrtens --- package/firmware/intel-microcode/Makefile | 4 +- package/kernel/bcm27xx-gpu-fw/Makefile | 30 +++++++------- package/kernel/bcm63xx-cfe/Makefile | 8 ++-- package/kernel/mwlwifi/Makefile | 2 +- ...lwifi-remove-MODULE_SUPPORTED_DEVICE.patch | 32 +++++++++++++++ ...003-mwlwifi-replace-get-set_fs-calls.patch | 39 +++++++++++++++++++ ...CIe-DT-node-null-pointer-dereference.patch | 31 +++++++++++++++ package/kernel/nat46/Makefile | 6 +-- .../patches/004-remove-extern-inline.patch | 24 ++++++++++++ 9 files changed, 151 insertions(+), 25 deletions(-) create mode 100644 package/kernel/mwlwifi/patches/002-mwlwifi-remove-MODULE_SUPPORTED_DEVICE.patch create mode 100644 package/kernel/mwlwifi/patches/003-mwlwifi-replace-get-set_fs-calls.patch create mode 100644 package/kernel/mwlwifi/patches/004-mwlwifi-fix-PCIe-DT-node-null-pointer-dereference.patch create mode 100644 package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch diff --git a/package/firmware/intel-microcode/Makefile b/package/firmware/intel-microcode/Makefile index 0d5173017..b0379f363 100644 --- a/package/firmware/intel-microcode/Makefile +++ b/package/firmware/intel-microcode/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=intel-microcode -PKG_VERSION:=20220510 +PKG_VERSION:=20220809 PKG_RELEASE:=1 PKG_SOURCE:=intel-microcode_3.$(PKG_VERSION).1.tar.xz PKG_SOURCE_URL:=@DEBIAN/pool/non-free/i/intel-microcode/ -PKG_HASH:=49752447c1b905dd130699cdef09fb2bba47b6f413d27787c98a5569273e283e +PKG_HASH:=4cf6c3638bb52d9d45c1916af866fd0929628a6f459daac3edfd369149e9c665 PKG_BUILD_DIR:=$(BUILD_DIR)/intel-microcode-3.$(PKG_VERSION).1 PKG_BUILD_DEPENDS:=iucode-tool/host diff --git a/package/kernel/bcm27xx-gpu-fw/Makefile b/package/kernel/bcm27xx-gpu-fw/Makefile index d34a48d11..b3323c8b2 100644 --- a/package/kernel/bcm27xx-gpu-fw/Makefile +++ b/package/kernel/bcm27xx-gpu-fw/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=bcm27xx-gpu-fw -PKG_VERSION:=2021-02-16 -PKG_RELEASE:=ba6259246c702b04ea56ff1034325e476d460ae8 +PKG_VERSION:=2022-05-16 +PKG_RELEASE:=3673be308132de102fdff491d1333d9d0f823557 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/rpi-firmware-$(PKG_RELEASE) @@ -26,7 +26,7 @@ define Download/bootcode_bin FILE:=$(RPI_FIRMWARE_FILE)-bootcode.bin URL:=$(RPI_FIRMWARE_URL) URL_FILE:=bootcode.bin - HASH:=92fd15eb2468187b69d15a9482d7e8cee3704993c53bb5ba55afe550723c5975 + HASH:=69309823da13dc96b89e3d82b44f820e4f84efa79d207adad2c8784559794f03 endef $(eval $(call Download,bootcode_bin)) @@ -34,7 +34,7 @@ define Download/fixup_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup.dat - HASH:=3daaf175decee44347fb97ece7738edf230b6fe3a86a8f521652e0052d5b3d6a + HASH:=921f56c62ad1995addb984b156c869202dc5d46bbe9ebcbd02c20f0def9058e3 endef $(eval $(call Download,fixup_dat)) @@ -42,7 +42,7 @@ define Download/fixup_cd_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup_cd.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup_cd.dat - HASH:=399b10509877cc7cbbaae25757ff44ee9f666931dd5c0996b48d170735a668b0 + HASH:=83a985aa0d73844786f3b3bf674826c520212f6f72fc6a890f2ebb5f87de5d8c endef $(eval $(call Download,fixup_cd_dat)) @@ -50,7 +50,7 @@ define Download/fixup_x_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup_x.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup_x.dat - HASH:=3c2a71f349bbc97bc3d9f7592bdd3f06d3d67e1ccd581cbdbb91b67a16304d76 + HASH:=8b00b00678adafe01e087240d156dbc87822e745b269be4f282596b69265cd1e endef $(eval $(call Download,fixup_x_dat)) @@ -58,7 +58,7 @@ define Download/fixup4_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4.dat - HASH:=68e9112ac7907af51cbf7f458d241e6136af1be4e968909e34cbffb70f9536b4 + HASH:=ef2b5d2a0a95ca48e00a1ce78b7650ee9e947cc1c588704c8ae30c1623122e2f endef $(eval $(call Download,fixup4_dat)) @@ -66,7 +66,7 @@ define Download/fixup4cd_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4cd.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4cd.dat - HASH:=399b10509877cc7cbbaae25757ff44ee9f666931dd5c0996b48d170735a668b0 + HASH:=83a985aa0d73844786f3b3bf674826c520212f6f72fc6a890f2ebb5f87de5d8c endef $(eval $(call Download,fixup4cd_dat)) @@ -74,7 +74,7 @@ define Download/fixup4x_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4x.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4x.dat - HASH:=62c0ff21c06a28c24fc537bd1d23625b3452170fbb9fbd950b67a393929c2768 + HASH:=a6c4e30ada5a00fe7de83c460638ca824647651bb4a3644b8c65d7ba1d9f2d2b endef $(eval $(call Download,fixup4x_dat)) @@ -82,7 +82,7 @@ define Download/start_elf FILE:=$(RPI_FIRMWARE_FILE)-start.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start.elf - HASH:=3cc30fc07a6ad99bdd14e6319ed84b6c8813e8cb08bc5fff488c33abb163f746 + HASH:=5455c148f4b8b04c553809bd22b995ee49ba5279ca3848df8bde6f80a388f7e0 endef $(eval $(call Download,start_elf)) @@ -90,7 +90,7 @@ define Download/start_cd_elf FILE:=$(RPI_FIRMWARE_FILE)-start_cd.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start_cd.elf - HASH:=a4ae5a07b036bd82136373f2ce8a9ad01e41938884568b57c53e4be4c08d0dda + HASH:=168c0a9178d5a3b4bd89ef770826a85b4ea3132560ba3600c212c0cec4c575c6 endef $(eval $(call Download,start_cd_elf)) @@ -98,7 +98,7 @@ define Download/start_x_elf FILE:=$(RPI_FIRMWARE_FILE)-start_x.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start_x.elf - HASH:=b566fc8bc4cd1699f40fc73aa72910915421764933f2f2a7ba517b6b14339d09 + HASH:=30c6a7f32a25185053ca3ca9e4bcfe932246ed42a1b7c37f8803209f93d86404 endef $(eval $(call Download,start_x_elf)) @@ -106,7 +106,7 @@ define Download/start4_elf FILE:=$(RPI_FIRMWARE_FILE)-start4.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4.elf - HASH:=abafb4d39c2708389e1421443fdd5e8a86e03bef6ad5282c0b5836587860cc5c + HASH:=be8bbff41dba2749b7b0e812f0a9d87a9122d18508f7b5ff3cd20f303d15bc07 endef $(eval $(call Download,start4_elf)) @@ -114,7 +114,7 @@ define Download/start4cd_elf FILE:=$(RPI_FIRMWARE_FILE)-start4cd.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4cd.elf - HASH:=6df423f4fa82c58efef6db1cf20c4fcbd92465a7fe91f40548c8534c1b5ef7fd + HASH:=000372e9cf6815ade595948dbd6328665f2a535eeee44e74b0ec8e56b6fbbf90 endef $(eval $(call Download,start4cd_elf)) @@ -122,7 +122,7 @@ define Download/start4x_elf FILE:=$(RPI_FIRMWARE_FILE)-start4x.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4x.elf - HASH:=4060e9fedfa99ff91549c8f4324a18417db785d99054ac7fe7d1b5dd5ef232f1 + HASH:=48895858f7936570dfab44c67bdcb0357ac8fcd630162c36ac9ed8f2de85c038 endef $(eval $(call Download,start4x_elf)) diff --git a/package/kernel/bcm63xx-cfe/Makefile b/package/kernel/bcm63xx-cfe/Makefile index 568348e85..a8399ce11 100644 --- a/package/kernel/bcm63xx-cfe/Makefile +++ b/package/kernel/bcm63xx-cfe/Makefile @@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=bcm63xx-cfe -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/openwrt/bcm63xx-cfe.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-03-05 -PKG_SOURCE_VERSION:=d03501629fc8b1ba8f9b0961d543c256a3d0098f -PKG_MIRROR_HASH:=b32a6f68d59c8f4534def7ec2568ad7da7a612a605b9406328309c78115ee88d +PKG_SOURCE_DATE:=2021-06-22 +PKG_SOURCE_VERSION:=e5050f37150b34deb547b50feccd0e7439cb5bd7 +PKG_MIRROR_HASH:=85fed9f4bdf23cf7d33a02f549ffe9073666890f786d5ffa484c0368552b75ae PKG_FLAGS:=nonshared diff --git a/package/kernel/mwlwifi/Makefile b/package/kernel/mwlwifi/Makefile index eb986dca0..bd2c7cfc4 100644 --- a/package/kernel/mwlwifi/Makefile +++ b/package/kernel/mwlwifi/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mwlwifi -PKG_RELEASE=2 +PKG_RELEASE=3 PKG_LICENSE:=ISC PKG_LICENSE_FILES:= diff --git a/package/kernel/mwlwifi/patches/002-mwlwifi-remove-MODULE_SUPPORTED_DEVICE.patch b/package/kernel/mwlwifi/patches/002-mwlwifi-remove-MODULE_SUPPORTED_DEVICE.patch new file mode 100644 index 000000000..23b4ef754 --- /dev/null +++ b/package/kernel/mwlwifi/patches/002-mwlwifi-remove-MODULE_SUPPORTED_DEVICE.patch @@ -0,0 +1,32 @@ +From 392f8e9d798acff3079e753dd881e272f6150d74 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Wed, 30 Mar 2022 19:32:38 +0200 +Subject: [PATCH] mwlwifi: remove MODULE_SUPPORTED_DEVICE + +Kernel 5.12 finally removed all MODULE_SUPPORTED_DEVICE references and +support for it as it was never actually implemented and was safe to +drop it completely. + +So, do the same in order to compile in 5.12 and newer. + +Signed-off-by: Robert Marko +--- + hif/pcie/pcie.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/hif/pcie/pcie.c ++++ b/hif/pcie/pcie.c +@@ -31,7 +31,6 @@ + #include "hif/pcie/rx_ndp.h" + + #define PCIE_DRV_DESC "Marvell Mac80211 Wireless PCIE Network Driver" +-#define PCIE_DEV_NAME "Marvell 802.11ac PCIE Adapter" + + #define MAX_WAIT_FW_COMPLETE_ITERATIONS 10000 + #define CHECK_BA_TRAFFIC_TIME 300 /* msec */ +@@ -1641,5 +1640,4 @@ MODULE_DESCRIPTION(PCIE_DRV_DESC); + MODULE_VERSION(PCIE_DRV_VERSION); + MODULE_AUTHOR("Marvell Semiconductor, Inc."); + MODULE_LICENSE("GPL v2"); +-MODULE_SUPPORTED_DEVICE(PCIE_DEV_NAME); + MODULE_DEVICE_TABLE(pci, pcie_id_tbl); diff --git a/package/kernel/mwlwifi/patches/003-mwlwifi-replace-get-set_fs-calls.patch b/package/kernel/mwlwifi/patches/003-mwlwifi-replace-get-set_fs-calls.patch new file mode 100644 index 000000000..725a41c9a --- /dev/null +++ b/package/kernel/mwlwifi/patches/003-mwlwifi-replace-get-set_fs-calls.patch @@ -0,0 +1,39 @@ +From 16e51cb83f9fa1717383c9d67f5531df7348347c Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Wed, 30 Mar 2022 19:51:56 +0200 +Subject: [PATCH] mwlwifi: replace get/set_fs() calls + +Since kernel 5.9 the get/set_fs() call implementation have started to get +dropped from individual architectures, ARM64 one got dropped in 5.11. + +Replace the get/set_fs() calls with force_uaccess_begin/end() to allow +compiling on newer kernels. +There is no need to add kernel version checks as the replacement functions +are available since kernel 5.9. + +Signed-off-by: Robert Marko +--- + hif/pcie/pcie.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/hif/pcie/pcie.c ++++ b/hif/pcie/pcie.c +@@ -1293,8 +1293,7 @@ static void pcie_bf_mimo_ctrl_decode(str + char *buf = &str_buf[0]; + mm_segment_t oldfs; + +- oldfs = get_fs(); +- set_fs(KERNEL_DS); ++ oldfs = force_uaccess_begin(); + + buf += sprintf(buf, "\nMAC: %pM\n", bf_mimo_ctrl->rec_mac); + buf += sprintf(buf, "SU_0_MU_1: %d\n", bf_mimo_ctrl->type); +@@ -1314,7 +1313,7 @@ static void pcie_bf_mimo_ctrl_decode(str + filename, (unsigned int)fp_data); + } + +- set_fs(oldfs); ++ force_uaccess_end(oldfs); + } + + static void pcie_process_account(struct ieee80211_hw *hw) diff --git a/package/kernel/mwlwifi/patches/004-mwlwifi-fix-PCIe-DT-node-null-pointer-dereference.patch b/package/kernel/mwlwifi/patches/004-mwlwifi-fix-PCIe-DT-node-null-pointer-dereference.patch new file mode 100644 index 000000000..9b9e49b66 --- /dev/null +++ b/package/kernel/mwlwifi/patches/004-mwlwifi-fix-PCIe-DT-node-null-pointer-dereference.patch @@ -0,0 +1,31 @@ +From 8e809b241695252e397bf0d7fc5f36e115c38831 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Fri, 5 Mar 2021 11:47:59 +0100 +Subject: [PATCH] mwlwifi: fix PCIe DT node null pointer dereference + +pci_bus_to_OF_node() used to get the PCI bus DT node +returns node if found or NULL if none is found. + +Since the return of pci_bus_to_OF_node() is not checked in +the DT node name print it will cause a null pointer +dereference and crash the kernel. + +So first check whether the node is not NULL and then print. + +Signed-off-by: Robert Marko +--- + hif/pcie/pcie.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/hif/pcie/pcie.c ++++ b/hif/pcie/pcie.c +@@ -570,7 +570,8 @@ static struct device_node *pcie_get_devi + struct device_node *dev_node; + + dev_node = pci_bus_to_OF_node(pcie_priv->pdev->bus); +- wiphy_info(priv->hw->wiphy, "device node: %s\n", dev_node->full_name); ++ if (dev_node) ++ wiphy_info(priv->hw->wiphy, "device node: %s\n", dev_node->full_name); + + return dev_node; + } diff --git a/package/kernel/nat46/Makefile b/package/kernel/nat46/Makefile index ef1a90ed8..2b131a9a7 100644 --- a/package/kernel/nat46/Makefile +++ b/package/kernel/nat46/Makefile @@ -3,11 +3,11 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=nat46 -PKG_MIRROR_HASH:=3b424241de42b96d47217decf6f9071153cd0c11651f1ee006700836c6660fe8 +PKG_MIRROR_HASH:=c26b8c60aa991a087011b8b6492e43a6749f0a5d9dc79ffcfd352da5fa20b78d PKG_SOURCE_URL:=https://github.com/ayourtch/nat46.git -PKG_SOURCE_DATE:=2021-05-17 +PKG_SOURCE_DATE:=2022-03-30 PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=0d5860d63a8037e001e293091ebf6219cc2f9255 +PKG_SOURCE_VERSION:=95ca1c3b99376da2d0306919f2df4a8d3c9bb78b PKG_MAINTAINER:=Hans Dedecker PKG_LICENSE:=GPL-2.0 diff --git a/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch b/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch new file mode 100644 index 000000000..871fe1063 --- /dev/null +++ b/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch @@ -0,0 +1,24 @@ +--- a/include/ieee80211.h ++++ b/include/ieee80211.h +@@ -1313,18 +1313,18 @@ enum ieee80211_state { + (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ + (((Addr[5]) & 0xff) == 0xff)) + #else +-extern __inline int is_multicast_mac_addr(const u8 *addr) ++__inline static int is_multicast_mac_addr(const u8 *addr) + { + return ((addr[0] != 0xff) && (0x01 & addr[0])); + } + +-extern __inline int is_broadcast_mac_addr(const u8 *addr) ++__inline static int is_broadcast_mac_addr(const u8 *addr) + { + return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ + (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); + } + +-extern __inline int is_zero_mac_addr(const u8 *addr) ++__inline static int is_zero_mac_addr(const u8 *addr) + { + return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \ + (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));