On Fri, Feb 14, 2020 at 05:16:25PM +0800, qiwuchen55@xxxxxxxxx wrote: > From: chenqiwu <chenqiwu@xxxxxxxxxx> > > Use list_for_each_entry_safe() instead of list_for_each_safe() > to simplify the code. > > Signed-off-by: chenqiwu <chenqiwu@xxxxxxxxxx> > --- > drivers/ide/ide-scan-pci.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/ide/ide-scan-pci.c b/drivers/ide/ide-scan-pci.c > index acf8748..383f0d8 100644 > --- a/drivers/ide/ide-scan-pci.c > +++ b/drivers/ide/ide-scan-pci.c > @@ -89,8 +89,7 @@ static int __init ide_scan_pcidev(struct pci_dev *dev) > static int __init ide_scan_pcibus(void) > { > struct pci_dev *dev = NULL; > - struct pci_driver *d; > - struct list_head *l, *n; > + struct pci_driver *d, *tmp; > > pre_init = 0; > for_each_pci_dev(dev) > @@ -101,9 +100,8 @@ static int __init ide_scan_pcibus(void) > * are post init. > */ > > - list_for_each_safe(l, n, &ide_pci_drivers) { > - list_del(l); > - d = list_entry(l, struct pci_driver, node); > + list_for_each_entry_safe(d, tmp, &ide_pci_drivers, node) { > + list_del(d->node); Just in case this wasn't reported yet. drivers/ide/ide-scan-pci.c: In function 'ide_scan_pcibus': drivers/ide/ide-scan-pci.c:104:13: error: incompatible type for argument 1 of 'list_del' 104 | list_del(d->node); | ~^~~~~~ | | | struct list_head In file included from include/linux/module.h:12, from drivers/ide/ide-scan-pci.c:12: include/linux/list.h:144:47: note: expected 'struct list_head *' but argument is of type 'struct list_head' 144 | static inline void list_del(struct list_head *entry) Guenter