Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.

Upstream to 4.14.336 #31

Closed
wants to merge 26 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c138e2f
ARCH: arm64: configs: vendor: some changes
ghazzor Apr 26, 2024
1773b58
usb: gadget: Make old-style configfs disableable
Linux4 Feb 20, 2024
f28c17f
drivers: gpu: arm: update from P615XXS7FXA1
Fede2782 May 5, 2024
d51014d
build_kernel.sh: Use LLVM's NM, OBJCOPY
Royna2544 May 11, 2024
f47340e
ARM64: configs: grass: Keep old configfs for oneui
Royna2544 May 11, 2024
157d49a
kernel: sched: update from P615XXS7FXA1
Fede2782 May 12, 2024
e06700f
hwrng: exysdw-rng: Update from P615XXS7FWK1
Fede2782 May 12, 2024
4aaa61a
Merge commit 'e48d946c2d838f5bb241d3b77638fb772a64f3cc' into Grass-Un…
Royna2544 May 12, 2024
1e2309e
driver: media: platform: exynos: Update from P615XXU7FWH7
Fede2782 May 12, 2024
77fe632
linux: nl80211: update from A515FXXU7HWF1
Fede2782 May 12, 2024
5d74cd5
KernelSU: Update release tag to v0.9.3
github-actions[bot] Apr 27, 2024
5fbc0be
KernelSU: Update release tag to v0.9.4
github-actions[bot] May 15, 2024
17a3a63
Merge tag 'v4.14.265' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
7554d18
Merge tag 'v4.14.270' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
acc7fee
Merge tag 'v4.14.271' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
4d404a6
Merge tag 'v4.14.272' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
1d8ef7c
Merge tag 'v4.14.273' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
4fe8cf0
Merge tag 'v4.14.274' of https://git.kernel.org/pub/scm/linux/kernel/…
onettboots Mar 28, 2024
67f282d
.github/workflows: Build kernel automatic
cat658011 May 18, 2024
a5c7548
Merge tag 'ASB-2022-09-05_4.14-q' into Grass-Unified
cat658011 May 18, 2024
5f82f24
Merge tag 'ASB-2022-10-01_4.14-q' into Grass-Unified
cat658011 May 18, 2024
321d185
Merge tag 'v4.14.300' into Grass-Unified
cat658011 May 18, 2024
e638764
Merge tag 'v4.14.320' into Grass-Unified
cat658011 May 18, 2024
a5b214a
Merge tag 'v4.14.326' into Grass-Unified
cat658011 May 19, 2024
31f027d
Merge tag 'v4.14.330' into Grass-Unified
cat658011 May 19, 2024
7a46622
Merge tag 'v4.14.336' into Grass-Unified
cat658011 May 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
…git/stable/linux into upstream

This is the 4.14.272 stable release
  • Loading branch information
onettboots authored and Cat658011 committed May 19, 2024

Verified

This commit was signed with the committer’s verified signature.
cat658011 Sans NaP2
commit 4d404a6dac5331ba15dc179e71f7bf646205a086
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 271
SUBLEVEL = 272
EXTRAVERSION =
NAME = Petit Gorille

Expand Down
6 changes: 6 additions & 0 deletions arch/arm/include/asm/spectre.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,13 @@ enum {
SPECTRE_V2_METHOD_LOOP8 = BIT(__SPECTRE_V2_METHOD_LOOP8),
};

#ifdef CONFIG_GENERIC_CPU_VULNERABILITIES
void spectre_v2_update_state(unsigned int state, unsigned int methods);
#else
static inline void spectre_v2_update_state(unsigned int state,
unsigned int methods)
{}
#endif

int spectre_bhb_update_vectors(unsigned int method);

Expand Down
4 changes: 2 additions & 2 deletions arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -1071,9 +1071,9 @@ vector_bhb_loop8_\name:

