[PATCH net-next v3 09/13] net: lan966x: add PCIe FDMA support
Paolo Abeni
pabeni at redhat.com
Thu May 7 01:54:32 PDT 2026
On 5/4/26 4:23 PM, Daniel Machon wrote:
> +static int lan966x_fdma_pci_rx_check_frame(struct lan966x_rx *rx, u64 *src_port)
> +{
> + struct lan966x *lan966x = rx->lan966x;
> + struct fdma *fdma = &rx->fdma;
> + struct lan966x_port *port;
> + struct fdma_db *db;
> + void *virt_addr;
> + u32 blockl;
> +
> + /* virt_addr points to the IFH. */
> + virt_addr = fdma_dataptr_virt_addr_contiguous(fdma,
> + fdma->dcb_index,
> + fdma->db_index);
> +
> + lan966x_ifh_get_src_port(virt_addr, src_port);
> +
> + if (WARN_ON(*src_port >= lan966x->num_phys_ports))
> + return FDMA_ERROR;
> +
> + port = lan966x->ports[*src_port];
> + if (!port)
> + return FDMA_ERROR;
> +
> + db = fdma_db_next_get(fdma);
> +
> + /* BLOCKL is a 16-bit HW-populated field; reject obviously-bad
> + * values before they feed memcpy/XDP sizes.
> + */
> + blockl = FDMA_DCB_STATUS_BLOCKL(db->status);
> + if (blockl < IFH_LEN_BYTES + ETH_FCS_LEN || blockl > fdma->db_size)
> + return FDMA_ERROR;
Pre-existing issues reported by sashiko (most of them actually) can be
safely ignored/postponed to follow-ups, but the above OOB (and in patch
11/13) access looks real and IMHO should be addressed.
/P
More information about the linux-arm-kernel
mailing list