* [PATCH] lightnvm: change max_phys_sect to ushort
@ 2015-11-12 18:35 Matias Bjørling
2015-11-12 18:42 ` Geert Uytterhoeven
2015-11-16 11:18 ` Thiago Farina
0 siblings, 2 replies; 7+ messages in thread
From: Matias Bjørling @ 2015-11-12 18:35 UTC (permalink / raw)
To: linux-block, linux-kernel; +Cc: axboe, geert, Matias Bjørling
The max_phys_sect variable is defined as a char. We do a boundary check
to maximally allow 256 physical page descriptors per command. As we are
not indexing from zero. This expression is always in false. Bump the
max_phys_sect to an unsigned short to support the range check.
Signed-off-by: Matias Bjørling <m@bjorling.me>
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
include/linux/lightnvm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 69c9057..4b1cd3d 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -220,7 +220,7 @@ struct nvm_dev_ops {
nvm_dev_dma_alloc_fn *dev_dma_alloc;
nvm_dev_dma_free_fn *dev_dma_free;
- uint8_t max_phys_sect;
+ unsigned int max_phys_sect;
};
struct nvm_lun {
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-12 18:35 [PATCH] lightnvm: change max_phys_sect to ushort Matias Bjørling
@ 2015-11-12 18:42 ` Geert Uytterhoeven
2015-11-12 18:57 ` Matias Bjørling
2015-11-16 11:18 ` Thiago Farina
1 sibling, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2015-11-12 18:42 UTC (permalink / raw)
To: Matias Bjørling
Cc: linux-block, linux-kernel@vger.kernel.org, Jens Axboe
On Thu, Nov 12, 2015 at 7:35 PM, Matias Bjørling <m@bjorling.me> wrote:
> The max_phys_sect variable is defined as a char. We do a boundary check
> to maximally allow 256 physical page descriptors per command. As we are
> not indexing from zero. This expression is always in false. Bump the
> max_phys_sect to an unsigned short to support the range check.
unsigned int?
>
> Signed-off-by: Matias Bjørling <m@bjorling.me>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> include/linux/lightnvm.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
> index 69c9057..4b1cd3d 100644
> --- a/include/linux/lightnvm.h
> +++ b/include/linux/lightnvm.h
> @@ -220,7 +220,7 @@ struct nvm_dev_ops {
> nvm_dev_dma_alloc_fn *dev_dma_alloc;
> nvm_dev_dma_free_fn *dev_dma_free;
>
> - uint8_t max_phys_sect;
> + unsigned int max_phys_sect;
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-12 18:42 ` Geert Uytterhoeven
@ 2015-11-12 18:57 ` Matias Bjørling
2015-11-12 19:02 ` Linus Torvalds
0 siblings, 1 reply; 7+ messages in thread
From: Matias Bjørling @ 2015-11-12 18:57 UTC (permalink / raw)
To: Geert Uytterhoeven; +Cc: linux-block, linux-kernel@vger.kernel.org, Jens Axboe
On 11/12/2015 07:42 PM, Geert Uytterhoeven wrote:
> On Thu, Nov 12, 2015 at 7:35 PM, Matias Bjørling <m@bjorling.me> wrote:
>> The max_phys_sect variable is defined as a char. We do a boundary check
>> to maximally allow 256 physical page descriptors per command. As we are
>> not indexing from zero. This expression is always in false. Bump the
>> max_phys_sect to an unsigned short to support the range check.
>
> unsigned int?
Grah, I need to be more careful. I sent the wrong patch after I had
fixed it to unsigned short.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-12 18:57 ` Matias Bjørling
@ 2015-11-12 19:02 ` Linus Torvalds
2015-11-12 19:05 ` Matias Bjørling
0 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2015-11-12 19:02 UTC (permalink / raw)
To: Matias Bjørling
Cc: Geert Uytterhoeven, linux-block, linux-kernel@vger.kernel.org,
Jens Axboe
On Thu, Nov 12, 2015 at 10:57 AM, Matias Bjørling <m@bjorling.me> wrote:
>
> Grah, I need to be more careful. I sent the wrong patch after I had fixed it
> to unsigned short.
Actually, I think "unsigned int" was better.
You're not saving any space with "unsigned short" (the size of the
structure will be rounded up to the alignment of it anyway), and we
should generally strive to avoid 16-bit accesses unless there is some
real reason for them, because they are often slower than either "char"
or "int". Several architectures have weak support for 16-bit accesses
(eg alpha), and even on x86 you end up having operand size overrides
etc.
So unless there is a clear *reason* to use "short" - just don't.
Linus
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-12 19:02 ` Linus Torvalds
@ 2015-11-12 19:05 ` Matias Bjørling
0 siblings, 0 replies; 7+ messages in thread
From: Matias Bjørling @ 2015-11-12 19:05 UTC (permalink / raw)
To: Linus Torvalds
Cc: Geert Uytterhoeven, linux-block, linux-kernel@vger.kernel.org,
Jens Axboe
On 11/12/2015 08:02 PM, Linus Torvalds wrote:
> On Thu, Nov 12, 2015 at 10:57 AM, Matias Bjørling <m@bjorling.me> wrote:
>>
>> Grah, I need to be more careful. I sent the wrong patch after I had fixed it
>> to unsigned short.
>
> Actually, I think "unsigned int" was better.
>
> You're not saving any space with "unsigned short" (the size of the
> structure will be rounded up to the alignment of it anyway), and we
> should generally strive to avoid 16-bit accesses unless there is some
> real reason for them, because they are often slower than either "char"
> or "int". Several architectures have weak support for 16-bit accesses
> (eg alpha), and even on x86 you end up having operand size overrides
> etc.
>
Thanks
> So unless there is a clear *reason* to use "short" - just don't.
>
> Linus
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-12 18:35 [PATCH] lightnvm: change max_phys_sect to ushort Matias Bjørling
2015-11-12 18:42 ` Geert Uytterhoeven
@ 2015-11-16 11:18 ` Thiago Farina
2015-11-16 11:21 ` Matias Bjørling
1 sibling, 1 reply; 7+ messages in thread
From: Thiago Farina @ 2015-11-16 11:18 UTC (permalink / raw)
To: Matias Bjørling; +Cc: linux-block, linux list, axboe, geert
On Thu, Nov 12, 2015 at 4:35 PM, Matias Bjørling <m@bjorling.me> wrote:
> The max_phys_sect variable is defined as a char. We do a boundary check
> to maximally allow 256 physical page descriptors per command. As we are
> not indexing from zero. This expression is always in false. Bump the
> max_phys_sect to an unsigned short to support the range check.
>
You might have to change the commit message to match the code change.
s/unsigned short/unsigned int. RIght?
> Signed-off-by: Matias Bjørling <m@bjorling.me>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> include/linux/lightnvm.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
> index 69c9057..4b1cd3d 100644
> --- a/include/linux/lightnvm.h
> +++ b/include/linux/lightnvm.h
> @@ -220,7 +220,7 @@ struct nvm_dev_ops {
> nvm_dev_dma_alloc_fn *dev_dma_alloc;
> nvm_dev_dma_free_fn *dev_dma_free;
>
> - uint8_t max_phys_sect;
> + unsigned int max_phys_sect;
> };
>
> struct nvm_lun {
--
Thiago Farina
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] lightnvm: change max_phys_sect to ushort
2015-11-16 11:18 ` Thiago Farina
@ 2015-11-16 11:21 ` Matias Bjørling
0 siblings, 0 replies; 7+ messages in thread
From: Matias Bjørling @ 2015-11-16 11:21 UTC (permalink / raw)
To: Thiago Farina; +Cc: linux-block, linux list, axboe, geert
On 11/16/2015 12:18 PM, Thiago Farina wrote:
> On Thu, Nov 12, 2015 at 4:35 PM, Matias Bjørling <m@bjorling.me> wrote:
>> The max_phys_sect variable is defined as a char. We do a boundary check
>> to maximally allow 256 physical page descriptors per command. As we are
>> not indexing from zero. This expression is always in false. Bump the
>> max_phys_sect to an unsigned short to support the range check.
>>
> You might have to change the commit message to match the code change.
> s/unsigned short/unsigned int. RIght?
You're right. It has been fixed.
>
>> Signed-off-by: Matias Bjørling <m@bjorling.me>
>> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>> include/linux/lightnvm.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
>> index 69c9057..4b1cd3d 100644
>> --- a/include/linux/lightnvm.h
>> +++ b/include/linux/lightnvm.h
>> @@ -220,7 +220,7 @@ struct nvm_dev_ops {
>> nvm_dev_dma_alloc_fn *dev_dma_alloc;
>> nvm_dev_dma_free_fn *dev_dma_free;
>>
>> - uint8_t max_phys_sect;
>> + unsigned int max_phys_sect;
>> };
>>
>> struct nvm_lun {
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-11-16 11:21 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-12 18:35 [PATCH] lightnvm: change max_phys_sect to ushort Matias Bjørling
2015-11-12 18:42 ` Geert Uytterhoeven
2015-11-12 18:57 ` Matias Bjørling
2015-11-12 19:02 ` Linus Torvalds
2015-11-12 19:05 ` Matias Bjørling
2015-11-16 11:18 ` Thiago Farina
2015-11-16 11:21 ` Matias Bjørling
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).