> -----Original Message----- > From: Richard Cochran <richardcochran@xxxxxxxxx> > Sent: Tuesday, March 14, 2023 2:50 AM > To: Zhang, Tianfei <tianfei.zhang@xxxxxxxxx> > Cc: netdev@xxxxxxxxxxxxxxx; linux-fpga@xxxxxxxxxxxxxxx; > ilpo.jarvinen@xxxxxxxxxxxxxxx; andriy.shevchenko@xxxxxxxxxxxxxxx; Weight, Russell H > <russell.h.weight@xxxxxxxxx>; matthew.gerlach@xxxxxxxxxxxxxxx; pierre- > louis.bossart@xxxxxxxxxxxxxxx; Gomes, Vinicius <vinicius.gomes@xxxxxxxxx>; > Khadatare, RaghavendraX Anand <raghavendrax.anand.khadatare@xxxxxxxxx> > Subject: Re: [PATCH v1] ptp: add ToD device driver for Intel FPGA cards > > On Sun, Mar 12, 2023 at 11:02:39PM -0400, Tianfei Zhang wrote: > > > > +static int dfl_tod_probe(struct dfl_device *ddev) { > > + struct device *dev = &ddev->dev; > > + struct dfl_tod *dt; > > + > > + dt = devm_kzalloc(dev, sizeof(*dt), GFP_KERNEL); > > + if (!dt) > > + return -ENOMEM; > > + > > + dt->tod_ctrl = devm_ioremap_resource(dev, &ddev->mmio_res); > > + if (IS_ERR(dt->tod_ctrl)) > > + return PTR_ERR(dt->tod_ctrl); > > + > > + dt->dev = dev; > > + spin_lock_init(&dt->tod_lock); > > + dev_set_drvdata(dev, dt); > > + > > + dt->ptp_clock_ops = dfl_tod_clock_ops; > > + > > + dt->ptp_clock = ptp_clock_register(&dt->ptp_clock_ops, dev); > > + if (IS_ERR(dt->ptp_clock)) > > + return dev_err_probe(dt->dev, PTR_ERR(dt->ptp_clock), > > + "Unable to register PTP clock\n"); > > Need to handle NULL as well... It looks like that it doesn't need check NULL for ptp_clock_register(), it handle the NULL case internally and return ERR_PTR(-ENOMEM). struct ptp_clock *ptp_clock_register() { err = -ENOMEM; ptp = kzalloc(sizeof(struct ptp_clock), GFP_KERNEL); if (ptp == NULL) goto no_memory; ... return ptp; no_memory: return ERR_PTR(err); }