I mean this is the kernel implementation of devm_kmemdup() function in /driver/base/devres.c. Henry -----Original Message----- From: Guenter Roeck <groeck7@xxxxxxxxx> On Behalf Of Guenter Roeck Sent: Tuesday, August 8, 2023 3:36 PM To: Huibin Shi <henrys@xxxxxxxxxxxxxxx>; Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>; Henry Shi <henryshi2018@xxxxxxxxx>; hbshi69@xxxxxxxxxxx; tglx@xxxxxxxxxxxxx; mingo@xxxxxxxxxx; bp@xxxxxxxxx; dave.hansen@xxxxxxxxxxxxxxx; x86@xxxxxxxxxx; hpa@xxxxxxxxx; hdegoede@xxxxxxxxxx; markgross@xxxxxxxxxx; jdelvare@xxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; platform-driver-x86@xxxxxxxxxxxxxxx; linux-hwmon@xxxxxxxxxxxxxxx Cc: hb_shi2003@xxxxxxxxx; Wen Wang <wenw@xxxxxxxxxxxxxxx> Subject: Re: [PATCH] Add Silicom Platform Driver Caution: This is an external email. Please take care when clicking links or opening attachments. On 8/8/23 12:19, Huibin Shi wrote: > Guenter, > > Here is the implementation of devm_kmemdup(), *src is the extra > argument > > void *devm_kmemdup(struct device *dev, const void *src, size_t len, > gfp_t gfp) { > void *p; > > p = devm_kmalloc(dev, len, gfp); > if (p) > memcpy(p, src, len); > > return p; > } > So you don't want to use devm_kmemdup() because of its 'src' argument, and instead re-implement it locally by using devm_kzalloc() followed by memcpy() ? Really ? Guenter