Thanks for this. This is a lot of work. On Wed, Jun 13, 2018 at 08:31:28PM +0300, Anton Vasilyev wrote: > diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c > index 70e0b8623110..69e6abe14abf 100644 > --- a/drivers/staging/rts5208/rtsx.c > +++ b/drivers/staging/rts5208/rtsx.c > @@ -857,7 +857,7 @@ static int rtsx_probe(struct pci_dev *pci, > dev->chip = kzalloc(sizeof(*dev->chip), GFP_KERNEL); > if (!dev->chip) { > err = -ENOMEM; > - goto errout; > + goto chip_alloc_fail;
The most recent successful allocation is scsi_host_alloc(). I was really hoping this would say something like "goto err_free_host;" or something. The naming style here is a "come from" label which doesn't say if it's going to free the scsi host or not... It turns out we don't free the the host, but we should: err_put_host: scsi_host_put(host); The kzalloc() has it's own error message built in, and all the other error paths as well so the dev_err() is not super important to me... Killing the threads seems actually really complicated so maybe we should just have a separate error paths for that. I'm not sure... regards, dan carpenter