Hi Brian, I knew this issue. So patch[1] fixed it already. I sent the extcon pull request[2] including patch[1] for Linux 4.3.
[1] http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-next&id=a598af7f0279195abffbfb9bf2070457e9c89ff3 [2] https://lkml.org/lkml/2015/8/11/5 Thanks, Chanwoo Choi On 08/11/2015 03:39 AM, Brian Norris wrote: > commit be052cc87745 ("extcon: Fix hang and > extcon_get/set_cable_state().") introduced several signedness issues. > sparse reports them: > > drivers/extcon/extcon.c: In function ‘find_cable_index_by_name’: > drivers/extcon/extcon.c:153:2: warning: comparison of unsigned expression > < 0 is always false [-Wtype-limits] > drivers/extcon/extcon.c: In function ‘extcon_get_cable_state’: > drivers/extcon/extcon.c:384:2: warning: comparison of unsigned expression > < 0 is always false [-Wtype-limits] > drivers/extcon/extcon.c: In function ‘extcon_set_cable_state’: > drivers/extcon/extcon.c:432:2: warning: comparison of unsigned expression > < 0 is always false [-Wtype-limits] > > Fixes: be052cc87745 ("extcon: Fix hang and extcon_get/set_cable_state().") > Signed-off-by: Brian Norris <computersforpe...@gmail.com> > --- > This is *only* compile-tested > > drivers/extcon/extcon.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c > index 43b57b02d050..a394ca419715 100644 > --- a/drivers/extcon/extcon.c > +++ b/drivers/extcon/extcon.c > @@ -126,7 +126,7 @@ static int find_cable_index_by_id(struct extcon_dev > *edev, const unsigned int id > > static int find_cable_id_by_name(struct extcon_dev *edev, const char *name) > { > - unsigned int id = -EINVAL; > + int id = -EINVAL; > int i = 0; > > /* Find the id of extcon cable */ > @@ -143,7 +143,7 @@ static int find_cable_id_by_name(struct extcon_dev *edev, > const char *name) > > static int find_cable_index_by_name(struct extcon_dev *edev, const char > *name) > { > - unsigned int id; > + int id; > > if (edev->max_supported == 0) > return -EINVAL; > @@ -378,7 +378,7 @@ EXPORT_SYMBOL_GPL(extcon_get_cable_state_); > */ > int extcon_get_cable_state(struct extcon_dev *edev, const char *cable_name) > { > - unsigned int id; > + int id; > > id = find_cable_id_by_name(edev, cable_name); > if (id < 0) > @@ -426,7 +426,7 @@ EXPORT_SYMBOL_GPL(extcon_set_cable_state_); > int extcon_set_cable_state(struct extcon_dev *edev, > const char *cable_name, bool cable_state) > { > - unsigned int id; > + int id; > > id = find_cable_id_by_name(edev, cable_name); > if (id < 0) > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/