All patches automatically rebased.
Build system: x86_64
Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod
Signed-off-by: John Audia <therealgraysky@proton.me>
-LINUX_VERSION-5.15 = .106
-LINUX_KERNEL_HASH-5.15.106 = 84e6934f828033570966e2a56fe8b72dc6e1409be296c66f4bf3c8ca6e3c8fe4
+LINUX_VERSION-5.15 = .107
+LINUX_KERNEL_HASH-5.15.107 = 19370e769045681f52cceedb14ecda97e89b1b058133a0c8ad45d35ffbc5afa8
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1618,6 +1618,109 @@ command_cleanup:
+@@ -1622,6 +1622,109 @@ command_cleanup:
}
/*
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5457,6 +5560,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5461,6 +5564,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
}
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -876,8 +876,8 @@ static void xhci_clear_command_ring(stru
+@@ -880,8 +880,8 @@ static void xhci_clear_command_ring(stru
seg = ring->deq_seg;
do {
memset(seg->trbs, 0,
cpu_to_le32(~TRB_CYCLE);
seg = seg->next;
} while (seg != ring->deq_seg);
-@@ -888,7 +888,7 @@ static void xhci_clear_command_ring(stru
+@@ -892,7 +892,7 @@ static void xhci_clear_command_ring(stru
ring->enq_seg = ring->deq_seg;
ring->enqueue = ring->dequeue;
/* called during probe() after chip reset completes */
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -157,6 +157,49 @@ int xhci_start(struct xhci_hcd *xhci)
+@@ -158,6 +158,49 @@ int xhci_start(struct xhci_hcd *xhci)
return ret;
}
/*
* Reset a halted HC.
*
-@@ -607,10 +650,20 @@ static int xhci_init(struct usb_hcd *hcd
+@@ -611,10 +654,20 @@ static int xhci_init(struct usb_hcd *hcd
static int xhci_run_finished(struct xhci_hcd *xhci)
{
xhci->shared_hcd->state = HC_STATE_RUNNING;
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
-@@ -620,6 +673,10 @@ static int xhci_run_finished(struct xhci
+@@ -624,6 +677,10 @@ static int xhci_run_finished(struct xhci
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB3 roothub");
return 0;
mem_cgroup_id_remove(memcg);
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -4778,6 +4778,27 @@ static inline void mm_account_fault(stru
+@@ -4792,6 +4792,27 @@ static inline void mm_account_fault(stru
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address);
}
/*
* By the time we get here, we already hold the mm semaphore
*
-@@ -4809,11 +4830,15 @@ vm_fault_t handle_mm_fault(struct vm_are
+@@ -4823,11 +4844,15 @@ vm_fault_t handle_mm_fault(struct vm_are
if (flags & FAULT_FLAG_USER)
mem_cgroup_enter_user_fault();
mark_page_accessed(page);
}
rss[mm_counter(page)]--;
-@@ -4781,8 +4781,8 @@ static inline void mm_account_fault(stru
+@@ -4795,8 +4795,8 @@ static inline void mm_account_fault(stru
#ifdef CONFIG_LRU_GEN
static void lru_gen_enter_fault(struct vm_area_struct *vma)
{
stmmac_clear_tx_descriptors(priv, queue);
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
-@@ -7407,6 +7402,25 @@ int stmmac_suspend(struct device *dev)
+@@ -7411,6 +7406,25 @@ int stmmac_suspend(struct device *dev)
}
EXPORT_SYMBOL_GPL(stmmac_suspend);
/**
* stmmac_reset_queues_param - reset queue parameters
* @priv: device pointer
-@@ -7417,22 +7431,11 @@ static void stmmac_reset_queues_param(st
+@@ -7421,22 +7435,11 @@ static void stmmac_reset_queues_param(st
u32 tx_cnt = priv->plat->tx_queues_to_use;
u32 queue;
ch = &priv->channel[queue];
if (!rx_q->xsk_pool && !tx_q->xsk_pool)
-@@ -6914,8 +6918,8 @@ int stmmac_reinit_ringparam(struct net_d
+@@ -6918,8 +6922,8 @@ int stmmac_reinit_ringparam(struct net_d
if (netif_running(dev))
stmmac_release(dev);
if (netif_running(dev))
ret = stmmac_open(dev);
-@@ -7353,7 +7357,7 @@ int stmmac_suspend(struct device *dev)
+@@ -7357,7 +7361,7 @@ int stmmac_suspend(struct device *dev)
stmmac_disable_all_queues(priv);
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
if (priv->eee_enabled) {
priv->tx_path_in_lpi_mode = false;
-@@ -7404,7 +7408,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
+@@ -7408,7 +7412,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
{
rx_q->cur_rx = 0;
rx_q->dirty_rx = 0;
-@@ -7412,7 +7416,7 @@ static void stmmac_reset_rx_queue(struct
+@@ -7416,7 +7420,7 @@ static void stmmac_reset_rx_queue(struct
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
{
dma_desc_error:
return ret;
}
-@@ -7499,7 +7615,7 @@ int stmmac_resume(struct device *dev)
+@@ -7503,7 +7619,7 @@ int stmmac_resume(struct device *dev)
stmmac_reset_queues_param(priv);
stmmac_free_tx_skbufs(priv);
if (!pe)
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
-@@ -3962,6 +3962,8 @@ static const struct seq_operations vmall
+@@ -3964,6 +3964,8 @@ static const struct seq_operations vmall
static int __init proc_vmalloc_init(void)
{