generic: 6.12: remove obsolete hack patches
authorMieczyslaw Nalewaj <namiltd@yahoo.com>
Mon, 9 Dec 2024 20:31:30 +0000 (21:31 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Tue, 17 Dec 2024 22:28:10 +0000 (23:28 +0100)
Remove obsolete hack patches

Removed (already included):
 - 200-tools_portability.patch
 - 220-arm-gc_sections.patch
 - 721-net-add-packet-mangeling.patch
 - 790-SFP-GE-T-ignore-TX_FAULT.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
target/linux/generic/hack-6.12/200-tools_portability.patch [deleted file]
target/linux/generic/hack-6.12/220-arm-gc_sections.patch [deleted file]
target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch [deleted file]
target/linux/generic/hack-6.12/790-SFP-GE-T-ignore-TX_FAULT.patch [deleted file]

diff --git a/target/linux/generic/hack-6.12/200-tools_portability.patch b/target/linux/generic/hack-6.12/200-tools_portability.patch
deleted file mode 100644 (file)
index f016e64..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-From a7ae4ed0a3951c45d4a59ee575951b64ae4a23fb Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Tue, 7 May 2024 12:22:15 +0200
-Subject: [PATCH] kernel: fix tools build breakage on macos with x86
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
---- a/tools/scripts/Makefile.include
-+++ b/tools/scripts/Makefile.include
-@@ -72,8 +72,6 @@ $(call allow-override,CXX,$(CROSS_COMPIL
- $(call allow-override,STRIP,$(CROSS_COMPILE)strip)
- endif
--CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
--
- ifneq ($(LLVM),)
- HOSTAR  ?= $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)
- HOSTCC  ?= $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
-@@ -84,6 +82,9 @@ HOSTCC  ?= gcc
- HOSTLD  ?= ld
- endif
-+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
-+HOSTCC_NO_CLANG := $(shell $(HOSTCC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?)
-+
- # Some tools require Clang, LLC and/or LLVM utils
- CLANG         ?= clang
- LLC           ?= llc
-@@ -92,8 +93,9 @@ LLVM_OBJCOPY ?= llvm-objcopy
- LLVM_STRIP    ?= llvm-strip
- ifeq ($(CC_NO_CLANG), 1)
--EXTRA_WARNINGS += -Wstrict-aliasing=3
--
-+  ifeq ($(HOSTCC_NO_CLANG), 1)
-+    EXTRA_WARNINGS += -Wstrict-aliasing=3
-+  endif
- else ifneq ($(CROSS_COMPILE),)
- # Allow userspace to override CLANG_CROSS_FLAGS to specify their own
- # sysroots and flags or to avoid the GCC call in pure Clang builds.
---- a/tools/include/linux/types.h
-+++ b/tools/include/linux/types.h
-@@ -10,8 +10,12 @@
- #define __SANE_USERSPACE_TYPES__      /* For PPC64, to get LL64 types */
- #endif
-+#ifndef __linux__
-+#include <tools/linux_types.h>
-+#else
- #include <asm/types.h>
- #include <asm/posix_types.h>
-+#endif
- struct page;
- struct kmem_cache;
-@@ -56,6 +60,7 @@ typedef __s8  s8;
- #define __user
- #endif
- #define __must_check
-+#undef __cold
- #define __cold
- typedef __u16 __bitwise __le16;
---- a/tools/objtool/include/objtool/objtool.h
-+++ b/tools/objtool/include/objtool/objtool.h
-@@ -12,6 +12,7 @@
- #include <objtool/elf.h>
-+#undef __weak
- #define __weak __attribute__((weak))
- struct pv_state {
---- a/tools/include/asm-generic/bitops/fls.h
-+++ b/tools/include/asm-generic/bitops/fls.h
-@@ -2,6 +2,8 @@
- #ifndef _ASM_GENERIC_BITOPS_FLS_H_
- #define _ASM_GENERIC_BITOPS_FLS_H_
-+#include <string.h>
-+
- /**
-  * fls - find last (most-significant) bit set
-  * @x: the word to search
-@@ -10,6 +12,7 @@
-  * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
-  */
-+#define fls __linux_fls
- static __always_inline int fls(unsigned int x)
- {
-       int r = 32;
---- a/tools/lib/string.c
-+++ b/tools/lib/string.c
-@@ -96,6 +96,7 @@ int strtobool(const char *s, bool *res)
-  * If libc has strlcpy() then that version will override this
-  * implementation:
-  */
-+#ifndef __APPLE__
- #ifdef __clang__
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wignored-attributes"
-@@ -114,6 +115,7 @@ size_t __weak strlcpy(char *dest, const
- #ifdef __clang__
- #pragma clang diagnostic pop
- #endif
-+#endif
- /**
-  * skip_spaces - Removes leading whitespace from @str.
---- a/tools/arch/x86/include/asm/insn.h
-+++ b/tools/arch/x86/include/asm/insn.h
-@@ -7,7 +7,7 @@
-  * Copyright (C) IBM Corporation, 2009
-  */
--#include <asm/byteorder.h>
-+#include <linux/kernel.h>
- /* insn_attr_t is defined in inat.h */
- #include "inat.h" /* __ignore_sync_check__ */
---- a/tools/arch/x86/include/asm/orc_types.h
-+++ b/tools/arch/x86/include/asm/orc_types.h
-@@ -46,7 +46,6 @@
- #define ORC_TYPE_REGS_PARTIAL         4
- #ifndef __ASSEMBLY__
--#include <asm/byteorder.h>
- /*
-  * This struct is more or less a vastly simplified version of the DWARF Call
-@@ -59,12 +58,12 @@
- struct orc_entry {
-       s16             sp_offset;
-       s16             bp_offset;
--#if defined(__LITTLE_ENDIAN_BITFIELD)
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-       unsigned        sp_reg:4;
-       unsigned        bp_reg:4;
-       unsigned        type:3;
-       unsigned        signal:1;
--#elif defined(__BIG_ENDIAN_BITFIELD)
-+#elif __BYTE_ORDER == __BIG_ENDIAN
-       unsigned        bp_reg:4;
-       unsigned        sp_reg:4;
-       unsigned        unused:4;
---- a/tools/include/linux/rbtree.h
-+++ b/tools/include/linux/rbtree.h
-@@ -18,7 +18,6 @@
- #define __TOOLS_LINUX_PERF_RBTREE_H
- #include <linux/kernel.h>
--#include <linux/stddef.h>
- struct rb_node {
-       unsigned long  __rb_parent_color;
---- a/tools/include/tools/be_byteshift.h
-+++ b/tools/include/tools/be_byteshift.h
-@@ -2,6 +2,10 @@
- #ifndef _TOOLS_BE_BYTESHIFT_H
- #define _TOOLS_BE_BYTESHIFT_H
-+#ifndef __linux__
-+#include "linux_types.h"
-+#endif
-+
- #include <stdint.h>
- static inline uint16_t __get_unaligned_be16(const uint8_t *p)
---- a/tools/include/tools/le_byteshift.h
-+++ b/tools/include/tools/le_byteshift.h
-@@ -2,6 +2,10 @@
- #ifndef _TOOLS_LE_BYTESHIFT_H
- #define _TOOLS_LE_BYTESHIFT_H
-+#ifndef __linux__
-+#include "linux_types.h"
-+#endif
-+
- #include <stdint.h>
- static inline uint16_t __get_unaligned_le16(const uint8_t *p)
---- /dev/null
-+++ b/tools/include/tools/linux_types.h
-@@ -0,0 +1,18 @@
-+#ifndef __LINUX_TYPES_H
-+#define __LINUX_TYPES_H
-+
-+#include <stdint.h>
-+
-+typedef int8_t __s8;
-+typedef uint8_t __u8;
-+
-+typedef int16_t __s16;
-+typedef uint16_t __u16;
-+
-+typedef int32_t __s32;
-+typedef uint32_t __u32;
-+
-+typedef int64_t __s64;
-+typedef uint64_t __u64;
-+
-+#endif
---- a/tools/objtool/Makefile
-+++ b/tools/objtool/Makefile
-@@ -39,6 +39,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS
- elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(HOSTCC) $(OBJTOOL_CFLAGS) -x c -E - | grep elf_getshdr)
- OBJTOOL_CFLAGS += $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED)
-+OBJTOOL_CFLAGS += $(HOST_EXTRACFLAGS)
-+
- # Always want host compilation.
- HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)"
---- a/tools/objtool/orc_dump.c
-+++ b/tools/objtool/orc_dump.c
-@@ -4,10 +4,10 @@
-  */
- #include <unistd.h>
--#include <asm/orc_types.h>
- #include <objtool/objtool.h>
- #include <objtool/warn.h>
- #include <objtool/endianness.h>
-+#include <asm/orc_types.h>
- static const char *reg_name(unsigned int reg)
- {
---- a/tools/objtool/orc_gen.c
-+++ b/tools/objtool/orc_gen.c
-@@ -7,11 +7,11 @@
- #include <string.h>
- #include <linux/objtool_types.h>
--#include <asm/orc_types.h>
- #include <objtool/check.h>
- #include <objtool/warn.h>
- #include <objtool/endianness.h>
-+#include <asm/orc_types.h>
- static int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi,
-                         struct instruction *insn)
---- a/tools/arch/x86/lib/insn.c
-+++ b/tools/arch/x86/lib/insn.c
-@@ -15,7 +15,11 @@
- #include "../include/asm/insn.h" /* __ignore_sync_check__ */
- #include "../include/asm-generic/unaligned.h" /* __ignore_sync_check__ */
-+#ifdef __KERNEL__
- #include <linux/errno.h>
-+#else
-+#include <errno.h>
-+#endif
- #include <linux/kconfig.h>
- #include "../include/asm/emulate_prefix.h" /* __ignore_sync_check__ */
diff --git a/target/linux/generic/hack-6.12/220-arm-gc_sections.patch b/target/linux/generic/hack-6.12/220-arm-gc_sections.patch
deleted file mode 100644 (file)
index eb49704..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From e3d8676f5722b7622685581e06e8f53e6138e3ab Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Sat, 15 Jul 2017 23:42:36 +0200
-Subject: use -ffunction-sections, -fdata-sections and --gc-sections
-
-In combination with kernel symbol export stripping this significantly reduces
-the kernel image size. Used on both ARM and MIPS architectures.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
-Signed-off-by: Jonas Gorski <jogo@openwrt.org>
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
----
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -128,6 +128,7 @@ config ARM
-       select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU
-       select IRQ_FORCED_THREADING
-       select LOCK_MM_AND_FIND_VMA
-+      select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
-       select MODULES_USE_ELF_REL
-       select NEED_DMA_MAP_STATE
-       select OF_EARLY_FLATTREE if OF
---- a/arch/arm/boot/compressed/Makefile
-+++ b/arch/arm/boot/compressed/Makefile
-@@ -92,6 +92,7 @@ endif
- ifeq ($(CONFIG_USE_OF),y)
- OBJS  += $(libfdt_objs) fdt_check_mem_start.o
- endif
-+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
- OBJS  += lib1funcs.o ashldi3.o bswapsdi2.o
---- a/arch/arm/kernel/vmlinux.lds.S
-+++ b/arch/arm/kernel/vmlinux.lds.S
-@@ -74,7 +74,7 @@ SECTIONS
-       . = ALIGN(4);
-       __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
-               __start___ex_table = .;
--              ARM_MMU_KEEP(*(__ex_table))
-+              KEEP(*(__ex_table))
-               __stop___ex_table = .;
-       }
-@@ -99,24 +99,24 @@ SECTIONS
-       }
-       .init.arch.info : {
-               __arch_info_begin = .;
--              *(.arch.info.init)
-+              KEEP(*(.arch.info.init))
-               __arch_info_end = .;
-       }
-       .init.tagtable : {
-               __tagtable_begin = .;
--              *(.taglist.init)
-+              KEEP(*(.taglist.init))
-               __tagtable_end = .;
-       }
- #ifdef CONFIG_SMP_ON_UP
-       .init.smpalt : {
-               __smpalt_begin = .;
--              *(.alt.smp.init)
-+              KEEP(*(.alt.smp.init))
-               __smpalt_end = .;
-       }
- #endif
-       .init.pv_table : {
-               __pv_table_begin = .;
--              *(.pv_table)
-+              KEEP(*(.pv_table))
-               __pv_table_end = .;
-       }
---- a/arch/arm/include/asm/vmlinux.lds.h
-+++ b/arch/arm/include/asm/vmlinux.lds.h
-@@ -42,13 +42,13 @@
- #define PROC_INFO                                                     \
-               . = ALIGN(4);                                           \
-               __proc_info_begin = .;                                  \
--              *(.proc.info.init)                                      \
-+              KEEP(*(.proc.info.init))                                \
-               __proc_info_end = .;
- #define IDMAP_TEXT                                                    \
-               ALIGN_FUNCTION();                                       \
-               __idmap_text_start = .;                                 \
--              *(.idmap.text)                                          \
-+              KEEP(*(.idmap.text))                                    \
-               __idmap_text_end = .;                                   \
- #define ARM_DISCARD                                                   \
-@@ -108,12 +108,12 @@
-       . = ALIGN(8);                                                   \
-       .ARM.unwind_idx : {                                             \
-               __start_unwind_idx = .;                                 \
--              *(.ARM.exidx*)                                          \
-+              KEEP(*(.ARM.exidx*))                                    \
-               __stop_unwind_idx = .;                                  \
-       }                                                               \
-       .ARM.unwind_tab : {                                             \
-               __start_unwind_tab = .;                                 \
--              *(.ARM.extab*)                                          \
-+              KEEP(*(.ARM.extab*))                                    \
-               __stop_unwind_tab = .;                                  \
-       }
-@@ -125,7 +125,7 @@
-       __vectors_lma = .;                                              \
-       OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {            \
-               .vectors {                                              \
--                      *(.vectors)                                     \
-+                      KEEP(*(.vectors))                               \
-               }                                                       \
-               .vectors.bhb.loop8 {                                    \
-                       *(.vectors.bhb.loop8)                           \
-@@ -143,7 +143,7 @@
-                                                                       \
-       __stubs_lma = .;                                                \
-       .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {              \
--              *(.stubs)                                               \
-+              KEEP(*(.stubs))                                         \
-       }                                                               \
-       ARM_LMA(__stubs, .stubs);                                       \
-       . = __stubs_lma + SIZEOF(.stubs);                               \
diff --git a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch
deleted file mode 100644 (file)
index e1d4367..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-From ffe387740bbe88dd88bbe04d6375902708003d6e Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 7 Jul 2017 17:25:00 +0200
-Subject: net: add packet mangeling
-
-ar8216 switches have a hardware bug, which renders normal 802.1q support
-unusable. Packet mangling is required to fix up the vlan for incoming
-packets.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
- include/linux/netdevice.h | 11 +++++++++++
- include/linux/skbuff.h    | 14 ++++----------
- net/Kconfig               |  6 ++++++
- net/core/dev.c            | 20 +++++++++++++++-----
- net/core/skbuff.c         | 17 +++++++++++++++++
- net/ethernet/eth.c        |  6 ++++++
- 6 files changed, 59 insertions(+), 15 deletions(-)
-
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -1758,6 +1758,7 @@ enum netdev_priv_flags {
-       IFF_TX_SKB_NO_LINEAR            = BIT_ULL(31),
-       IFF_CHANGE_PROTO_DOWN           = BIT_ULL(32),
-       IFF_SEE_ALL_HWTSTAMP_REQUESTS   = BIT_ULL(33),
-+      IFF_NO_IP_ALIGN                 = BIT_ULL(34),
- };
- #define IFF_802_1Q_VLAN                       IFF_802_1Q_VLAN
-@@ -1791,6 +1792,7 @@ enum netdev_priv_flags {
- #define IFF_FAILOVER_SLAVE            IFF_FAILOVER_SLAVE
- #define IFF_L3MDEV_RX_HANDLER         IFF_L3MDEV_RX_HANDLER
- #define IFF_TX_SKB_NO_LINEAR          IFF_TX_SKB_NO_LINEAR
-+#define IFF_NO_IP_ALIGN               IFF_NO_IP_ALIGN
- /* Specifies the type of the struct net_device::ml_priv pointer */
- enum netdev_ml_priv_type {
-@@ -2183,6 +2185,11 @@ struct net_device {
-       const struct tlsdev_ops *tlsdev_ops;
- #endif
-+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
-+      void (*eth_mangle_rx)(struct net_device *dev, struct sk_buff *skb);
-+      struct sk_buff *(*eth_mangle_tx)(struct net_device *dev, struct sk_buff *skb);
-+#endif
-+
-       const struct header_ops *header_ops;
-       unsigned char           operstate;
-@@ -2256,6 +2263,10 @@ struct net_device {
-       struct mctp_dev __rcu   *mctp_ptr;
- #endif
-+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
-+      void                    *phy_ptr; /* PHY device specific data */
-+#endif
-+
- /*
-  * Cache lines mostly used on receive path (including eth_type_trans())
-  */
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -3095,6 +3095,10 @@ static inline int pskb_trim(struct sk_bu
-       return (len < skb->len) ? __pskb_trim(skb, len) : 0;
- }
-+extern struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
-+              unsigned int length, gfp_t gfp);
-+
-+
- /**
-  *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
-  *    @skb: buffer to alter
-@@ -3260,16 +3264,6 @@ static inline struct sk_buff *dev_alloc_
- }
--static inline struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
--              unsigned int length, gfp_t gfp)
--{
--      struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp);
--
--      if (NET_IP_ALIGN && skb)
--              skb_reserve(skb, NET_IP_ALIGN);
--      return skb;
--}
--
- static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
-               unsigned int length)
- {
---- a/net/Kconfig
-+++ b/net/Kconfig
-@@ -26,6 +26,12 @@ menuconfig NET
- if NET
-+config ETHERNET_PACKET_MANGLE
-+      bool
-+      help
-+        This option can be selected by phy drivers that need to mangle
-+        packets going in or out of an ethernet device.
-+
- config WANT_COMPAT_NETLINK_MESSAGES
-       bool
-       help
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -3597,6 +3597,11 @@ static int xmit_one(struct sk_buff *skb,
-       if (dev_nit_active(dev))
-               dev_queue_xmit_nit(skb, dev);
-+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
-+      if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
-+              return NETDEV_TX_OK;
-+#endif
-+
-       len = skb->len;
-       trace_net_dev_start_xmit(skb, dev);
-       rc = netdev_start_xmit(skb, dev, txq, more);
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -62,6 +62,7 @@
- #include <linux/if_vlan.h>
- #include <linux/mpls.h>
- #include <linux/kcov.h>
-+#include <linux/if.h>
- #include <net/protocol.h>
- #include <net/dst.h>
-@@ -844,6 +845,22 @@ skb_fail:
- }
- EXPORT_SYMBOL(__napi_alloc_skb);
-+struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
-+              unsigned int length, gfp_t gfp)
-+{
-+      struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp);
-+
-+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
-+      if (dev && (dev->priv_flags & IFF_NO_IP_ALIGN))
-+              return skb;
-+#endif
-+
-+      if (NET_IP_ALIGN && skb)
-+              skb_reserve(skb, NET_IP_ALIGN);
-+      return skb;
-+}
-+EXPORT_SYMBOL(__netdev_alloc_skb_ip_align);
-+
- void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off,
-                    int size, unsigned int truesize)
- {
---- a/net/ethernet/eth.c
-+++ b/net/ethernet/eth.c
-@@ -159,6 +159,12 @@ __be16 eth_type_trans(struct sk_buff *sk
-       const struct ethhdr *eth;
-       skb->dev = dev;
-+
-+#ifdef CONFIG_ETHERNET_PACKET_MANGLE
-+      if (dev->eth_mangle_rx)
-+              dev->eth_mangle_rx(dev, skb);
-+#endif
-+
-       skb_reset_mac_header(skb);
-       eth = (struct ethhdr *)skb->data;
diff --git a/target/linux/generic/hack-6.12/790-SFP-GE-T-ignore-TX_FAULT.patch b/target/linux/generic/hack-6.12/790-SFP-GE-T-ignore-TX_FAULT.patch
deleted file mode 100644 (file)
index 7733b45..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7cc39a6bedbd85f3ff7e16845f310e4ce8d9833f Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Tue, 6 Sep 2022 00:31:19 +0100
-Subject: [PATCH] net: sfp: add quirk for ATS SFP-GE-T 1000Base-TX module
-To: netdev@vger.kernel.org,
-    linux-kernel@vger.kernel.org,
-    Russell King <linux@armlinux.org.uk>,
-    Andrew Lunn <andrew@lunn.ch>,
-    Heiner Kallweit <hkallweit1@gmail.com>
-Cc: David S. Miller <davem@davemloft.net>,
-    Eric Dumazet <edumazet@google.com>,
-    Jakub Kicinski <kuba@kernel.org>,
-    Paolo Abeni <pabeni@redhat.com>,
-    Josef Schlehofer <pepe.schlehofer@gmail.com>
-
-This copper module comes with broken TX_FAULT indicator which must be
-ignored for it to work. Implement ignoring TX_FAULT state bit also
-during reset/insertion and mute the warning telling the user that the
-module indicates TX_FAULT.
-
-Co-authored-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
----
- drivers/net/phy/sfp.c | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
---- a/drivers/net/phy/sfp.c
-+++ b/drivers/net/phy/sfp.c
-@@ -471,6 +471,9 @@ static const struct sfp_quirk sfp_quirks
-       // FS 2.5G Base-T
-       SFP_QUIRK_M("FS", "SFP-2.5G-T", sfp_quirk_oem_2_5g),
-+      // OEM SFP-GE-T is 1000Base-T module
-+      SFP_QUIRK_F("OEM", "SFP-GE-T", sfp_fixup_ignore_tx_fault),
-+
-       // Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
-       // 2500MBd NRZ in their EEPROM
-       SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex),
-@@ -2589,7 +2592,8 @@ static void sfp_sm_main(struct sfp *sfp,
-                        * or t_start_up, so assume there is a fault.
-                        */
-                       sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
--                                   sfp->sm_fault_retries == N_FAULT_INIT);
-+                                   !sfp->tx_fault_ignore &&
-+                                   (sfp->sm_fault_retries == N_FAULT_INIT));
-               } else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
-       init_done:
-                       /* Create mdiobus and start trying for PHY */
-@@ -2843,10 +2847,12 @@ static void sfp_check_state(struct sfp *
-       mutex_lock(&sfp->st_mutex);
-       state = sfp_get_state(sfp);
-       changed = state ^ sfp->state;
--      if (sfp->tx_fault_ignore)
-+      if (sfp->tx_fault_ignore) {
-               changed &= SFP_F_PRESENT | SFP_F_LOS;
--      else
-+              state &= ~SFP_F_TX_FAULT;
-+      } else {
-               changed &= SFP_F_PRESENT | SFP_F_LOS | SFP_F_TX_FAULT;
-+      }
-       for (i = 0; i < GPIO_MAX; i++)
-               if (changed & BIT(i))