If a driver succeeded but then fails sanity checks, leave the driver set and
let the cleanup code handle the rest. Otherwise, memory allocated by the
driver's probe() function is never released.
Fixes a valgrind memory leak complaint when running tests for invalid devices
(e.g. device_profiles_num_0).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>