 438e593f22
			
		
	
	438e593f22
	
	
	
		
			
			Removed because they are upstream:
   generic/backport-5.15/741-v6.9-01-netfilter-flowtable-validate-pppoe-header.patch
   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=d06977b9a4109f8738bb276125eb6a0b772bc433
Removed because they are upstream:
   generic/backport-5.15/741-v6.9-02-netfilter-flowtable-incorrect-pppoe-tuple.patch
   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=e719b52d0c56989b0f3475a03a6d64f182c85b56
Manual adapted the following patches:
   generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
   generic/pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch
   generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 84d0b0b925)
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From ad2606f6fafae3a7d41c4f2af5554c8f6adecbc7 Mon Sep 17 00:00:00 2001
 | |
| From: Frank Wunderlich <frank-w@public-files.de>
 | |
| Date: Fri, 10 Jun 2022 19:05:39 +0200
 | |
| Subject: [PATCH 13/13] net: dsa: mt7530: get cpu-port via dp->cpu_dp instead
 | |
|  of constant
 | |
| 
 | |
| Replace last occurences of hardcoded cpu-port by cpu_dp member of
 | |
| dsa_port struct.
 | |
| 
 | |
| Now the constant can be dropped.
 | |
| 
 | |
| Suggested-by: Vladimir Oltean <olteanv@gmail.com>
 | |
| Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
 | |
| Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
 | |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
 | |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 | |
| ---
 | |
|  drivers/net/dsa/mt7530.c | 27 ++++++++++++++++++++-------
 | |
|  drivers/net/dsa/mt7530.h |  1 -
 | |
|  2 files changed, 20 insertions(+), 8 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/dsa/mt7530.c
 | |
| +++ b/drivers/net/dsa/mt7530.c
 | |
| @@ -1275,6 +1275,7 @@ static int
 | |
|  mt7530_port_enable(struct dsa_switch *ds, int port,
 | |
|  		   struct phy_device *phy)
 | |
|  {
 | |
| +	struct dsa_port *dp = dsa_to_port(ds, port);
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1283,7 +1284,11 @@ mt7530_port_enable(struct dsa_switch *ds
 | |
|  	 * restore the port matrix if the port is the member of a certain
 | |
|  	 * bridge.
 | |
|  	 */
 | |
| -	priv->ports[port].pm |= PCR_MATRIX(BIT(MT7530_CPU_PORT));
 | |
| +	if (dsa_port_is_user(dp)) {
 | |
| +		struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
| +		priv->ports[port].pm |= PCR_MATRIX(BIT(cpu_dp->index));
 | |
| +	}
 | |
|  	priv->ports[port].enable = true;
 | |
|  	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
 | |
|  		   priv->ports[port].pm);
 | |
| @@ -1431,7 +1436,8 @@ mt7530_port_bridge_join(struct dsa_switc
 | |
|  			struct net_device *bridge)
 | |
|  {
 | |
|  	struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
 | |
| -	u32 port_bitmap = BIT(MT7530_CPU_PORT);
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +	u32 port_bitmap = BIT(cpu_dp->index);
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1508,9 +1514,12 @@ mt7530_port_set_vlan_unaware(struct dsa_
 | |
|  	 * the CPU port get out of VLAN filtering mode.
 | |
|  	 */
 | |
|  	if (all_user_ports_removed) {
 | |
| -		mt7530_write(priv, MT7530_PCR_P(MT7530_CPU_PORT),
 | |
| +		struct dsa_port *dp = dsa_to_port(ds, port);
 | |
| +		struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
| +		mt7530_write(priv, MT7530_PCR_P(cpu_dp->index),
 | |
|  			     PCR_MATRIX(dsa_user_ports(priv->ds)));
 | |
| -		mt7530_write(priv, MT7530_PVC_P(MT7530_CPU_PORT), PORT_SPEC_TAG
 | |
| +		mt7530_write(priv, MT7530_PVC_P(cpu_dp->index), PORT_SPEC_TAG
 | |
|  			     | PVC_EG_TAG(MT7530_VLAN_EG_CONSISTENT));
 | |
|  	}
 | |
|  }
 | |
| @@ -1560,6 +1569,7 @@ mt7530_port_bridge_leave(struct dsa_swit
 | |
|  			 struct net_device *bridge)
 | |
|  {
 | |
|  	struct dsa_port *dp = dsa_to_port(ds, port), *other_dp;
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
|  	struct mt7530_priv *priv = ds->priv;
 | |
|  
 | |
|  	mutex_lock(&priv->reg_mutex);
 | |
| @@ -1588,8 +1598,8 @@ mt7530_port_bridge_leave(struct dsa_swit
 | |
|  	 */
 | |
|  	if (priv->ports[port].enable)
 | |
|  		mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
 | |
| -			   PCR_MATRIX(BIT(MT7530_CPU_PORT)));
 | |
| -	priv->ports[port].pm = PCR_MATRIX(BIT(MT7530_CPU_PORT));
 | |
| +			   PCR_MATRIX(BIT(cpu_dp->index)));
 | |
| +	priv->ports[port].pm = PCR_MATRIX(BIT(cpu_dp->index));
 | |
|  
 | |
|  	/* When a port is removed from the bridge, the port would be set up
 | |
|  	 * back to the default as is at initial boot which is a VLAN-unaware
 | |
| @@ -1752,6 +1762,9 @@ static int
 | |
|  mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
 | |
|  			   struct netlink_ext_ack *extack)
 | |
|  {
 | |
| +	struct dsa_port *dp = dsa_to_port(ds, port);
 | |
| +	struct dsa_port *cpu_dp = dp->cpu_dp;
 | |
| +
 | |
|  	if (vlan_filtering) {
 | |
|  		/* The port is being kept as VLAN-unaware port when bridge is
 | |
|  		 * set up with vlan_filtering not being set, Otherwise, the
 | |
| @@ -1759,7 +1772,7 @@ mt7530_port_vlan_filtering(struct dsa_sw
 | |
|  		 * for becoming a VLAN-aware port.
 | |
|  		 */
 | |
|  		mt7530_port_set_vlan_aware(ds, port);
 | |
| -		mt7530_port_set_vlan_aware(ds, MT7530_CPU_PORT);
 | |
| +		mt7530_port_set_vlan_aware(ds, cpu_dp->index);
 | |
|  	} else {
 | |
|  		mt7530_port_set_vlan_unaware(ds, port);
 | |
|  	}
 | |
| --- a/drivers/net/dsa/mt7530.h
 | |
| +++ b/drivers/net/dsa/mt7530.h
 | |
| @@ -8,7 +8,6 @@
 | |
|  
 | |
|  #define MT7530_NUM_PORTS		7
 | |
|  #define MT7530_NUM_PHYS			5
 | |
| -#define MT7530_CPU_PORT			6
 | |
|  #define MT7530_NUM_FDB_RECORDS		2048
 | |
|  #define MT7530_ALL_MEMBERS		0xff
 | |
|  
 |