On Wed, Apr 11, 2012 at 11:52:06AM +0200, Marcel Holtmann wrote: > > @@ -1755,16 +1756,17 @@ int hci_register_dev(struct hci_dev *hdev) > > > > write_lock(&hci_dev_list_lock); > > > > - /* Find first available device id */ > > - list_for_each(p, &hci_dev_list) { > > - if (list_entry(p, struct hci_dev, list)->id != id) > > - break; > > - head = p; id++; > > - } > I am now a little bit confused. Is it not enough to just replace head > with &hci_dev_list to get this fixed? Or why is this failing in the > first place actually. You can see actual code above. If you have hci0 and hci1 adding third AMP will fail since it just checks 0!=1 => break and trying to create hci1 again. > Also this change will of course break the fix that we added to ensure > that the HCI list comes sorted when calling hciconfig. Actually it still works. But if we want it to stay ordered after deleting/adding then we need a small fix. Best regards Andrei Emeltchenko -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html