* linux-next: manual merge of the kthread tree with the i2c-host-fixes tree
@ 2026-06-09 15:24 Mark Brown
2026-06-09 15:35 ` Wolfram Sang
0 siblings, 1 reply; 3+ messages in thread
From: Mark Brown @ 2026-06-09 15:24 UTC (permalink / raw)
To: Wolfram Sang
Cc: Andi Shyti, Johan Hovold, Linux Kernel Mailing List,
Linux Next Mailing List, Wolfram Sang
[-- Attachment #1: Type: text/plain, Size: 5442 bytes --]
Hi all,
Today's linux-next merge of the kthread tree got a conflict in:
drivers/i2c/i2c-core-base.c
between commit:
84762906e2666d ("i2c: core: fix adapter debugfs creation")
from the i2c-host-fixes tree and commits:
07d5fb537928aa ("i2c: core: fix adapter debugfs creation")
a378a2bc73e3b7 ("i2c: core: clean up bus id allocation")
from the kthread 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 --combined drivers/i2c/i2c-core-base.c
index 764e293236b572,31e956bb3b7222..00000000000000
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@@ -1516,23 -1516,48 +1516,48 @@@ int i2c_handle_smbus_host_notify(struc
}
EXPORT_SYMBOL_GPL(i2c_handle_smbus_host_notify);
+ static int i2c_allocate_adapter_id(struct i2c_adapter *adap)
+ {
+ int id, start, end;
+
+ if (adap->nr == -1) {
+ start = __i2c_first_dynamic_bus_num;
+ end = 0;
+ } else {
+ start = adap->nr;
+ end = adap->nr + 1;
+ }
+
+ mutex_lock(&core_lock);
+ id = idr_alloc(&i2c_adapter_idr, NULL, start, end, GFP_KERNEL);
+ mutex_unlock(&core_lock);
+ if (id < 0) {
+ if (adap->nr != -1 && id == -ENOSPC)
+ id = -EBUSY;
+ pr_err("adapter '%s': failed to allocate id: %d\n", adap->name, id);
+ return id;
+ }
+
+ adap->nr = id;
+
+ return 0;
+ }
+
static int i2c_register_adapter(struct i2c_adapter *adap)
{
- int res = -EINVAL;
+ int res;
/* Can't register until after driver model init */
- if (WARN_ON(!is_registered)) {
- res = -EAGAIN;
- goto out_list;
- }
+ if (WARN_ON(!is_registered))
+ return -EAGAIN;
/* Sanity checks */
if (WARN(!adap->name[0], "i2c adapter has no name"))
- goto out_list;
+ return -EINVAL;
if (!adap->algo) {
pr_err("adapter '%s': no algo supplied!\n", adap->name);
- goto out_list;
+ return -EINVAL;
}
if (!adap->lock_ops)
@@@ -1553,12 -1578,16 +1578,16 @@@
if (res) {
pr_err("adapter '%s': can't create Host Notify IRQs (%d)\n",
adap->name, res);
- goto out_list;
+ return res;
}
+ res = i2c_allocate_adapter_id(adap);
+ if (res)
+ goto err_remove_irq_domain;
+
res = dev_set_name(&adap->dev, "i2c-%d", adap->nr);
if (res)
- goto err_remove_irq_domain;
+ goto err_free_id;
adap->dev.bus = &i2c_bus_type;
adap->dev.type = &i2c_adapter_type;
@@@ -1591,7 -1620,7 +1620,11 @@@
res = i2c_setup_smbus_alert(adap);
if (res)
++<<<<<<< HEAD
+ goto out_reg;
++=======
+ goto err_deregister_clients;
++>>>>>>> i2c/i2c/for-next
dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
@@@ -1610,7 -1639,7 +1643,11 @@@
return 0;
++<<<<<<< HEAD
+out_reg:
++=======
+ err_deregister_clients:
++>>>>>>> i2c/i2c/for-next
i2c_deregister_clients(adap);
device_del(&adap->dev);
err_replace_id:
@@@ -1623,36 -1652,17 +1660,46 @@@ err_put_adap
init_completion(&adap->dev_released);
put_device(&adap->dev);
wait_for_completion(&adap->dev_released);
++<<<<<<< HEAD
+err_remove_irq_domain:
+ i2c_host_notify_irq_teardown(adap);
+out_list:
++=======
+ err_free_id:
++>>>>>>> i2c/i2c/for-next
mutex_lock(&core_lock);
idr_remove(&i2c_adapter_idr, adap->nr);
mutex_unlock(&core_lock);
+ err_remove_irq_domain:
+ i2c_host_notify_irq_teardown(adap);
+
return res;
}
/**
++<<<<<<< HEAD
+ * __i2c_add_numbered_adapter - i2c_add_numbered_adapter where nr is never -1
+ * @adap: the adapter to register (with adap->nr initialized)
+ * Context: can sleep
+ *
+ * See i2c_add_numbered_adapter() for details.
+ */
+static int __i2c_add_numbered_adapter(struct i2c_adapter *adap)
+{
+ int id;
+
+ mutex_lock(&core_lock);
+ id = idr_alloc(&i2c_adapter_idr, NULL, adap->nr, adap->nr + 1, GFP_KERNEL);
+ mutex_unlock(&core_lock);
+ if (WARN(id < 0, "couldn't get idr"))
+ return id == -ENOSPC ? -EBUSY : id;
+
+ return i2c_register_adapter(adap);
+}
+
+/**
++=======
++>>>>>>> i2c/i2c/for-next
* i2c_add_adapter - declare i2c adapter, use dynamic bus number
* @adapter: the adapter to add
* Context: can sleep
@@@ -1672,17 -1682,8 +1719,22 @@@ int i2c_add_adapter(struct i2c_adapter
int id;
id = of_alias_get_id(dev->of_node, "i2c");
++<<<<<<< HEAD
+ if (id >= 0) {
+ adapter->nr = id;
+ return __i2c_add_numbered_adapter(adapter);
+ }
+
+ mutex_lock(&core_lock);
+ id = idr_alloc(&i2c_adapter_idr, NULL,
+ __i2c_first_dynamic_bus_num, 0, GFP_KERNEL);
+ mutex_unlock(&core_lock);
+ if (WARN(id < 0, "couldn't get idr"))
+ return id;
++=======
+ if (id < 0)
+ id = -1;
++>>>>>>> i2c/i2c/for-next
adapter->nr = id;
@@@ -1718,7 -1719,7 +1770,7 @@@ int i2c_add_numbered_adapter(struct i2c
if (adap->nr == -1) /* -1 means dynamically assign bus id */
return i2c_add_adapter(adap);
- return __i2c_add_numbered_adapter(adap);
+ return i2c_register_adapter(adap);
}
EXPORT_SYMBOL_GPL(i2c_add_numbered_adapter);
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: linux-next: manual merge of the kthread tree with the i2c-host-fixes tree
2026-06-09 15:24 linux-next: manual merge of the kthread tree with the i2c-host-fixes tree Mark Brown
@ 2026-06-09 15:35 ` Wolfram Sang
2026-06-09 15:36 ` Mark Brown
0 siblings, 1 reply; 3+ messages in thread
From: Wolfram Sang @ 2026-06-09 15:35 UTC (permalink / raw)
To: Mark Brown
Cc: Andi Shyti, Johan Hovold, Linux Kernel Mailing List,
Linux Next Mailing List
[-- Attachment #1: Type: text/plain, Size: 692 bytes --]
On Tue, Jun 09, 2026 at 04:24:35PM +0100, Mark Brown wrote:
> Hi all,
>
> Today's linux-next merge of the kthread tree got a conflict in:
>
> drivers/i2c/i2c-core-base.c
>
> between commit:
>
> 84762906e2666d ("i2c: core: fix adapter debugfs creation")
>
> from the i2c-host-fixes tree and commits:
>
> 07d5fb537928aa ("i2c: core: fix adapter debugfs creation")
> a378a2bc73e3b7 ("i2c: core: clean up bus id allocation")
>
> from the kthread tree.
? This doesn't come from the kthread tree, does it?
I see the duplication from *my* for-next and Andi's for-next. I will fix
my tree. Sorry for the confusion, a glitch while handing over the
subsystem.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: linux-next: manual merge of the kthread tree with the i2c-host-fixes tree
2026-06-09 15:35 ` Wolfram Sang
@ 2026-06-09 15:36 ` Mark Brown
0 siblings, 0 replies; 3+ messages in thread
From: Mark Brown @ 2026-06-09 15:36 UTC (permalink / raw)
To: Wolfram Sang
Cc: Andi Shyti, Johan Hovold, Linux Kernel Mailing List,
Linux Next Mailing List
[-- Attachment #1: Type: text/plain, Size: 888 bytes --]
On Tue, Jun 09, 2026 at 05:35:01PM +0200, Wolfram Sang wrote:
> On Tue, Jun 09, 2026 at 04:24:35PM +0100, Mark Brown wrote:
> > Today's linux-next merge of the kthread tree got a conflict in:
> >
> > drivers/i2c/i2c-core-base.c
> >
> > between commit:
> >
> > 84762906e2666d ("i2c: core: fix adapter debugfs creation")
> >
> > from the i2c-host-fixes tree and commits:
> >
> > 07d5fb537928aa ("i2c: core: fix adapter debugfs creation")
> > a378a2bc73e3b7 ("i2c: core: clean up bus id allocation")
> >
> > from the kthread tree.
>
> ? This doesn't come from the kthread tree, does it?
> I see the duplication from *my* for-next and Andi's for-next. I will fix
> my tree. Sorry for the confusion, a glitch while handing over the
> subsystem.
It's your tree, yes - the scripting got confused and is picking up
kthread as the anme for some reason.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-06-09 15:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-09 15:24 linux-next: manual merge of the kthread tree with the i2c-host-fixes tree Mark Brown
2026-06-09 15:35 ` Wolfram Sang
2026-06-09 15:36 ` Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.