diff mbox

Input: cyapa - Remove superfluous type check in cyapa_gen5_read_idac_data()

Message ID 1423750573-30263-1-git-send-email-geert@linux-m68k.org (mailing list archive)
State New, archived
Headers show

Commit Message

Geert Uytterhoeven Feb. 12, 2015, 2:16 p.m. UTC
drivers/input/mouse/cyapa_gen5.c: In function ‘cyapa_gen5_read_idac_data’:
drivers/input/mouse/cyapa_gen5.c:1876: warning: ‘max_element_cnt’ may be used uninitialized in this function
drivers/input/mouse/cyapa_gen5.c:1873: warning: ‘offset’ may be used uninitialized in this function

If *data_size is non-zero, and idac_data_type contains an unknown type,
max_element_cnt and offset will be uninitialized, and the loop will
process non-existing data.

However, this cannot happen (for now), as there's a test for unknown
types at the top of cyapa_gen5_read_idac_data().

As no "if ... else if ..." is used in other places, remove the
superfluous "if" to silence the compiler warning.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Alternatively, we can pre-initialize max_element_cnt and offset to zero,
and add "if (!max_element_cnt) goto out;" before the loop.

 drivers/input/mouse/cyapa_gen5.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dudley Du March 2, 2015, 4:20 a.m. UTC | #1
Thanks for the check.
This fix is verified okay.

Dudley

> -----Original Message-----

> From: Geert Uytterhoeven [mailto:geert@linux-m68k.org]

> Sent: 2015?2?12? 22:16

> To: Dmitry Torokhov; Dudley Du

> Cc: linux-input@vger.kernel.org; linux-kernel@vger.kernel.org; Geert Uytterhoeven

> Subject: [PATCH] Input: cyapa - Remove superfluous type check in

> cyapa_gen5_read_idac_data()

>

> drivers/input/mouse/cyapa_gen5.c: In function ‘cyapa_gen5_read_idac_data’:

> drivers/input/mouse/cyapa_gen5.c:1876: warning: ‘max_element_cnt’ may be

> used uninitialized in this function

> drivers/input/mouse/cyapa_gen5.c:1873: warning: ‘offset’ may be used

> uninitialized in this function

>

> If *data_size is non-zero, and idac_data_type contains an unknown type,

> max_element_cnt and offset will be uninitialized, and the loop will

> process non-existing data.

>

> However, this cannot happen (for now), as there's a test for unknown

> types at the top of cyapa_gen5_read_idac_data().

>

> As no "if ... else if ..." is used in other places, remove the

> superfluous "if" to silence the compiler warning.

>

> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

> ---

> Alternatively, we can pre-initialize max_element_cnt and offset to zero,

> and add "if (!max_element_cnt) goto out;" before the loop.

>

>  drivers/input/mouse/cyapa_gen5.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/drivers/input/mouse/cyapa_gen5.c b/drivers/input/mouse/cyapa_gen5.c

> index ddf5393a118098fc..88c465b70e9d8776 100644

> --- a/drivers/input/mouse/cyapa_gen5.c

> +++ b/drivers/input/mouse/cyapa_gen5.c

> @@ -1926,7 +1926,7 @@ static int cyapa_gen5_read_idac_data(struct cyapa

> *cyapa,

>  electrodes_tx = cyapa->electrodes_x;

>  max_element_cnt = ((cyapa->aligned_electrodes_rx + 7) &

>  ~7u) * electrodes_tx;

> -} else if (idac_data_type == GEN5_RETRIEVE_SELF_CAP_PWC_DATA) {

> +} else {

>  offset = 2;

>  max_element_cnt = cyapa->electrodes_x +

>  cyapa->electrodes_y;

> --

> 1.9.1



This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.
Dmitry Torokhov March 2, 2015, 5:40 p.m. UTC | #2
On Mon, Mar 02, 2015 at 04:20:34AM +0000, Dudley Du wrote:
> Thanks for the check.
> This fix is verified okay.

Applied, thank you.

> 
> Dudley
> 
> > -----Original Message-----
> > From: Geert Uytterhoeven [mailto:geert@linux-m68k.org]
> > Sent: 2015?2?12? 22:16
> > To: Dmitry Torokhov; Dudley Du
> > Cc: linux-input@vger.kernel.org; linux-kernel@vger.kernel.org; Geert Uytterhoeven
> > Subject: [PATCH] Input: cyapa - Remove superfluous type check in
> > cyapa_gen5_read_idac_data()
> >
> > drivers/input/mouse/cyapa_gen5.c: In function ‘cyapa_gen5_read_idac_data’:
> > drivers/input/mouse/cyapa_gen5.c:1876: warning: ‘max_element_cnt’ may be
> > used uninitialized in this function
> > drivers/input/mouse/cyapa_gen5.c:1873: warning: ‘offset’ may be used
> > uninitialized in this function
> >
> > If *data_size is non-zero, and idac_data_type contains an unknown type,
> > max_element_cnt and offset will be uninitialized, and the loop will
> > process non-existing data.
> >
> > However, this cannot happen (for now), as there's a test for unknown
> > types at the top of cyapa_gen5_read_idac_data().
> >
> > As no "if ... else if ..." is used in other places, remove the
> > superfluous "if" to silence the compiler warning.
> >
> > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> > ---
> > Alternatively, we can pre-initialize max_element_cnt and offset to zero,
> > and add "if (!max_element_cnt) goto out;" before the loop.
> >
> >  drivers/input/mouse/cyapa_gen5.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/input/mouse/cyapa_gen5.c b/drivers/input/mouse/cyapa_gen5.c
> > index ddf5393a118098fc..88c465b70e9d8776 100644
> > --- a/drivers/input/mouse/cyapa_gen5.c
> > +++ b/drivers/input/mouse/cyapa_gen5.c
> > @@ -1926,7 +1926,7 @@ static int cyapa_gen5_read_idac_data(struct cyapa
> > *cyapa,
> >  electrodes_tx = cyapa->electrodes_x;
> >  max_element_cnt = ((cyapa->aligned_electrodes_rx + 7) &
> >  ~7u) * electrodes_tx;
> > -} else if (idac_data_type == GEN5_RETRIEVE_SELF_CAP_PWC_DATA) {
> > +} else {
> >  offset = 2;
> >  max_element_cnt = cyapa->electrodes_x +
> >  cyapa->electrodes_y;
> > --
> > 1.9.1
> 
> 
> This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.
diff mbox

Patch

diff --git a/drivers/input/mouse/cyapa_gen5.c b/drivers/input/mouse/cyapa_gen5.c
index ddf5393a118098fc..88c465b70e9d8776 100644
--- a/drivers/input/mouse/cyapa_gen5.c
+++ b/drivers/input/mouse/cyapa_gen5.c
@@ -1926,7 +1926,7 @@  static int cyapa_gen5_read_idac_data(struct cyapa *cyapa,
 				electrodes_tx = cyapa->electrodes_x;
 			max_element_cnt = ((cyapa->aligned_electrodes_rx + 7) &
 						~7u) * electrodes_tx;
-		} else if (idac_data_type == GEN5_RETRIEVE_SELF_CAP_PWC_DATA) {
+		} else {
 			offset = 2;
 			max_element_cnt = cyapa->electrodes_x +
 						cyapa->electrodes_y;