Messages in this thread | | | From | Sheng Yang <> | Subject | Re: [PATCH] x86: Extend test_and_set_bit() test_and_clean_bit() to 64 bits in X86_64 | Date | Thu, 14 May 2009 11:52:28 +0800 |
| |
On Thursday 14 May 2009 01:29:15 H. Peter Anvin wrote: > H. Peter Anvin wrote: > > H. Peter Anvin wrote: > >> Sheng Yang wrote: > >>> This fix 44/45 bit width memory can't boot up issue. The reason is > >>> free_bootmem_node()->mark_bootmem_node()->__free() use > >>> test_and_clean_bit() to clean node_bootmem_map, but for 44bits width > >>> address, the idx set bit 31 (43 - 12), which consider as a nagetive > >>> value for bts. > >>> > >>> This patch applied to tip/mm. > >> > >> Hi Sheng, > >> > >> Could you try the attached patch instead? > > > > Sorry, wrong patch entirely... here is the right one. > > This time, for real? Sheesh. I'm having a morning, apparently. > > -hpa
Yeah, this one also works well(lightly tested). :)
But one thing should be noticed that, bit ops recognized the input as signed. According to SDM 2A 3.1.1.7 Operation Section, Bit(BitBase, BitOffset) can accept BitOffset as negative value, then search backward... Well, I indeed don't know when we need this, but I think keep signed here should be better...
-- regards Yang, Sheng
| |