@ bhb workaround
mov r0, #8
1: b . + 4
3: b . + 4
subs r0, r0, #1
bne 1b
bne 3b
dsb
isb
b 2b
Expand Down
24 changes: 19 additions & 5 deletions drivers/gpio/gpio-ts4900.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* Digital I/O driver for Technologic Systems I2C FPGA Core
*
* Copyright (C) 2015 Technologic Systems
* Copyright (C) 2015, 2018 Technologic Systems
* Copyright (C) 2016 Savoir-Faire Linux
*
* This program is free software; you can redistribute it and/or
Expand Down Expand Up @@ -52,19 +52,33 @@ static int ts4900_gpio_direction_input(struct gpio_chip *chip,
{
struct ts4900_gpio_priv *priv = gpiochip_get_data(chip);

/*
* This will clear the output enable bit, the other bits are
* dontcare when this is cleared
/* Only clear the OE bit here, requires a RMW. Prevents potential issue
* with OE and data getting to the physical pin at different times.
*/
return regmap_write(priv->regmap, offset, 0);
return regmap_update_bits(priv->regmap, offset, TS4900_GPIO_OE, 0);
}

static int ts4900_gpio_direction_output(struct gpio_chip *chip,
unsigned int offset, int value)
{
struct ts4900_gpio_priv *priv = gpiochip_get_data(chip);
unsigned int reg;
int ret;

/* If changing from an input to an output, we need to first set the
* proper data bit to what is requested and then set OE bit. This
* prevents a glitch that can occur on the IO line
*/
regmap_read(priv->regmap, offset, &reg);
if (!(reg & TS4900_GPIO_OE)) {
if (value)
reg = TS4900_GPIO_OUT;
else
reg &= ~TS4900_GPIO_OUT;

regmap_write(priv->regmap, offset, reg);
}

if (value)
ret = regmap_write(priv->regmap, offset, TS4900_GPIO_OE |
TS4900_GPIO_OUT);
Expand Down
5 changes: 4 additions & 1 deletion drivers/net/ethernet/nxp/lpc_eth.c
Original file line number Diff line number Diff line change
Expand Up @@ -1512,6 +1512,7 @@ static int lpc_eth_drv_resume(struct platform_device *pdev)
{
struct net_device *ndev = platform_get_drvdata(pdev);
struct netdata_local *pldat;
int ret;

if (device_may_wakeup(&pdev->dev))
disable_irq_wake(ndev->irq);
Expand All @@ -1521,7 +1522,9 @@ static int lpc_eth_drv_resume(struct platform_device *pdev)
pldat = netdev_priv(ndev);

/* Enable interface clock */
clk_enable(pldat->clk);
ret = clk_enable(pldat->clk);
if (ret)
return ret;

/* Reset and initialize */
__lpc_eth_reset(pldat);
Expand Down
18 changes: 11 additions & 7 deletions drivers/net/ethernet/qlogic/qed/qed_sriov.c
Original file line number Diff line number Diff line change
Expand Up @@ -3782,19 +3782,19 @@ bool qed_iov_mark_vf_flr(struct qed_hwfn *p_hwfn, u32 *p_disabled_vfs)
return found;
}

static void qed_iov_get_link(struct qed_hwfn *p_hwfn,
u16 vfid,
struct qed_mcp_link_params *p_params,
struct qed_mcp_link_state *p_link,
struct qed_mcp_link_capabilities *p_caps)
static int qed_iov_get_link(struct qed_hwfn *p_hwfn,
u16 vfid,
struct qed_mcp_link_params *p_params,
struct qed_mcp_link_state *p_link,
struct qed_mcp_link_capabilities *p_caps)
{
struct qed_vf_info *p_vf = qed_iov_get_vf_info(p_hwfn,
vfid,
false);
struct qed_bulletin_content *p_bulletin;

if (!p_vf)
return;
return -EINVAL;

p_bulletin = p_vf->bulletin.p_virt;

Expand All @@ -3804,6 +3804,7 @@ static void qed_iov_get_link(struct qed_hwfn *p_hwfn,
__qed_vf_get_link_state(p_hwfn, p_link, p_bulletin);
if (p_caps)
__qed_vf_get_link_caps(p_hwfn, p_caps, p_bulletin);
return 0;
}

static void qed_iov_process_mbx_req(struct qed_hwfn *p_hwfn,
Expand Down Expand Up @@ -4554,6 +4555,7 @@ static int qed_get_vf_config(struct qed_dev *cdev,
struct qed_public_vf_info *vf_info;
struct qed_mcp_link_state link;
u32 tx_rate;
int ret;

/* Sanitize request */
if (IS_VF(cdev))
Expand All @@ -4567,7 +4569,9 @@ static int qed_get_vf_config(struct qed_dev *cdev,

vf_info = qed_iov_get_public_vf_info(hwfn, vf_id, true);

qed_iov_get_link(hwfn, vf_id, NULL, &link, NULL);
ret = qed_iov_get_link(hwfn, vf_id, NULL, &link, NULL);
if (ret)
return ret;

/* Fill information about VF */
ivi->vf = vf_id;
Expand Down
7 changes: 7 additions & 0 deletions drivers/net/ethernet/qlogic/qed/qed_vf.c
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,9 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn)
p_iov->bulletin.size,
&p_iov->bulletin.phys,
GFP_KERNEL);
if (!p_iov->bulletin.p_virt)
goto free_pf2vf_reply;

DP_VERBOSE(p_hwfn, QED_MSG_IOV,
"VF's bulletin Board [%p virt 0x%llx phys 0x%08x bytes]\n",
p_iov->bulletin.p_virt,
Expand Down Expand Up @@ -578,6 +581,10 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn)

return rc;

free_pf2vf_reply:
dma_free_coherent(&p_hwfn->cdev->pdev->dev,
sizeof(union pfvf_tlvs),
p_iov->pf2vf_reply, p_iov->pf2vf_reply_phys);
free_vf2pf_request:
dma_free_coherent(&p_hwfn->cdev->pdev->dev,
sizeof(union vfpf_tlvs),
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/ethernet/ti/cpts.c
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,9 @@ int cpts_register(struct cpts *cpts)
for (i = 0; i < CPTS_MAX_EVENTS; i++)
list_add(&cpts->pool_data[i].list, &cpts->pool);

clk_enable(cpts->refclk);
err = clk_enable(cpts->refclk);
if (err)
return err;

cpts_write32(cpts, CPTS_EN, control);
cpts_write32(cpts, TS_PEND_EN, int_enable);
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/ethernet/xilinx/xilinx_emaclite.c
Original file line number Diff line number Diff line change
Expand Up @@ -1161,14 +1161,16 @@ static int xemaclite_of_probe(struct platform_device *ofdev)
if (rc) {
dev_err(dev,
"Cannot register network device, aborting\n");
goto error;
goto put_node;
}

dev_info(dev,
"Xilinx EmacLite at 0x%08X mapped to 0x%p, irq=%d\n",
(unsigned int __force)ndev->mem_start, lp->base_addr, ndev->irq);
return 0;

put_node:
of_node_put(lp->phy_node);
error:
free_netdev(ndev);
return rc;
Expand Down
13 changes: 5 additions & 8 deletions drivers/net/xen-netback/xenbus.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,7 @@ static void backend_disconnect(struct backend_info *be)
unsigned int queue_index;

xen_unregister_watchers(vif);
xenbus_rm(XBT_NIL, be->dev->nodename, "hotplug-status");
#ifdef CONFIG_DEBUG_FS
xenvif_debugfs_delif(vif);
#endif /* CONFIG_DEBUG_FS */
Expand Down Expand Up @@ -1043,15 +1044,11 @@ static void connect(struct backend_info *be)
xenvif_carrier_on(be->vif);

unregister_hotplug_status_watch(be);
if (xenbus_exists(XBT_NIL, dev->nodename, "hotplug-status")) {
err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch,
NULL, hotplug_status_changed,
"%s/%s", dev->nodename,
"hotplug-status");
if (err)
goto err;
err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, NULL,
hotplug_status_changed,
"%s/%s", dev->nodename, "hotplug-status");
if (!err)
be->have_hotplug_status_watch = 1;
}

netif_tx_wake_all_queues(be->vif->dev);

Expand Down
2 changes: 2 additions & 0 deletions drivers/nfc/port100.c
Original file line number Diff line number Diff line change
Expand Up @@ -1618,7 +1618,9 @@ static int port100_probe(struct usb_interface *interface,
nfc_digital_free_device(dev->nfc_digital_dev);

error:
usb_kill_urb(dev->in_urb);
usb_free_urb(dev->in_urb);
usb_kill_urb(dev->out_urb);
usb_free_urb(dev->out_urb);
usb_put_dev(dev->udev);

Expand Down
5 changes: 3 additions & 2 deletions drivers/staging/gdm724x/gdm_lte.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,15 @@ static void tx_complete(void *arg)

static int gdm_lte_rx(struct sk_buff *skb, struct nic *nic, int nic_type)
{
int ret;
int ret, len;

len = skb->len + ETH_HLEN;
ret = netif_rx_ni(skb);
if (ret == NET_RX_DROP) {
nic->stats.rx_dropped++;
} else {
nic->stats.rx_packets++;
nic->stats.rx_bytes += skb->len + ETH_HLEN;
nic->stats.rx_bytes += len;
}

return 0;
Expand Down
40 changes: 21 additions & 19 deletions drivers/virtio/virtio.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,11 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status)
}
EXPORT_SYMBOL_GPL(virtio_add_status);

int virtio_finalize_features(struct virtio_device *dev)
/* Do some validation, then set FEATURES_OK */
static int virtio_features_ok(struct virtio_device *dev)
{
int ret = dev->config->finalize_features(dev);
unsigned status;

if (ret)
return ret;

if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1))
return 0;

Expand All @@ -185,7 +182,6 @@ int virtio_finalize_features(struct virtio_device *dev)
}
return 0;
}
EXPORT_SYMBOL_GPL(virtio_finalize_features);

