Commit 3674fbf0 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files


Merge in late fixes to prepare for the 6.5 net-next PR.

Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 9d797ee2 25a9c8a4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3606,6 +3606,7 @@ S: Supported
W:	http://www.bluez.org/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
F:	Documentation/devicetree/bindings/net/bluetooth/
F:	drivers/bluetooth/
BLUETOOTH SUBSYSTEM
@@ -12549,7 +12550,7 @@ F: drivers/mtd/nand/raw/marvell_nand.c
MARVELL OCTEON ENDPOINT DRIVER
M:	Veerasenareddy Burru <vburru@marvell.com>
M:	Abhijit Ayarekar <aayarekar@marvell.com>
M:	Sathesh Edara <sedara@marvell.com>
L:	netdev@vger.kernel.org
S:	Supported
F:	drivers/net/ethernet/marvell/octeon_ep
+1 −1
Original line number Diff line number Diff line
@@ -4200,7 +4200,7 @@ u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb)
		return skb->hash;

	return __bond_xmit_hash(bond, skb, skb->data, skb->protocol,
				skb_mac_offset(skb), skb_network_offset(skb),
				0, skb_network_offset(skb),
				skb_headlen(skb));
}

+2 −0
Original line number Diff line number Diff line
@@ -673,5 +673,7 @@ void bcmgenet_mii_exit(struct net_device *dev)
	if (of_phy_is_fixed_link(dn))
		of_phy_deregister_fixed_link(dn);
	of_node_put(priv->phy_dn);
	clk_prepare_enable(priv->clk);
	platform_device_unregister(priv->mii_pdev);
	clk_disable_unprepare(priv->clk);
}
+6 −2
Original line number Diff line number Diff line
@@ -229,7 +229,10 @@ struct igc_adapter {

	struct ptp_clock *ptp_clock;
	struct ptp_clock_info ptp_caps;
	struct work_struct ptp_tx_work;
	/* Access to ptp_tx_skb and ptp_tx_start are protected by the
	 * ptp_tx_lock.
	 */
	spinlock_t ptp_tx_lock;
	struct sk_buff *ptp_tx_skb;
	struct hwtstamp_config tstamp_config;
	unsigned long ptp_tx_start;
@@ -429,7 +432,6 @@ enum igc_state_t {
	__IGC_TESTING,
	__IGC_RESETTING,
	__IGC_DOWN,
	__IGC_PTP_TX_IN_PROGRESS,
};

enum igc_tx_flags {
@@ -613,6 +615,7 @@ enum igc_ring_flags_t {
	IGC_RING_FLAG_TX_CTX_IDX,
	IGC_RING_FLAG_TX_DETECT_HANG,
	IGC_RING_FLAG_AF_XDP_ZC,
	IGC_RING_FLAG_TX_HWTSTAMP,
};

#define ring_uses_large_buffer(ring) \
@@ -669,6 +672,7 @@ int igc_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr);
int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr);
void igc_ptp_tx_hang(struct igc_adapter *adapter);
void igc_ptp_read(struct igc_adapter *adapter, struct timespec64 *ts);
void igc_ptp_tx_tstamp_event(struct igc_adapter *adapter);

#define igc_rx_pg_size(_ring) (PAGE_SIZE << igc_rx_pg_order(_ring))

+9 −5
Original line number Diff line number Diff line
@@ -1585,14 +1585,16 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb,
		}
	}

	if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
	if (unlikely(test_bit(IGC_RING_FLAG_TX_HWTSTAMP, &tx_ring->flags) &&
		     skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
		/* FIXME: add support for retrieving timestamps from
		 * the other timer registers before skipping the
		 * timestamping request.
		 */
		if (adapter->tstamp_config.tx_type == HWTSTAMP_TX_ON &&
		    !test_and_set_bit_lock(__IGC_PTP_TX_IN_PROGRESS,
					   &adapter->state)) {
		unsigned long flags;

		spin_lock_irqsave(&adapter->ptp_tx_lock, flags);
		if (!adapter->ptp_tx_skb) {
			skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
			tx_flags |= IGC_TX_FLAGS_TSTAMP;

@@ -1601,6 +1603,8 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb,
		} else {
			adapter->tx_hwtstamp_skipped++;
		}

		spin_unlock_irqrestore(&adapter->ptp_tx_lock, flags);
	}

	if (skb_vlan_tag_present(skb)) {
@@ -5264,7 +5268,7 @@ static void igc_tsync_interrupt(struct igc_adapter *adapter)

	if (tsicr & IGC_TSICR_TXTS) {
		/* retrieve hardware timestamp */
		schedule_work(&adapter->ptp_tx_work);
		igc_ptp_tx_tstamp_event(adapter);
		ack |= IGC_TSICR_TXTS;
	}

Loading