All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Eykholt <joe.eykholt@gmail.com>
To: linux-iscsi-target-dev@googlegroups.com
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	Fubo Chen <fubo.chen@gmail.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH 3/3] target: Minor sparse warning fixes and annotations
Date: Mon, 24 Jan 2011 15:18:18 -0800	[thread overview]
Message-ID: <4D3E08BA.6000105@gmail.com> (raw)
In-Reply-To: <1295904802.24778.47.camel@haakon2.linux-iscsi.org>

On 1/24/11 1:33 PM, Nicholas A. Bellinger wrote:
> On Mon, 2011-01-24 at 14:56 -0600, James Bottomley wrote:
>> On Mon, 2011-01-24 at 12:37 -0800, Nicholas A. Bellinger wrote:
>>> -#define TASK_CMD(task) ((struct se_cmd *)task->task_se_cmd)
>>> -#define TASK_DEV(task) ((struct se_device *)task->se_dev)
>>> +#define TASK_CMD(task) ((task)->task_se_cmd)
>>> +#define TASK_DEV(task) ((task)->se_dev)
Part of the problem with the old code is that task was not parenthesized,
so if TASK_CMD() were used with an expression, you might not get what
you want.  If you did TASK_CMD(p + 5), for example, you would get

     ((struct se_cmd *)p + 5->task_se_cmd)

Which wouldn't compile, but maybe other examples would compile and
would cause strange problems.   So, it's a bad macro as it is.
Just my 2 cents.

      Cheers,
      Joe

>>> If sparse is objecting to things like this then sparse needs fixing:
>>> It's decreasing typesafety.  the things being cast are void * ... they'd
>>> be depositable into any pointer whatsoever without the cast.  With the
>>> cast in the #define, we pick up pointer mismatches (as we should).
>>> Without it, we don't.  As long as the define is always a specific type,
>>> it *should* cast to it.
>>>
>
> Hmmm, good point..  In that case I will go ahead and drop this part of
> the patch.
>
> Thanks!
>
> --nab
>


  parent reply	other threads:[~2011-01-24 23:18 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-24 20:37 [PATCH 0/3] target: Sparse bugfixes and warnings/annotations Nicholas A. Bellinger
2011-01-24 20:37 ` [PATCH 1/3] target: Drop nacl->device_list_lock on core_update_device_list_for_node failure Nicholas A. Bellinger
2011-01-24 20:37 ` [PATCH 2/3] target: Reaquire hba_lock + se_port_lock during se_clear_dev_ports continue Nicholas A. Bellinger
2011-01-25  0:08   ` Stefan Richter
2011-01-25  1:20     ` Nicholas A. Bellinger
2011-01-25  2:03       ` Nicholas A. Bellinger
2011-01-25 14:39       ` Stefan Richter
2011-01-24 20:37 ` [PATCH 3/3] target: Minor sparse warning fixes and annotations Nicholas A. Bellinger
2011-01-24 20:56   ` James Bottomley
2011-01-24 21:33     ` Nicholas A. Bellinger
2011-01-24 21:51       ` James Bottomley
2011-01-24 22:12         ` Nicholas A. Bellinger
2011-01-24 23:56           ` Stefan Richter
2011-01-25  0:37             ` Nicholas A. Bellinger
2011-01-24 23:18       ` Joe Eykholt [this message]
2011-01-24 23:25         ` Nicholas A. Bellinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D3E08BA.6000105@gmail.com \
    --to=joe.eykholt@gmail.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=fubo.chen@gmail.com \
    --cc=hch@lst.de \
    --cc=linux-iscsi-target-dev@googlegroups.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.