static int virtio_dev_probe(struct device *_d)
{
Expand Down Expand Up @@ -222,17 +218,6 @@ static int virtio_dev_probe(struct device *_d)
driver_features_legacy = driver_features;
}

/*
* Some devices detect legacy solely via F_VERSION_1. Write
* F_VERSION_1 to force LE config space accesses before FEATURES_OK for
* these when needed.
*/
if (drv->validate && !virtio_legacy_is_little_endian()
&& device_features & BIT_ULL(VIRTIO_F_VERSION_1)) {
dev->features = BIT_ULL(VIRTIO_F_VERSION_1);
dev->config->finalize_features(dev);
}

if (device_features & (1ULL << VIRTIO_F_VERSION_1))
dev->features = driver_features & device_features;
else
Expand All @@ -243,13 +228,26 @@ static int virtio_dev_probe(struct device *_d)
if (device_features & (1ULL << i))
__virtio_set_bit(dev, i);

err = dev->config->finalize_features(dev);
if (err)
goto err;

if (drv->validate) {
u64 features = dev->features;

err = drv->validate(dev);
if (err)
goto err;

/* Did validation change any features? Then write them again. */
if (features != dev->features) {
err = dev->config->finalize_features(dev);
if (err)
goto err;
}
}

err = virtio_finalize_features(dev);
err = virtio_features_ok(dev);
if (err)
goto err;

