A negative id will not be noticed unless the comparison is signed. Signed-off-by: Roel Kluin <roel.kluin@xxxxxxxxx> --- >> diff --git a/drivers/staging/dream/qdsp5/adsp.c b/drivers/staging/dream/qdsp5/adsp.c >> index d096456..6948bdc 100644 >> --- a/drivers/staging/dream/qdsp5/adsp.c >> +++ b/drivers/staging/dream/qdsp5/adsp.c >> @@ -171,7 +171,7 @@ static struct msm_adsp_module *find_adsp_module_by_id( >> } else { >> #if CONFIG_MSM_AMSS_VERSION >= 6350 >> id = get_module_index(id); >> - if (id < 0) >> + if ((int)id < 0) > > Are you sure this is right? Simply casting an unsigned number to > signed won't miraculously give it a negative value... > An uint32_t is usually an unsigned int, so it should work, but maybe plainly casting it to signed is better. Tested with snippet below. #include <stdio.h> #include <stdlib.h> int foo() { return -1; } int main() { unsigned int i = foo(); if (i < 0) printf("1:%d\n", i); if ((int)i < 0) printf("2:%d\n", i); if ((signed)i < 0) printf("3:%d\n", i); return 0; } If you want the signed cast, you can use this: diff --git a/drivers/staging/dream/qdsp5/adsp.c b/drivers/staging/dream/qdsp5/adsp.c index d096456..4633e4e 100644 --- a/drivers/staging/dream/qdsp5/adsp.c +++ b/drivers/staging/dream/qdsp5/adsp.c @@ -171,7 +171,7 @@ static struct msm_adsp_module *find_adsp_module_by_id( } else { #if CONFIG_MSM_AMSS_VERSION >= 6350 id = get_module_index(id); - if (id < 0) + if ((signed)id < 0) return NULL; #endif return info->id_to_module[id]; _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel