lkml.org 
[lkml]   [2008]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Regression from 2.6.26: Hibernation (possibly suspend) broken on Toshiba R500 (bisected)
Date
On Tuesday, 2 of December 2008, Linus Torvalds wrote:
>
> 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.

Well, it's just a partial revert of commit
5f17cfce5776c566d64430f543a289e5cfa4538b ("PCI: fix pbus_size_mem() resource
alignment for CardBus controllers").

> 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,.

Yeah, I'll give it a try later today, when I get back from the Uni.

Thanks,
Rafael


\
 
 \ /
  Last update: 2008-12-02 16:53    [W:0.159 / U:0.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site