Thread (5 messages) 5 messages, 2 authors, 2014-08-01

Re: [PATCH] ata: libahci: Make host flags unsigned long

From: Thierry Reding <hidden>
Date: 2014-08-01 14:01:32
Also in: lkml

On Fri, Aug 01, 2014 at 08:52:06AM -0400, Tejun Heo wrote:
On Fri, Aug 01, 2014 at 01:39:41PM +0200, Thierry Reding wrote:
quoted
From: Thierry Reding <redacted>

Commit 725c7b570fda (ata: libahci_platform: move port_map parameters
into the AHCI structure) moves flags into the struct ahci_host_priv's
.flags field, which causes compiler warnings on 64-bit builds when that
value is cast to a void * pointer. Rather than adding additional casting
to silence the warning, turn the flags field into a unsigned long.
Unless we're talking about a lot of places where such casting is
necessary, I'd actually prefer to keep the flags uint and use explicit
casting.  How many are we talking about?
I think there's just one occurrence. Turning the flags into an unsigned
long seems like a much more natural thing to do, though Besides it being
what many other parts of the kernel use for flags it gives us natural
alignment within struct ahci_host_priv. The structure currently looks
like this:

	struct ahci_host_priv {
		unsigned int flags;
		u32 force_port_map;
		u32 mask_port_map;

		void __iomem *mmio;
		...
	};

On 64-bit that unsigned int will be 32-bit and cause additional padding
to be inserted between mask_port_map and mmio to align the 64-bit
pointer.

It's not like the alignment is that *hugely* important, but it's still,
you know, pretty.

Thierry

Attachments

  • (unnamed) [application/pgp-signature] 819 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help