Hi Kame, Ok, I see gcc-3.4 doen't allow that though I'm not sure why. How about if we move the default statement at end of the switch block. > Hi > > 2.6.12-rc1-mhp (IA64_GENERIC + SPARSEMEM)works fine on my tiger4 :) > Attached patch was needed to fix below problem with gcc-3.4 > > CC mm/mmigrate.o > > mm/mmigrate.c: In function `generic_migrate_page': > > mm/mmigrate.c:333: error: label at end of compound statement > > make[1]: *** [mm/mmigrate.o] Signed-off-by: Hirokazu Takahashi <taka@xxxxxxxxxxxxx> --- linux-2.6.11-taka/mm/mmigrate.c | 10 +++++----- 1 files changed, 5 insertions, 5 deletions diff -puN mm/mmigrate.c~order_of_error-check mm/mmigrate.c --- linux-2.6.11/mm/mmigrate.c~order_of_error-check Thu Mar 24 08:25:07 2005 +++ linux-2.6.11-taka/mm/mmigrate.c Thu Mar 24 08:25:07 2005 @@ -219,17 +219,17 @@ generic_migrate_page(struct page *page, /* Wait for all operations against the page to finish. */ ret = migrate_page_common(page, newpage); switch (ret) { - default: - /* The page is busy. Try it later. */ - goto out_busy; case -ENOENT: /* The file the page belongs to has been truncated. */ page_cache_get(page); page_cache_release(newpage); newpage->mapping = NULL; - /* fall thru */ + break; case 0: - /* fall thru */ + break; + default: + /* The page is busy. Try it later. */ + goto out_busy; } if (PageError(page)) _