Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1764973AbXJRQ4X (ORCPT ); Thu, 18 Oct 2007 12:56:23 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756776AbXJRQ4Q (ORCPT ); Thu, 18 Oct 2007 12:56:16 -0400 Received: from smtp2.linux-foundation.org ([207.189.120.14]:39163 "EHLO smtp2.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756901AbXJRQ4P (ORCPT ); Thu, 18 Oct 2007 12:56:15 -0400 Date: Thu, 18 Oct 2007 09:55:04 -0700 (PDT) From: Linus Torvalds To: Jens Axboe cc: David Miller , fujita.tomonori@lab.ntt.co.jp, mingo@elte.hu, linux-kernel@vger.kernel.org, jgarzik@pobox.com, alan@lxorguk.ukuu.org.uk, tomof@acm.org Subject: Re: [bug] ata subsystem related crash with latest -git In-Reply-To: <20071018082145.GK5063@kernel.dk> Message-ID: References: <20071018080048O.fujita.tomonori@lab.ntt.co.jp> <20071017.181907.63126798.davem@davemloft.net> <20071018082145.GK5063@kernel.dk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1000 Lines: 28 On Thu, 18 Oct 2007, Jens Axboe wrote: > - unsigned long addr = page_to_phys(s->page) + s->offset; > + unsigned long addr = page_to_phys(sg_page(s)) + s->offset; Umm. May I suggest (I haven't read the whole thread yet, maybe somebody else already did) that static inline unsigned long sg_phys(struct scatterlist *sg) { return page_to_phys(sg_page(sg)) + sg->offset; } would be a good thing to have? Very few drivers should care so much about the *page* itself (or the offset). That's something that the generic allocation code etc cares about, but the driver is almost bound to care mostly about the actual DMA address, so adding that helper function that abstracts the sg access would be helpful in hiding some of the cruft? Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/