linux-next: manual merge of the net-next tree with the net tree

Mark Brown <[email protected]>
Newsgroups org.kernel.vger.linux-next,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
Hi all,

Today's linux-next merge of the net-next tree got a conflict in:

  drivers/dpll/dpll_netlink.c

between commit:

  33f016b23a219 ("dpll: fix NULL deref in dpll_device_ops() during teardown race")

from the net tree and commit:

  84e85c325e5ed ("dpll: use pin owner's dpll ref for pin-level attribute setting")

from the net-next 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.

diff --cc drivers/dpll/dpll_netlink.c
index 9e55745e33e4f,a909cd4451b00..0000000000000
--- a/drivers/dpll/dpll_netlink.c
+++ b/drivers/dpll/dpll_netlink.c
@@@ -1109,20 -1089,8 +1108,8 @@@ dpll_pin_freq_set(struct dpll_pin *pin
  		return -EINVAL;
  	}
  
- 	xa_for_each(&pin->dpll_refs, i, ref) {
- 		if (!dpll_device_registered(ref->dpll))
- 			continue;
- 		ops = dpll_pin_ops(ref);
- 		if ((!ops->frequency_set || !ops->frequency_get) &&
- 		    ref->dpll->module == pin->module &&
- 		    ref->dpll->clock_id == pin->clock_id) {
- 			NL_SET_ERR_MSG(extack,
- 				       "frequency set not supported by the device");
- 			return -EOPNOTSUPP;
- 		}
- 	}
  	ref = dpll_pin_own_dpll_ref_first(pin);
 -	if (!ref) {
 +	if (!ref || !dpll_device_registered(ref->dpll)) {
  		NL_SET_ERR_MSG(extack, "pin owner dpll not found");
  		return -ENODEV;
  	}
@@@ -1181,26 -1130,13 +1149,13 @@@ dpll_pin_esync_set(struct dpll_pin *pin
  	const struct dpll_pin_ops *ops;
  	struct dpll_pin_esync esync;
  	u64 freq = nla_get_u64(a);
+ 	struct dpll_pin_ref *ref;
  	struct dpll_device *dpll;
  	bool supported = false;
- 	unsigned long i;
- 	int ret;
+ 	int ret, i;
  
- 	xa_for_each(&pin->dpll_refs, i, ref) {
- 		if (!dpll_device_registered(ref->dpll))
- 			continue;
- 		ops = dpll_pin_ops(ref);
- 		if ((!ops->esync_set || !ops->esync_get) &&
- 		    ref->dpll->module == pin->module &&
- 		    ref->dpll->clock_id == pin->clock_id) {
- 			NL_SET_ERR_MSG(extack,
- 				       "embedded sync feature is not supported by this device");
- 			return -EOPNOTSUPP;
- 		}
- 	}
  	ref = dpll_pin_own_dpll_ref_first(pin);
 -	if (!ref) {
 +	if (!ref || !dpll_device_registered(ref->dpll)) {
  		NL_SET_ERR_MSG(extack, "pin owner dpll not found");
  		return -ENODEV;
  	}
@@@ -1313,24 -1221,16 +1240,15 @@@ dpll_pin_ref_sync_state_set(struct dpll
  	}
  	if (state == old_state)
  		return 0;
- 	xa_for_each(&pin->dpll_refs, i, ref) {
- 		if (!dpll_device_registered(ref->dpll))
- 			continue;
- 		ops = dpll_pin_ops(ref);
- 		if (!ops->ref_sync_set)
- 			continue;
- 		dpll = ref->dpll;
- 		ret = ops->ref_sync_set(pin, dpll_pin_on_dpll_priv(dpll, pin),
- 					ref_sync_pin,
- 					dpll_pin_on_dpll_priv(dpll,
- 							      ref_sync_pin),
- 					state, extack);
- 		if (ret) {
- 			failed = ref;
- 			NL_SET_ERR_MSG_FMT(extack, "reference sync set failed for dpll_id:%u",
- 					   dpll->id);
- 			goto rollback;
- 		}
 -
+ 	ret = ops->ref_sync_set(pin, dpll_pin_on_dpll_priv(dpll, pin),
+ 				ref_sync_pin,
+ 				dpll_pin_on_dpll_priv(dpll, ref_sync_pin),
+ 				state, extack);
+ 	if (ret) {
+ 		NL_SET_ERR_MSG_FMT(extack,
+ 				   "reference sync set failed for dpll_id:%u",
+ 				   dpll->id);
+ 		return ret;
  	}
  	__dpll_pin_change_ntf(pin);
  
@@@ -1534,19 -1415,8 +1433,8 @@@ dpll_pin_phase_adj_set(struct dpll_pin 
  		return -EINVAL;
  	}
  
- 	xa_for_each(&pin->dpll_refs, i, ref) {
- 		if (!dpll_device_registered(ref->dpll))
- 			continue;
- 		ops = dpll_pin_ops(ref);
- 		if ((!ops->phase_adjust_set || !ops->phase_adjust_get) &&
- 		    ref->dpll->module == pin->module &&
- 		    ref->dpll->clock_id == pin->clock_id) {
- 			NL_SET_ERR_MSG(extack, "phase adjust not supported");
- 			return -EOPNOTSUPP;
- 		}
- 	}
  	ref = dpll_pin_own_dpll_ref_first(pin);
 -	if (!ref) {
 +	if (!ref || !dpll_device_registered(ref->dpll)) {
  		NL_SET_ERR_MSG(extack, "pin owner dpll not found");
  		return -ENODEV;
  	}
signature.asc (application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE-----

iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmqEfWEACgkQJNaLcl1U
h9BtAwf/XMJMeF/Vc6pQQR5uwk1BpDMVdi/bPOLSq8B+uX5qDIJ7k4WBbLLLIvZe
tfhHzh2vKhIvgeAOgLI4HmIjcOZoqT4kt+m5VCz9rAapALiowGcFcb+84HOuMxi+
i8Ptl77Py9/jvV08VH7ERlRhhX8Ykq097ZYu6/leKFUHxjLC2k1jo1mDX7TC2PqX
50QkBRl0Co/nwIiLm8eB9YOXYDwTTZ433pBj4aS7G1v/lZQqgjyFaLnKRB2Xjcyl
b0wxao4X8bsYYHU29yAhDsRowReSZZs4waeGesEI86Sius8Y+cYznVvV5E2Jsk4P
kbMhtOSclD4LJXNGnF1DIJ4dFvzAgw==
=lU8x
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.