[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20091123083333.GU8742@kernel.dk>
Date: Mon, 23 Nov 2009 09:33:33 +0100
From: Jens Axboe <jens.axboe@...cle.com>
To: Alex Chiang <achiang@...com>
Cc: Don Brace <brace@...rdog.cce.hp.com>,
"Stephen M. Cameron" <scameron@...rdog.cce.hp.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] cciss: change Cmd_sg_list.sg_chain_dma type to
dma_addr_t
On Tue, Nov 17 2009, Alex Chiang wrote:
> A recent commit broke the ia64 build:
>
> Author: Don Brace <brace@...rdog.cce.hp.com>
> Date: Thu Nov 12 12:50:01 2009 -0600
>
> cciss: Add enhanced scatter-gather support.
>
> because of this hunk:
>
> --- a/drivers/block/cciss.h
> +++ b/drivers/block/cciss.h
> +struct Cmd_sg_list {
> + SGDescriptor_struct *sgchain;
> + dma64_addr_t sg_chain_dma;
> + int chain_block_size;
> +};
>
> The issue is that dma64_addr_t isn't #define'd on ia64.
>
> The way that we're using Cmd_sg_list.sg_chain_dma is to hold an
> address returned from pci_map_single().
>
> + temp64.val = pci_map_single(h->pdev,
> + h->cmd_sg_list[c->cmdindex]->sgchain,
> + len, dir);
> +
> + h->cmd_sg_list[c->cmdindex]->sg_chain_dma = temp64.val;
>
> pci_map_single() returns a dma_addr_t too.
>
> This code will still work even on a 32-bit x86 build, where
> dma_addr_t is defined to be a u32 because it will simply be
> promoted to the __u64 that temp64.val is defined as.
>
> Thus, declaring Cmd_sg_list.sg_chain_dma as dma_addr_t is safe.
Applied for 2.6.32.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists