On Wed, Mar 11, 2026 at 11:54:55AM -0700, Rosen Penev wrote: > On Wed, Mar 11, 2026 at 7:47 AM Greg Kroah-Hartman > <[email protected]> wrote: > > > > On Fri, Mar 06, 2026 at 02:21:48PM -0800, Rosen Penev wrote: > > > Change kzalloc + kcalloc to just kzalloc with a flexible array member. > > > > > > Add __counted_by for extra runtime analysis when requested. > > > > > > Shuffle some code in probe to provide a clearer picture. > > > > > > Signed-off-by: Rosen Penev <[email protected]> > > > --- > > > .../typec/tcpm/qcom/qcom_pmic_typec_pdphy.c | 27 ++++++++----------- > > > .../typec/tcpm/qcom/qcom_pmic_typec_port.c | 26 ++++++++---------- > > > 2 files changed, 22 insertions(+), 31 deletions(-) > > > > > > diff --git a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c > > > b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c > > > index c8b1463e6e8b..4b3915c6894a 100644 > > > --- a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c > > > +++ b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c > > > @@ -95,13 +95,13 @@ struct pmic_typec_pdphy { > > > struct regmap *regmap; > > > u32 base; > > > > > > - unsigned int nr_irqs; > > > - struct pmic_typec_pdphy_irq_data *irq_data; > > > - > > > struct work_struct reset_work; > > > struct work_struct receive_work; > > > struct regulator *vdd_pdphy; > > > spinlock_t lock; /* Register > > > atomicity */ > > > + > > > + unsigned int nr_irqs; > > > + struct pmic_typec_pdphy_irq_data irq_data[] > > > __counted_by(nr_irqs); > > > }; > > > > > > static void qcom_pmic_typec_pdphy_reset_on(struct pmic_typec_pdphy > > > *pmic_typec_pdphy) > > > @@ -560,31 +560,26 @@ int qcom_pmic_typec_pdphy_probe(struct > > > platform_device *pdev, > > > struct pmic_typec_pdphy_irq_data *irq_data; > > > int i, ret, irq; > > > > > > - pmic_typec_pdphy = devm_kzalloc(dev, sizeof(*pmic_typec_pdphy), > > > GFP_KERNEL); > > > - if (!pmic_typec_pdphy) > > > - return -ENOMEM; > > > - > > > if (!res->nr_irqs || res->nr_irqs > PMIC_PDPHY_MAX_IRQS) > > > return -EINVAL; > > > > > > - irq_data = devm_kcalloc(dev, res->nr_irqs, sizeof(*irq_data), > > > - GFP_KERNEL); > > > - if (!irq_data) > > > + pmic_typec_pdphy = devm_kzalloc(dev, struct_size(pmic_typec_pdphy, > > > irq_data, res->nr_irqs), GFP_KERNEL); > > > > extra long line, checkpatch.pl didn't complain about this? > > > > > + if (!pmic_typec_pdphy) > > > return -ENOMEM; > > > > > > + pmic_typec_pdphy->nr_irqs = res->nr_irqs; > > > + pmic_typec_pdphy->dev = dev; > > > + pmic_typec_pdphy->base = base; > > > + pmic_typec_pdphy->regmap = regmap; > > > pmic_typec_pdphy->vdd_pdphy = devm_regulator_get(dev, "vdd-pdphy"); > > > if (IS_ERR(pmic_typec_pdphy->vdd_pdphy)) > > > return PTR_ERR(pmic_typec_pdphy->vdd_pdphy); > > > > > > - pmic_typec_pdphy->dev = dev; > > > - pmic_typec_pdphy->base = base; > > > - pmic_typec_pdphy->regmap = regmap; > > > - pmic_typec_pdphy->nr_irqs = res->nr_irqs; > > > - pmic_typec_pdphy->irq_data = irq_data; > > > spin_lock_init(&pmic_typec_pdphy->lock); > > > INIT_WORK(&pmic_typec_pdphy->reset_work, > > > qcom_pmic_typec_pdphy_sig_reset_work); > > > > > > - for (i = 0; i < res->nr_irqs; i++, irq_data++) { > > > + for (i = 0; i < res->nr_irqs; i++) { > > > + irq_data = &pmic_typec_pdphy->irq_data[i]; > > > irq = platform_get_irq_byname(pdev, > > > res->irq_params[i].irq_name); > > > if (irq < 0) > > > return irq; > > > diff --git a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c > > > b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c > > > index 8051eaa46991..7c5cf8061f04 100644 > > > --- a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c > > > +++ b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c > > > > Can you just convert one driver at a time please? This should be a > > patch series. > This is not the same driver?
It's two different files, with two different structure allocations, so I assumed it was two different ones. Either way, it should be two different patches :) thanks, greg k-h

