- 23 Sep, 2003 40 commits
-
-
Alexander Viro authored
Fix for typo in arch/mips/kernel/sysirix.c (spotted by Milton Miller)
-
Andrew Morton authored
From: Stephen Smalley <sds@epoch.ncsc.mil> I believe that the patch below fixes the legitimate leaks in the SELinux code. In some cases, it rearranges the code (moving the allocation later to reduce the need for further cleanup or linking the object into a containing structure earlier so that the policydb_destroy will handle it upon any subsequent errors).
-
Andrew Morton authored
From: Christoph Hellwig <hch@lst.de> Still three arches keep an unused copy around and quite a few places refer to it in comments still. Two of the two arches also include it in their _ksyms.c file, but given that softirq.h only contains macros (which are in hardirq.c as well) that's just a leftover as well.
-
Andrew Morton authored
From: "Randy.Dunlap" <rddunlap@osdl.org> Use common (normalized) asm syntax for lidt/lgdt, specifying that the operand is an input value instead of output.
-
Andrew Morton authored
From: Krzysztof Halasa <khc@pm.waw.pl> Fix wanxl for older gcc's, and fix a couple of warnings.
-
Andrew Morton authored
From: Dave Olien <dmo@osdl.org> this patch fixes a bug that appeared only on Alpha hardware with DAC960 controllers. The Command->PciDevice structure member was never initialized. This was passed to the pci scatter/gather functions. This didn't cause a problem for x86 platforms because the scatter/gather funtions never really used that information. Alpha platforms do use that pointer. The Command->PciDevice field was also redundant with the Controller->PCIDevice field, which IS initialized properly. So, eliminating the redundant structure member and substituting the Controller's member fixes the bug.
-
Andrew Morton authored
From: Adrian Bunk <bunk@fs.tum.de> CONFIG_SERIAL_21285_OLD depends on the non-existent option CONFIG_OBSOLETE, IOW it's not selectable, and the help text says "This is obsolete and will be removed during later 2.5 development.".
-
Andrew Morton authored
From: Andries.Brouwer@cwi.nl jpcartal@free.fr writes: I noticed that contrary to what was happening with 2.4.x kernel, suid root files don't loose their suid bit when they get overwritten by a normal user (see example below) Is this the intended behaviour or a bug ? Example : [root@localhost test]# chown root ~cartaljp/test/suid_test [root@localhost test]# chmod 4775 ~cartaljp/test/suid_test [root@localhost test]# exit [cartaljp@localhost test]$ cp /bin/ls suid_test [cartaljp@localhost test]$ ls -l total 72 -rwsrwxr-x 1 root cartaljp 67668 Sep 19 07:56 suid_test <- Suid bit is still set whereas with 2.4.x kernel it was reset. Yes. Here 2.4 had the terrible code mode = (inode->i_mode & S_IXGRP)*(S_ISGID/S_IXGRP) | S_ISUID; while 2.6 does things via notify_change(). However, in 2.6 notify_change() does not allow removal of the SUID bit because you are not owner of the file :-). So, we have to convince inode_change_ok() to do it anyway.
-
Andrew Morton authored
At present you can set CONFIG_HUGETLB_PAGE and not CONFIG_HUGETLBFS, which give the kernel low-level hugepage support, but no userspace API with which to access it. And with the recent hugetlbfs-accounting fix, the low-level code needs functions which are in hugetlbfs, so CONFIG_HUGETLBFS=n, CONFIG_HUGETLB_PAGE=y doesn't even link. So we flip things around: CONFIG_HUGETLB_PAGE is set if CONFIG_HUGETLBFS is set and CONFIG_HUGETLB_PAGE is unset if CONFIG_HUGETLBFS is unset. The CONFIG_HUGETLB_PAGE option hence disappears from the per-arch configuration menus.
-
Andrew Morton authored
From: "Chen, Kenneth W" <kenneth.w.chen@intel.com> We found a problem in hugetlbfs file system quota when using huge page via mmap. The mmap method in hugetlbfs_file_operation always takes quota for every mmap even for pages that are already allocated on that inode. This results in taxing the same hugepage multiple times and causing mmap to fail on existing file when quota mistakenly runs out.
-
Andrew Morton authored
- modules need blk_rq_prep_restart() (Florian Schanda <ma1flfs@bath.ac.uk>) - Remove unneeded inclusions from configs.c (Randy Dunlap) - The agp_setup() ifdef was backwards (Stephen Hemminger <shemminger@osdl.org>) - makefiles.txt typo fix (Paolo Ornati <ornati@despammed.com>)
-
Andrew Morton authored
From: Christoph Hellwig <hch@lst.de> All drivers that compile on ppc with CONFIG_ISA set (= all but some m68-only drivers), I looked at the compile warnings very closely and there are no new warnings or even errors this time :) drivers/char/Makefile needed to be reordered big time to keep the intialization order the same.
-
Andrew Morton authored
From: Ethan Benson <erbenson@alaska.net> Currently Linux allows the use of the utime() and utimes() syscalls on immutable or append-only files, this is incorrect. utime{s}() is not supposed to work if you lack write access to a file, in the case of an immutable file NOBODY has write access. for an append-only file it only makes sense to be able to update its time to present, not the past. I have checked BSD, and they implement the behavior I propose, for immutable files utime() and utimes() fail. for append-only files they fail if the time argument is not NULL.
-
Andrew Morton authored
From: John Levon <levon@movementarian.org> Not that many people are going to be using GCC 3.4 currently, but it might help a bit to prevent compilation bugs like that just witnessed in procfs. (And it consolidates the check_gcc implementation nicely)
-
Andrew Morton authored
From: Christoph Hellwig <hch@lst.de> Some junk which was needed before we did the big cleansweep for the sysrq syncing stuff.
-
Andrew Morton authored
From: Christoph Hellwig <hch@lst.de> Richard hasn't touched it for about a year and since then only bugfixes and my changes to the kernel interface went in. No one has stepped up to maintain it and with udev we have a proper replacement now. I will do some more work before 2.6 (mainly trying to implement Al's refcounting scheme to avoid stale entries), but that's it.
-
Andrew Morton authored
From: "David S. Miller" <davem@redhat.com> It's from Ingo Molnar. ksoftirqd kicks in way too early, so do more work in interrupt context before falling back. We can probably sysctl this thing, that way everyone gets what they want probably... (has been in -mm since 2.5.71 and I haven't heard a peep).
-
Andrew Morton authored
From: Manfred Spraul <manfred@colorfullife.com> - Remove cache_alloc_one_tail and cache_alloc_listfixup - there is no reason for their existance. - Print a bit more debugging info when slab corruption is detected.
-
Alexander Viro authored
Argh. A couple of places where we needed ..._encode_dev() had been lost in reordering the patchset - the most notable being ctty number in /proc/<pid>/stat. Fix follows:
-
Adam Radford authored
This fixes several things including fixing the character ioctl polling to use wait_event_interruptible_timeout() instead of interruptible_sleep_on_timeout() and several other fixes. These changes were already applied to 2.4.22.
-
bk://kernel.bkbits.net/davem/sparc-2.5Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
bk://kernel.bkbits.net/davem/net-2.5Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
Jens Axboe authored
From Szombathelyi György This fixes a memory leak in the uniform cdrom layer.
-
Jens Axboe authored
From Szombathelyi György This fixes a problem where the residual data count isn't being set correctly.
-
Alexander Viro authored
Real conversion to 32bit dev_t. Expansion to: * mknod() - 32 * newstat() - 32 on 64bit platforms * stat64() - 32 on mips, 64 on everything else (mips has weird struct stat64 and can't get more than 32 bits). Note that right now the difference is purely theoretical - we don't have internal values above 32 bits, so huge_... vs. new_... only marks the places where 64bit conversion will need extra work. * arch-dependent stat variants - depending on width available. * ustat et.al. - 32 * filesystems that can handle 32 bits right now - 32 * ext2 and ext3 - 32, with large dev_t inodes having 0 in the first element of i_data[] (where we store dev_t value for small device numbers) and keeping the value in the second element. * nfsd - 32; it can be driven to 64, but we'll get several issues with NFSv2 support. * RAID - 32 * devmapper - with v1 it's still 16 (nothing to do here), with v4 it's 64. * loop - 64 * initramfs - 32 * do_mounts code - 32. Parts that scan devfs tree are using newstat() on 64bit platforms and stat64() on the rest (IOW, the latest stat variant on given platform). * old_valid_dev()/new_valid_dev() added where needed (stat variants, mostly - we fail with -EOVERFLOW if values do not fit).
-
Alexander Viro authored
Starting the conversion: * internal dev_t made 32bit. * new helpers - new_encode_dev(), new_decode_dev(), huge_encode_dev(), huge_decode_dev(), new_valid_dev(). They do encoding/decoding of 32bit and 64bit values; for now huge_... are aliases for new_... and new_valid_dev() is always true. We do 12:20 for 32bit; representation is compatible with 16bit one - we have major in bits 19--8 and minor in 31--20,7--0. That's what the userland sees; internally we have (major << 20)|minor, of course. * MKDEV(), MAJOR() and MINOR() updated. * several places used to handle Missed'em'V dev_t (14:18 split) manually; that stuff had been taken into common helpers. Now we can start replacing old_... with new_... and huge_..., depending on the width available. MKDEV() callers should (for now) make sure that major and minor are within 12:20. That's what the next chunk will do.
-
Alexander Viro authored
Added old_encode_dev() to assorted stat() variants. Fixed bug in s390 emulation on s390x: stat64() should never truncate UID and GID. Ditto for i386 emulation on x86_64. Replaced dev_t in various struct stat with explicit integer type. Replaced __kernel_dev_t with __old_kernel_dev_t in dm-ioctl-v1.h Now we are free to change dev_t in any way we want - on all boundaries we have explicit conversions. Took __kernel_dev_t definition to linux/types.h and changed it with __u16. We are ready to proceed to 32bit now.
-
Alexander Viro authored
Added old_encode_dev()/old_decode_dev() in CODA code - on assignments to/from ->va_rdev.
-
Alexander Viro authored
Added old_encode_dev() in loop.c
-
Alexander Viro authored
Changed sys_mknod() prototype to have unsigned int passed to it instead of current dev_t. Added old_decode_dev() in sys_mknod() and made sure that its callers are passing it old_encode_dev(<value>) Switched sys_ustat() and its variants from dev_t to unsigned (and added old_decode_dev()). Took care of assignments to ROOT_DEV - again, old_decode_dev(). Late-boot search in devfs (call sys_newstat() and compare with st_rdev) also updated.
-
Alexander Viro authored
-
Alexander Viro authored
Added old_encode_dev()/old_decode_dev() in dm-ioctl-*.c
-
Alexander Viro authored
Minor cleanups in md.c + added old_decode_dev() on ioctl argument in there.
-
Alexander Viro authored
Minor cleanup of jffs2 fill_super.
-
Alexander Viro authored
Added missing old_encode_dev() in JFS.
-
Alexander Viro authored
NFS made dev_t-agnostic. Aside of minor fixes in debugging printks, and adding old_encode_dev()/old_decode_dev(), the main part is in handling of exports with large dev_t. New fhandle format introduced, fh_verify(), fh_compose() and exports cache taught to deal with it. Format is used when ->s_dev of exported fs doesn't fit into 256:256; in that case we put major and minor in separate words in fhandle; ->fh_fsid_type is set to 2.
-
Alexander Viro authored
tty->device had been used only in a couple of places and can be calculated by tty->index and tty->driver. Field removed, its users switched to static inline dev_t tty_devnum(tty).
-
Alexander Viro authored
sanitized dev_t use in debugging printks in XFS, switched their bhash to use of struct block_device, added old_encode_dev() in XFS statfs() (it had stored dev_t in ->fs_id[0])
-
Alexander Viro authored
added old_encode_dev() in drm debugging printks, so they won't change when we go for bigger dev_t.
-
Alexander Viro authored
fs/reiserfs/procfs.c made sane. It used to store dev_t of filesystem in the proc_dir_entry->data (which is void *) and played very odd games after that. Switched to seq_file, stores pointer to superblock, uses sget() to validate it, avoids use of dev_t completely.
-