16 Sep
2021
16 Sep
'21
5:02 p.m.
Thanks Pierre,
On 15/09/2021 16:47, Pierre-Louis Bossart wrote:
+gpr_port_t *gpr_alloc_port(struct apr_device *gdev, struct device *dev,
gpr_port_cb cb, void *priv)
+{
- struct packet_router *pr = dev_get_drvdata(gdev->dev.parent);
- gpr_port_t *port;
- struct pkt_router_svc *svc;
- int id;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
- if (!port)
return ERR_PTR(-ENOMEM);
- svc = port;
- svc->callback = cb;
- svc->pr = pr;
- svc->priv = priv;
- svc->dev = dev;
- spin_lock_init(&svc->lock);
- spin_lock(&pr->svcs_lock);
- id = idr_alloc_cyclic(&pr->svcs_idr, svc, GPR_DYNAMIC_PORT_START,
GPR_DYNAMIC_PORT_END, GFP_ATOMIC);
- if (id < 0) {
dev_err(dev, "Unable to allocate dynamic GPR src port\n");
kfree(port);
spin_unlock(&pr->svcs_lock);
return ERR_PTR(-ENOMEM);
- }
- svc->id = id;
- spin_unlock(&pr->svcs_lock);
- dev_info(dev, "Adding GPR src port (%x)\n", svc->id);
nit-pick: isn't this a bit verbose?
Yes, Its now removed.
- return port;
+} +EXPORT_SYMBOL_GPL(gpr_alloc_port);
+struct gpr_pkt {
- struct gpr_hdr hdr;
- uint32_t payload[0];
+};
looks like a zero-length array?
looks like I missed this one, its fixed now.
--srini
should this be
struct gpr_pkt { struct gpr_hdr hdr; uint32_t payload[]; };
?