Merge f4381ccf1e ("ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin") into android15-6.6-lts

Steps on the way to 6.6.59

Change-Id: I8e456c3b03cbab036979e5275b073744b5c0f15e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2024-11-29 12:36:40 +00:00
commit 4cea1eb0fb
13 changed files with 55 additions and 29 deletions

View File

@ -77,7 +77,7 @@
}; };
&hdmi { &hdmi {
hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>;
power-domains = <&power RPI_POWER_DOMAIN_HDMI>; power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
status = "okay"; status = "okay";
}; };

View File

@ -27,10 +27,10 @@
* hardware. The allocated bandwidth percentage is rounded to the next * hardware. The allocated bandwidth percentage is rounded to the next
* control step available on the hardware. * control step available on the hardware.
*/ */
static bool bw_validate(char *buf, unsigned long *data, struct rdt_resource *r) static bool bw_validate(char *buf, u32 *data, struct rdt_resource *r)
{ {
unsigned long bw;
int ret; int ret;
u32 bw;
/* /*
* Only linear delay values is supported for current Intel SKUs. * Only linear delay values is supported for current Intel SKUs.
@ -40,16 +40,21 @@ static bool bw_validate(char *buf, unsigned long *data, struct rdt_resource *r)
return false; return false;
} }
ret = kstrtoul(buf, 10, &bw); ret = kstrtou32(buf, 10, &bw);
if (ret) { if (ret) {
rdt_last_cmd_printf("Non-decimal digit in MB value %s\n", buf); rdt_last_cmd_printf("Invalid MB value %s\n", buf);
return false; return false;
} }
if ((bw < r->membw.min_bw || bw > r->default_ctrl) && /* Nothing else to do if software controller is enabled. */
!is_mba_sc(r)) { if (is_mba_sc(r)) {
rdt_last_cmd_printf("MB value %ld out of range [%d,%d]\n", bw, *data = bw;
r->membw.min_bw, r->default_ctrl); return true;
}
if (bw < r->membw.min_bw || bw > r->default_ctrl) {
rdt_last_cmd_printf("MB value %u out of range [%d,%d]\n",
bw, r->membw.min_bw, r->default_ctrl);
return false; return false;
} }
@ -63,7 +68,7 @@ int parse_bw(struct rdt_parse_data *data, struct resctrl_schema *s,
struct resctrl_staged_config *cfg; struct resctrl_staged_config *cfg;
u32 closid = data->rdtgrp->closid; u32 closid = data->rdtgrp->closid;
struct rdt_resource *r = s->res; struct rdt_resource *r = s->res;
unsigned long bw_val; u32 bw_val;
cfg = &d->staged_config[s->conf_type]; cfg = &d->staged_config[s->conf_type];
if (cfg->have_new_ctrl) { if (cfg->have_new_ctrl) {

View File

@ -1061,11 +1061,21 @@ static int amd_pstate_register_driver(int mode)
return -EINVAL; return -EINVAL;
cppc_state = mode; cppc_state = mode;
ret = amd_pstate_enable(true);
if (ret) {
pr_err("failed to enable cppc during amd-pstate driver registration, return %d\n",
ret);
amd_pstate_driver_cleanup();
return ret;
}
ret = cpufreq_register_driver(current_pstate_driver); ret = cpufreq_register_driver(current_pstate_driver);
if (ret) { if (ret) {
amd_pstate_driver_cleanup(); amd_pstate_driver_cleanup();
return ret; return ret;
} }
return 0; return 0;
} }

View File

@ -1219,7 +1219,8 @@ static int bma400_activity_event_en(struct bma400_data *data,
static int bma400_tap_event_en(struct bma400_data *data, static int bma400_tap_event_en(struct bma400_data *data,
enum iio_event_direction dir, int state) enum iio_event_direction dir, int state)
{ {
unsigned int mask, field_value; unsigned int mask;
unsigned int field_value = 0;
int ret; int ret;
/* /*

View File

@ -269,6 +269,8 @@ rdma_find_ndev_for_src_ip_rcu(struct net *net, const struct sockaddr *src_in)
break; break;
#endif #endif
} }
if (!ret && dev && is_vlan_dev(dev))
dev = vlan_dev_real_dev(dev);
return ret ? ERR_PTR(ret) : dev; return ret ? ERR_PTR(ret) : dev;
} }

View File

@ -176,8 +176,11 @@ static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev, u8 wqe_mode)
bnxt_re_set_db_offset(rdev); bnxt_re_set_db_offset(rdev);
rc = bnxt_qplib_map_db_bar(&rdev->qplib_res); rc = bnxt_qplib_map_db_bar(&rdev->qplib_res);
if (rc) if (rc) {
kfree(rdev->chip_ctx);
rdev->chip_ctx = NULL;
return rc; return rc;
}
if (bnxt_qplib_determine_atomics(en_dev->pdev)) if (bnxt_qplib_determine_atomics(en_dev->pdev))
ibdev_info(&rdev->ibdev, ibdev_info(&rdev->ibdev,

View File

@ -169,7 +169,7 @@ struct bnxt_qplib_swqe {
}; };
u32 q_key; u32 q_key;
u32 dst_qp; u32 dst_qp;
u16 avid; u32 avid;
} send; } send;
/* Send Raw Ethernet and QP1 */ /* Send Raw Ethernet and QP1 */

View File

@ -244,6 +244,8 @@ int bnxt_qplib_alloc_init_hwq(struct bnxt_qplib_hwq *hwq,
sginfo.pgsize = npde * pg_size; sginfo.pgsize = npde * pg_size;
sginfo.npages = 1; sginfo.npages = 1;
rc = __alloc_pbl(res, &hwq->pbl[PBL_LVL_0], &sginfo); rc = __alloc_pbl(res, &hwq->pbl[PBL_LVL_0], &sginfo);
if (rc)
goto fail;
/* Alloc PBL pages */ /* Alloc PBL pages */
sginfo.npages = npbl; sginfo.npages = npbl;

View File

@ -5931,11 +5931,6 @@ enum {
BPF_F_MARK_ENFORCE = (1ULL << 6), BPF_F_MARK_ENFORCE = (1ULL << 6),
}; };
/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
enum {
BPF_F_INGRESS = (1ULL << 0),
};
/* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */ /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
enum { enum {
BPF_F_TUNINFO_IPV6 = (1ULL << 0), BPF_F_TUNINFO_IPV6 = (1ULL << 0),
@ -6082,10 +6077,12 @@ enum {
BPF_F_BPRM_SECUREEXEC = (1ULL << 0), BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
}; };
/* Flags for bpf_redirect_map helper */ /* Flags for bpf_redirect and bpf_redirect_map helpers */
enum { enum {
BPF_F_BROADCAST = (1ULL << 3), BPF_F_INGRESS = (1ULL << 0), /* used for skb path */
BPF_F_EXCLUDE_INGRESS = (1ULL << 4), BPF_F_BROADCAST = (1ULL << 3), /* used for XDP path */
BPF_F_EXCLUDE_INGRESS = (1ULL << 4), /* used for XDP path */
#define BPF_F_REDIRECT_FLAGS (BPF_F_INGRESS | BPF_F_BROADCAST | BPF_F_EXCLUDE_INGRESS)
}; };
#define __bpf_md_ptr(type, name) \ #define __bpf_md_ptr(type, name) \

View File

@ -8436,6 +8436,7 @@ int bpf_core_apply(struct bpf_core_ctx *ctx, const struct bpf_core_relo *relo,
if (!type) { if (!type) {
bpf_log(ctx->log, "relo #%u: bad type id %u\n", bpf_log(ctx->log, "relo #%u: bad type id %u\n",
relo_idx, relo->type_id); relo_idx, relo->type_id);
kfree(specs);
return -EINVAL; return -EINVAL;
} }

View File

@ -322,9 +322,11 @@ static int dev_map_hash_get_next_key(struct bpf_map *map, void *key,
static int dev_map_bpf_prog_run(struct bpf_prog *xdp_prog, static int dev_map_bpf_prog_run(struct bpf_prog *xdp_prog,
struct xdp_frame **frames, int n, struct xdp_frame **frames, int n,
struct net_device *dev) struct net_device *tx_dev,
struct net_device *rx_dev)
{ {
struct xdp_txq_info txq = { .dev = dev }; struct xdp_txq_info txq = { .dev = tx_dev };
struct xdp_rxq_info rxq = { .dev = rx_dev };
struct xdp_buff xdp; struct xdp_buff xdp;
int i, nframes = 0; int i, nframes = 0;
@ -335,6 +337,7 @@ static int dev_map_bpf_prog_run(struct bpf_prog *xdp_prog,
xdp_convert_frame_to_buff(xdpf, &xdp); xdp_convert_frame_to_buff(xdpf, &xdp);
xdp.txq = &txq; xdp.txq = &txq;
xdp.rxq = &rxq;
act = bpf_prog_run_xdp(xdp_prog, &xdp); act = bpf_prog_run_xdp(xdp_prog, &xdp);
switch (act) { switch (act) {
@ -349,7 +352,7 @@ static int dev_map_bpf_prog_run(struct bpf_prog *xdp_prog,
bpf_warn_invalid_xdp_action(NULL, xdp_prog, act); bpf_warn_invalid_xdp_action(NULL, xdp_prog, act);
fallthrough; fallthrough;
case XDP_ABORTED: case XDP_ABORTED:
trace_xdp_exception(dev, xdp_prog, act); trace_xdp_exception(tx_dev, xdp_prog, act);
fallthrough; fallthrough;
case XDP_DROP: case XDP_DROP:
xdp_return_frame_rx_napi(xdpf); xdp_return_frame_rx_napi(xdpf);
@ -377,7 +380,7 @@ static void bq_xmit_all(struct xdp_dev_bulk_queue *bq, u32 flags)
} }
if (bq->xdp_prog) { if (bq->xdp_prog) {
to_send = dev_map_bpf_prog_run(bq->xdp_prog, bq->q, cnt, dev); to_send = dev_map_bpf_prog_run(bq->xdp_prog, bq->q, cnt, dev, bq->dev_rx);
if (!to_send) if (!to_send)
goto out; goto out;
} }

View File

@ -3013,7 +3013,7 @@ config RUST_BUILD_ASSERT_ALLOW
bool "Allow unoptimized build-time assertions" bool "Allow unoptimized build-time assertions"
depends on RUST depends on RUST
help help
Controls how are `build_error!` and `build_assert!` handled during build. Controls how `build_error!` and `build_assert!` are handled during the build.
If calls to them exist in the binary, it may indicate a violated invariant If calls to them exist in the binary, it may indicate a violated invariant
or that the optimizer failed to verify the invariant during compilation. or that the optimizer failed to verify the invariant during compilation.

View File

@ -2431,9 +2431,9 @@ out:
/* Internal, non-exposed redirect flags. */ /* Internal, non-exposed redirect flags. */
enum { enum {
BPF_F_NEIGH = (1ULL << 1), BPF_F_NEIGH = (1ULL << 16),
BPF_F_PEER = (1ULL << 2), BPF_F_PEER = (1ULL << 17),
BPF_F_NEXTHOP = (1ULL << 3), BPF_F_NEXTHOP = (1ULL << 18),
#define BPF_F_REDIRECT_INTERNAL (BPF_F_NEIGH | BPF_F_PEER | BPF_F_NEXTHOP) #define BPF_F_REDIRECT_INTERNAL (BPF_F_NEIGH | BPF_F_PEER | BPF_F_NEXTHOP)
}; };
@ -2443,6 +2443,8 @@ BPF_CALL_3(bpf_clone_redirect, struct sk_buff *, skb, u32, ifindex, u64, flags)
struct sk_buff *clone; struct sk_buff *clone;
int ret; int ret;
BUILD_BUG_ON(BPF_F_REDIRECT_INTERNAL & BPF_F_REDIRECT_FLAGS);
if (unlikely(flags & (~(BPF_F_INGRESS) | BPF_F_REDIRECT_INTERNAL))) if (unlikely(flags & (~(BPF_F_INGRESS) | BPF_F_REDIRECT_INTERNAL)))
return -EINVAL; return -EINVAL;