Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753394AbYLBDc5 (ORCPT ); Mon, 1 Dec 2008 22:32:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751528AbYLBDcs (ORCPT ); Mon, 1 Dec 2008 22:32:48 -0500 Received: from smtp1.linux-foundation.org ([140.211.169.13]:34489 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751388AbYLBDcr (ORCPT ); Mon, 1 Dec 2008 22:32:47 -0500 Date: Mon, 1 Dec 2008 19:32:02 -0800 (PST) From: Linus Torvalds To: "Rafael J. Wysocki" cc: Greg KH , Ingo Molnar , Jesse Barnes , Len Brown , LKML , Takashi Iwai , Andrew Morton Subject: Re: Regression from 2.6.26: Hibernation (possibly suspend) broken on Toshiba R500 (bisected) In-Reply-To: <200812020320.31876.rjw@sisk.pl> Message-ID: References: <200812020320.31876.rjw@sisk.pl> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1527 Lines: 44 On Tue, 2 Dec 2008, Rafael J. Wysocki wrote: > r_size = resource_size(r); > /* For bridges size != alignment */ > - align = resource_alignment(r); > + align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start; Hmm. This means that something set the alignment flags incorrectly. The resource _should_ have IORESOURCE_SIZEALIGN set for a resource with size alignment, and IORESOURCE_STARTALIGN for one that has start alignment. Your patch doesn't fix anything, it just hides the bug. It would be good to hear what resource this is, and where it got set. So instead of that broken patch that just hides the problem, please try to debug it with something like resource_size_t expected_align; expected_align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start; align = resource_alignment(r); if (align != expected_align) { dev_warn(&dev->dev, "BAR %d %llx-%llx wrong alignment flags %lx %llx (%llx)\n", i, (unsigned long long) r->start, (unsigned long long) r->end, r->flags, (unsigned long long) align, (unsigned long long) expected_align); /* Hacky and wrong, but trying to keep things align = expected_align; } or something like that. And then we just need to figure out which setup routine sets the wrong alignment flag,. 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/