linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Tejun Heo <htejun@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, linux-ide@vger.kernel.org
Subject: Re: [PATCH 05/12] libata: xfer_mask is unsigned int not unsigned long
Date: Tue, 06 Nov 2007 12:53:14 -0500	[thread overview]
Message-ID: <4730AA0A.4090904@garzik.org> (raw)
In-Reply-To: <473048F7.2050004@gmail.com>

Tejun Heo wrote:
> Alan Cox wrote:
>> On Tue,  6 Nov 2007 14:39:03 +0900
>> Tejun Heo <htejun@gmail.com> wrote:
>>
>>> xfer_mask is unsigned int not unsigned long.  Change ->mode_filter to
>>> take and return unsigned int.
>>>
>>> While at it, rename @adev of ata_pci_default_filter() to @dev for
>>> consistency.
>>>
>>> Signed-off-by: Tejun Heo <htejun@gmail.com>
>> The filter type was purposefully unsigned long to allow for expansion (eg
>> for SWDMA) without breaking drivers. No problem with it changing but I'd
>> say "unsigned int" was the worst possible choice - its now shorter (no
>> room for expansion) and size dependant on arch. u32 would be shorter and
>> consistent across all platforms, ulong would have more room for expansion.
> 
> I agree it should be one of u* types and am happy to convert.  This
> patch is primarily for consistency as in libata-core, xfer_mask is
> unsigned int.  My first proposal was u32 too but Jeff vetoed it.  IIRC,
> Jeff has affection for machine-independent integral types.  :-)
> 
> Anyways, I think ulong is worse than uint because ulong differs in size
> between 32 and 64 archs.  What's the good of extra 32bits in flags space
> if it's not there on 32bit archs?  Also, we currently only use 20bits of
> xfermask, 12 extra bits seem enough for the time, especially as
> everything is moving over to SATA where xfermode doesn't really matter, no?
> 
> Jeff, are you okay with u32 or 64?

unsigned long is IMO the best choice for bitmaps.

* it is a machine int on all(?) architectures

* it is 32-bit on 32-bit architectures

* it is consistent with test_bit(), set_bit() and lib/bitmap.c interfaces

* conversion to test_bit() and lib/bitmap.c interfaces as a future step 
is trivial

* your structs inflate on 64-bit due to pointers anyway, so I see little 
real consequence to using the lower 32 bits of an unsigned long as a 
portable meme.

	Jeff



  reply	other threads:[~2007-11-06 17:53 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-06  5:38 [PATCHSET] libata: update timing and fix pata_amd transfer mode selection Tejun Heo
2007-11-06  5:38 ` [PATCH 01/12] ata_generic: unindent loop in generic_set_mode() Tejun Heo
2007-11-06  5:39 ` [PATCH 02/12] libata: export xfermode / PATA timing related functions Tejun Heo
2007-11-06  5:39 ` [PATCH 03/12] libata: clean up xfermode / PATA timing related stuff Tejun Heo
2007-11-06  5:39 ` [PATCH 04/12] libata: kill ata_id_to_dma_mode() Tejun Heo
2007-11-06 10:49   ` Alan Cox
2007-11-06 11:21     ` Tejun Heo
2007-11-24  1:13   ` Jeff Garzik
2007-11-06  5:39 ` [PATCH 05/12] libata: xfer_mask is unsigned int not unsigned long Tejun Heo
2007-11-06 10:51   ` Alan Cox
2007-11-06 10:59     ` Tejun Heo
2007-11-06 17:53       ` Jeff Garzik [this message]
2007-11-07  1:12         ` Tejun Heo
2007-11-24  1:13   ` Jeff Garzik
2007-11-24  1:13     ` Jeff Garzik
2007-11-27  8:42       ` Tejun Heo
2007-11-06  5:39 ` [PATCH 06/12] libata: separate out ata_acpi_gtm_xfermask() from pacpi_discover_modes() Tejun Heo
2007-11-06 10:54   ` Alan Cox
2007-11-06 11:00     ` Tejun Heo
2007-11-24  1:14   ` Jeff Garzik
2007-11-06  5:39 ` [PATCH 07/12] libata: fix ata_acpi_gtm_xfermask() Tejun Heo
2007-11-06 10:55   ` Alan Cox
2007-11-24  1:16   ` Jeff Garzik
2007-11-27  8:40     ` Tejun Heo
2007-11-06  5:39 ` [PATCH 08/12] libata: implement ata_timing_cycle2mode() and use it in libata-acpi and pata_acpi Tejun Heo
2007-11-06 10:59   ` Alan Cox
2007-11-06 11:09     ` Tejun Heo
2007-11-24  1:17   ` Jeff Garzik
2007-11-06  5:39 ` [PATCH 09/12] libata: implement ata_acpi_init_gtm() Tejun Heo
2007-11-06  5:39 ` [PATCH 10/12] libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() Tejun Heo
2007-11-06  5:39 ` [PATCH 11/12] libata: add ATA_CBL_PATA_IGN Tejun Heo
2007-11-06 10:59   ` Alan Cox
2007-11-06 11:02     ` Tejun Heo
2007-11-06 11:25       ` Alan Cox
2007-11-06  5:39 ` [PATCH 12/12] pata_amd: update mode selection for NV PATAs Tejun Heo
2007-11-06 10:59   ` Alan Cox
2007-11-23  1:08 ` [PATCHSET] libata: update timing and fix pata_amd transfer mode selection Tejun Heo
2007-11-24  1:18 ` Jeff Garzik

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=4730AA0A.4090904@garzik.org \
    --to=jeff@garzik.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.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 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).