Expand Down Expand Up @@ -401,7 +399,11 @@ int virtio_device_restore(struct virtio_device *dev)
/* We have a driver! */
virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER);

ret = virtio_finalize_features(dev);
ret = dev->config->finalize_features(dev);
if (ret)
goto err;

ret = virtio_features_ok(dev);
if (ret)
goto err;

Expand Down
1 change: 1 addition & 0 deletions fs/btrfs/extent-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -8595,6 +8595,7 @@ struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
out_free_delayed:
btrfs_free_delayed_extent_op(extent_op);
out_free_buf:
btrfs_tree_unlock(buf);
free_extent_buffer(buf);
out_free_reserved:
btrfs_free_reserved_extent(fs_info, ins.objectid, ins.offset, 0);
Expand Down
5 changes: 5 additions & 0 deletions fs/ext4/resize.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ int ext4_resize_begin(struct super_block *sb)
return -EPERM;
}

if (ext4_has_feature_sparse_super2(sb)) {
ext4_msg(sb, KERN_ERR, "Online resizing not supported with sparse_super2");
return -EOPNOTSUPP;
}

if (test_and_set_bit_lock(EXT4_FLAGS_RESIZING,
&EXT4_SB(sb)->s_ext4_flags))
ret = -EBUSY;
Expand Down
4 changes: 2 additions & 2 deletions include/linux/mlx5/mlx5_ifc.h
Original file line number Diff line number Diff line change
Expand Up @@ -7953,8 +7953,8 @@ struct mlx5_ifc_bufferx_reg_bits {
u8 reserved_at_0[0x6];
u8 lossy[0x1];
u8 epsb[0x1];
u8 reserved_at_8[0xc];
u8 size[0xc];
u8 reserved_at_8[0x8];
u8 size[0x10];

u8 xoff_threshold[0x10];
u8 xon_threshold[0x10];
Expand Down
1 change: 0 additions & 1 deletion include/linux/virtio.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ void virtio_break_device(struct virtio_device *dev);
void virtio_config_changed(struct virtio_device *dev);
void virtio_config_disable(struct virtio_device *dev);
void virtio_config_enable(struct virtio_device *dev);
int virtio_finalize_features(struct virtio_device *dev);
#ifdef CONFIG_PM_SLEEP
int virtio_device_freeze(struct virtio_device *dev);
int virtio_device_restore(struct virtio_device *dev);
Expand Down
3 changes: 2 additions & 1 deletion include/linux/virtio_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@ struct irq_affinity;
* Returns the first 32 feature bits (all we currently need).
* @finalize_features: confirm what device features we'll be using.
* vdev: the virtio_device
* This gives the final feature bits for the device: it can change
* This sends the driver feature bits to the device: it can change
* the dev->feature bits if it wants.
* Note: despite the name this can be called any number of times.
* Returns 0 on success or error status
* @bus_name: return the bus name associated with the device
* vdev: the virtio_device
Expand Down
Loading