[gelöst] Fehler beim backen [ fs/nfs/direct.c ]

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
retsam
Beiträge: 238
Registriert: 25.03.2005 21:55:43
Wohnort: SHA

[gelöst] Fehler beim backen [ fs/nfs/direct.c ]

Beitrag von retsam » 04.03.2006 14:03:57

Hallo Debianer

Habe versucht auf zwei meiner Rechner die derzeit mit Kernel 2.6.15.4 von http://www.kernel.org - Vanilla laufen den neuen Kernel 2.6.15.5 zu installieren, leider ohne Erfolg.

So gehe ich immer vor:

make menuconfig
make-kpkg clean
make-kpkg --revision=custom.1.0 --initrd kernel_image

Wenn er mit backen anfangt, bleibt es immer an der selben stelle hängen.

---snip---
CC [M] fs/nfs/idmap.o
CC [M] fs/nfs/callback.o
CC [M] fs/nfs/callback_xdr.o
CC [M] fs/nfs/callback_proc.o
CC [M] fs/nfs/direct.o
fs/nfs/direct.c: In function 'nfs_get_user_pages':
fs/nfs/direct.c:110: warning: implicit declaration of function 'nfs_free_user_pages'
fs/nfs/direct.c: At top level:
fs/nfs/direct.c:127: warning: conflicting types for 'nfs_free_user_pages'
fs/nfs/direct.c:127: error: static declaration of 'nfs_free_user_pages' follows non-static declaration
fs/nfs/direct.c:110: error: previous implicit declaration of 'nfs_free_user_pages' was here
make[3]: *** [fs/nfs/direct.o] Fehler 1
make[2]: *** [fs/nfs] Fehler 2
make[1]: *** [fs] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.15.5'
make: *** [debian/stamp-build-kernel] Fehler 2
debian-laptop:/usr/src/linux-2.6.15.5#
---snip---

Könnte mir jemand sagen wo hier der Fehler ist ?

Das komische ist halt das der Fehler auf beiden meiner Rechner auftritt, obwohl ich immer die funktionierende alte .config des Vorgängerkenels lade.
Auch mit der .config eines Original Debian Kernels ( 2.6.15.1-7 ) klappt es nicht.
Zuletzt geändert von retsam am 06.03.2006 22:27:35, insgesamt 1-mal geändert.
ChromeOS auf ChromeBook mit Debian Linux Entwicklerumgebung.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 04.03.2006 15:26:08

Der Fehler liegt in den Kernel sources. Du könntest ihn beheben indem du die in der Datei
/.../fs/nfs/direct.c diesen Codeblock

Code: Alles auswählen

static void
nfs_free_user_pages(struct page **pages, int npages, int do_dirty)
{
	int i;
	for (i = 0; i < npages; i++) {
		if (do_dirty)
			set_page_dirty_lock(pages[i]);
		page_cache_release(pages[i]);
	}
	kfree(pages);
}
weiter nach vorne stellst. (Auf jeden Fall vor die Funktion nfs_get_user_pages)

Edit: Wenn du die obige Änderung durchführst wird die Datei direct.c NICHT mehr durch die normalen Kernelpatches geändert.

Also ist es besser beim alten Kernel zu bleiben. Hat sich eh nicht so viel geändert:
http://www.kernel.org/diff/diffview.cgi ... 15.4-5.bz2

Benutzeravatar
retsam
Beiträge: 238
Registriert: 25.03.2005 21:55:43
Wohnort: SHA

Beitrag von retsam » 04.03.2006 17:09:10

In den neuen 2.6.15.6er Kernel wurde der Fehler anscheinend behoben.

Jetzt klappt wieder alles.
ChromeOS auf ChromeBook mit Debian Linux Entwicklerumgebung.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 06.03.2006 23:09:02

Ja, stimmt. Hier der Auszug aus dem Changelog:
[PATCH] fs/nfs/direct.c compile fix

Compile fix:

fs/nfs/direct.c: In function 'nfs_get_user_pages':
fs/nfs/direct.c:110: warning: implicit declaration of function 'nfs_free_user_pages'
fs/nfs/direct.c: At top level:
fs/nfs/direct.c:127: warning: conflicting types for 'nfs_free_user_pages'
fs/nfs/direct.c:127: error: static declaration of 'nfs_free_user_pages' follows non-static declaration
fs/nfs/direct.c:110: error: previous implicit declaration of 'nfs_free_user_pages' was here

This should now be the same as fix that's going upstream.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>

Antworten