Re: [PATCH 1/7] block: Avoid that blk_drain_queue() finishes early

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/29/12 02:52, Tejun Heo wrote:
On Sun, Oct 28, 2012 at 06:47:22PM -0700, Tejun Heo wrote:
On Fri, Oct 26, 2012 at 02:01:23PM +0200, Bart Van Assche wrote:
Code like "drain |= q->nr_rqs[i]" might result in blk_drain_queue()
to finish early if the expression at the RHS is a multiple of 256
since the drain variable is only eight bits wide. Avoid this by
changing the type of the drain variable from bool into unsigned.

No, it doesn't happen that way.  One of the reasons we have bool at
all is to avoid this type of problems caused by implicit type-casting.

Why do you keep pushing this?  It's WRONG.  Please drop it.

From C99 std draft.

  6.3 Conversions
  6.3.1.2 Boolean type

   When any scalar value is converted to _Bool, the result is 0 if the
   value compares equal to 0; otherwise, the result is 1.

It doesn't care the width or signedness of the type being converted.
If the origin value equals zero, it converts to 0; otherwise 1.

For one or another reason I was assuming that bool was a typedef for unsigned char. But you are right, it's a synonym for the C99 type _Bool so I'll drop this patch.

Bart.

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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux