Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 5 reacties
Bron: Kernel.org, submitter: Mr. N. Gamecube

Op Kernel.org is versie 2.6.11.10 van de Linux Kernel verschenen. De ontwikkelaars zijn zo te zien al aardig gewend aan de nieuwe versienummering. Er zijn drie veranderingen aangebracht zoals je in het onderstaande changelog kunt na lezen:

[PATCH] Fix root hole in pktcdvd

ioctl_by_bdev may only be used INSIDE the kernel. If the "arg" argument refers to memory that is accessed by put_user/get_user in the ioctl function, the memory needs to be in the kernel address space (that's the set_fs(KERNEL_DS) doing in the ioctl_by_bdev). This works on i386 because even with set_fs(KERNEL_DS) the user space memory is still accessible with put_user/get_user. That is not true for s390. In short the ioctl implementation of the pktcdvd device driver is horribly broken.

Signed-off-by: Peter Osterlund
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman


[PATCH] Fix root hole in raw device

[Patch] Fix raw device ioctl pass-through

Raw character devices are supposed to pass ioctls through to the block devices they are bound to. Unfortunately, they are using the wrong function for this: ioctl_by_bdev(), instead of blkdev_ioctl().

ioctl_by_bdev() performs a set_fs(KERNEL_DS) before calling the ioctl, redirecting the user-space buffer access to the kernel address space. This is, needless to say, a bad thing.

This was noticed first on s390, where raw IO was non-functioning. The s390 driver config does not actually allow raw IO to be enabled, which was the first part of the problem. Secondly, the s390 kernel address space is distinct from user, causing legal raw ioctls to fail. I've reproduced this on a kernel built with 4G:4G split on x86, which fails in the same way (-EFAULT if the address does not exist kernel-side; returns success without actually populating the user buffer if it does.)

The patch below fixes both the config and address-space problems. It's based closely on a patch by Jan Glauber , which has been tested on s390 at IBM. I've tested it on x86 4G:4G (split address space) and x86_64 (common address space).

Kernel-address-space access has been assigned CAN-2005-1264.

Signed-off-by: Stephen Tweedie
Signed-off-by: Dave Jones
Signed-off-by: Greg Kroah-Hartman
Moderatie-faq Wijzig weergave

Reacties (5)

En als je toch elke dag een nieuwe kernel bakt in hetzelfde tempo als ze uitkomen, kan je beter een incremental patch nemen die 2.6.11.9 naar 2.6.11.10 patcht, klein bestandje, hetzelfde effect.
heb een hyper-noob-vraag :9
Hoe installeer ik die nieuwe kernel in mijn bestaande suse 9.2 installatie. heb wat geprobeert, maar het is nog niet gelukt. sorry voor deze noob vraag.
Ik denk dat Suse een zodanig zwaar gepatchte kernel gebruikt dat je systeem zonder deze niet lekker meer zal draaien.

In ieder geval kan je het zonder gevaar proberen:
Download de hele source van de kernel, en pak alles uit in /usr/src/linux-2.6.11.10
cd naar die directory en doe 'make menuconfig' (of als het volledig "grafisch" moet, 'make xconfig')
In het menu dat verschijnt kun je alle opties van je toekomstige kernel instellen. Ik raad je aan om dikwijls de 'help' te lezen bij de opties... :Y)
Nadat dat alles gebeurd is kan je de config opslaan en 'make' uitvoeren. Nu gaat 'ie de hele kernel compilen, maar de modules moet je daarna apart compilen met 'make modules'.
Om de modules vervolgens op hun juiste plek te krijgen (in de /lib/modules...) doe je 'make modules_install'. De image van je zojuist gemaakte kernel staat op /usr/src/linux-2.6.11.10/arch/i386/boot/bzImage. Die image plaats je best in de /boot directory. Je moet nog nog enkel een entry toevoegen aan je bootloader om deze kernel te kunnen booten (bij suse zal dat wel grub zijn)...
Dat is zo ongeveer heel kort wat je moet doen :) Je kan altijd eens de Linux-Kernel HOWTO opzoeken voor wat in-depth info...
Bij de 2.6 kernels is 'make modules' niet meer nodig, tegenwoordig is het voldoende om 'make' en 'make modules_install' te doen.
Daarna zal je in je lilo.conf of menu.lst bij grub nog een verwijzing moeten maken naar de kernel, daarna zou het moeten werken.

Enne de laatste keer dat ik SuSE gebruikte was Lilo volgens mij nog de standaard (dat was met 7.0 ofzo)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True