These changes are unrelated except I ran into them all at once:
- Fixes an oops from a partial hub_configure() clean; let
hub_disconnect() do the whole thing, simpler.
- Since I was there, modify that routine's err() messages
to use dev_err(). Then eliminate a redundant diagnostic
in hub_probe(), and merge the "bad descriptor" cases into
one diagnostic. Saves a few hundred rodata bytes, and
the messages now say what hub's involved.
- Unlink fixes: if lower level code reports a submit error,
make sure the urb gets unlinked from the device's urb_list;
and report "it's already being unlinked" as -EBUSY so callers
can do something smarter than wonder "what did I do wrong".