On 2022/7/4 21:49, Jason Gunthorpe wrote: >> +static const struct { >> + char *name; > const char * > I will fix it in v2. >> + ret = hns_roce_cmq_send(hr_dev, &desc, 1); >> + if (ret) { >> + dev_err(hr_dev->dev, >> + "failed to execute cmd to read gmv, ret = %d.\n", ret); >> + return ret; > Shouldn't all these prints use the IB version of the loggers? > Some types of interrupts may be generated before the ib device is registered, so all these prints use dev_err(). >> +static irqreturn_t abnormal_interrupt_others(struct hns_roce_dev *hr_dev) >> +{ >> + struct hns_roce_work *ecc_work; >> + >> + ecc_work = kzalloc(sizeof(*ecc_work), GFP_ATOMIC); >> + if (!ecc_work) >> + return IRQ_NONE; >> + >> + ecc_work->hr_dev = hr_dev; > Since there is nothing in this work you should just embed it in the > struct hns_roce_dev and use container_of to get the hr_dev. Then there > is no allocation here. > Fix it in v2. Thanks, Wenpeng > Jason > . >