Re: [PATCH 3/4] Char: ip2, fix sparse warnings

From: Andrew Morton
Date: Mon Mar 31 2008 - 19:58:02 EST


On Fri, 28 Mar 2008 22:18:43 +0100
Jiri Slaby <jirislaby@xxxxxxxxx> wrote:

> Unlock two grabbed locks on some paths.
>
> Signed-off-by: Jiri Slaby <jirislaby@xxxxxxxxx>
> ---
> drivers/char/ip2/i2lib.c | 10 ++++++----
> 1 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/char/ip2/i2lib.c b/drivers/char/ip2/i2lib.c
> index 618f5fe..1d5388c 100644
> --- a/drivers/char/ip2/i2lib.c
> +++ b/drivers/char/ip2/i2lib.c
> @@ -643,12 +643,12 @@ i2QueueCommands(int type, i2ChanStrPtr pCh, int timeout, int nCommands,
> // Normal Expected path - We still hold LOCK
> break; /* from for()- Enough room: goto proceed */
> }
> - }
> -
> - ip2trace (CHANN, ITRC_QUEUE, 3, 1, totalsize );
> + ip2trace(CHANN, ITRC_QUEUE, 3, 1, totalsize);
> + write_unlock_irqrestore(lock_var_p, flags);
> + } else
> + ip2trace(CHANN, ITRC_QUEUE, 3, 1, totalsize);
>
> // Prepare to wait for buffers to empty
> - write_unlock_irqrestore(lock_var_p, flags);
> serviceOutgoingFifo(pB); // Dump what we got
>
> if (timeout == 0) {
> @@ -1834,6 +1834,8 @@ i2StripFifo(i2eBordStrPtr pB)
> default: // Neither packet? should be impossible
> ip2trace (ITRC_NO_PORT, ITRC_SFIFO, 5, 1,
> PTYPE_OF(pB->i2eLeadoffWord) );
> + write_unlock_irqrestore(&pB->read_fifo_spinlock,
> + bflags);
>
> break;
> } // End of switch on type of packets

Your tree apparently has a sensible-looking write_unlock_irqrestore(),
whereas mine has a stupid-looking WRITE_UNLOCK_IRQRESTORE(). How did this
happen?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/