On Fri, Nov 01, 2019 at 07:28:22PM -0500, Ryan Attard wrote: > I can't quite tell if it's just the diff, but it looks like the paired > kfree_rcu(vpd_pg89, rcu) from the original patch got lopped off. Is there > somewhere I can see the full resultant file? I see all four instances of kfree() in origin/master in -next: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git But please do double-check. Thanx, Paul > Thanks, > Ryan > > On Mon, Oct 28, 2019, 11:08 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > wrote: > > > Hi all, > > > > Today's linux-next merge of the scsi tree got a conflict in: > > > > drivers/scsi/scsi_sysfs.c > > > > between commit: > > > > 81db81f82993 ("drivers/scsi: Replace rcu_swap_protected() with > > rcu_replace()") > > > > from the rcu tree and commit: > > > > d188b0675b21 ("scsi: core: Add sysfs attributes for VPD pages 0h and > > 89h") > > > > from the scsi tree. > > > > I fixed it up (see below) and can carry the fix as necessary. This > > is now fixed as far as linux-next is concerned, but any non trivial > > conflicts should be mentioned to your upstream maintainer when your tree > > is submitted for merging. You may also want to consider cooperating > > with the maintainer of the conflicting tree to minimise any particularly > > complex conflicts. > > > > -- > > Cheers, > > Stephen Rothwell > > > > diff --cc drivers/scsi/scsi_sysfs.c > > index cc51f4756077,0fa2ed343c7f..000000000000 > > --- a/drivers/scsi/scsi_sysfs.c > > +++ b/drivers/scsi/scsi_sysfs.c > > @@@ -466,12 -467,18 +467,18 @@@ static void scsi_device_dev_release_use > > sdev->request_queue = NULL; > > > > mutex_lock(&sdev->inquiry_mutex); > > - rcu_swap_protected(sdev->vpd_pg0, vpd_pg0, > > - lockdep_is_held(&sdev->inquiry_mutex)); > > - rcu_swap_protected(sdev->vpd_pg80, vpd_pg80, > > - lockdep_is_held(&sdev->inquiry_mutex)); > > - rcu_swap_protected(sdev->vpd_pg83, vpd_pg83, > > - lockdep_is_held(&sdev->inquiry_mutex)); > > - rcu_swap_protected(sdev->vpd_pg89, vpd_pg89, > > - lockdep_is_held(&sdev->inquiry_mutex)); > > ++ vpd_pg0 = rcu_replace_pointer(sdev->vpd_pg0, vpd_pg0, > > ++ > > lockdep_is_held(&sdev->inquiry_mutex)); > > + vpd_pg80 = rcu_replace_pointer(sdev->vpd_pg80, vpd_pg80, > > + > > lockdep_is_held(&sdev->inquiry_mutex)); > > + vpd_pg83 = rcu_replace_pointer(sdev->vpd_pg83, vpd_pg83, > > + > > lockdep_is_held(&sdev->inquiry_mutex)); > > ++ vpd_pg89 = rcu_replace_pointer(sdev->vpd_pg89, vpd_pg89, > > ++ > > lockdep_is_held(&sdev->inquiry_mutex)); > > mutex_unlock(&sdev->inquiry_mutex); > > > > + if (vpd_pg0) > > + kfree_rcu(vpd_pg0, rcu); > > if (vpd_pg83) > > kfree_rcu(vpd_pg83, rcu); > > if (vpd_pg80) > >