Hmmm, indeed linux-next crashes with a null pointer dereference when calling `ida_free(..., -1)`. It appears to me that 69cb69ea5542 ("ida: Remove assertions that an ID was allocated") didn't intend to make `ida_free(..., -1)` invalid; after all, it was authored & introduced immediately after fc82bbf4dede ("ida: don't use BUG_ON() for debugging") whose commit message calls for making it legal, with Matthew's support. And the referenced Bluetooth HCI code that also calls `ida_free(..., -1)` is still there, as far as I can tell ([1]). Rather, probably the `((int)id < 0)` was accidentally dropped, or the idea was that it would be handled by the `not_found:` label in `ida_free`, but for that to work you'd need to change the `!test_bit(bit, bitmap->bitmap)` condition to `!bitmap || !test_bit(bit, bitmap->bitmap)` since otherwise `bitmap->bitmap` is a null pointer dereference. I will send a patch to get it fixed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/bluetooth/hci_sock.c#n106