- 27 Feb, 2004 9 commits
-
-
Anton Blanchard authored
ppc64 tlb flush rework from Paul Mackerras Instead of doing a double pass of the pagetables, we batch things up in the pte flush routines and then shoot the batch down in flush_tlb_pending. Our page aging was broken, we never flushed entries out of the ppc64 hashtable. We now flush in ptep_test_and_clear_young. A number of other things were fixed up in the process: - change ppc64_tlb_batch to per cpu data - remove some LPAR debug code - be more careful with ioremap_mm inits - clean up arch/ppc64/mm/init.c, create tlb.c
-
Anton Blanchard authored
Set the ks bit on userspace segments otherwise the kernel can read/write into userspace mprotected pages.
-
Benjamin Herrenschmidt authored
This allows us to use more than 2Gb of RAM on a PowerMac G5. You can also boot with iommu=off to disable it, but then you get back the 2Gb RAM limitation.
-
Benjamin Herrenschmidt authored
Make IDE advertise only 128 entries of SG table on archs with an IOMMU. The current IOMMU implementations of pci_map_sg() may produce segments that don't match the boundary requirements of IDE, thus causing the driver to break them up. The BIO is supposed to account for that, however, it cannot account for a pci_map_sg producing a segment of the requested size, but with incorrect alignement, thus we may still try to break up the list in more entries than is supported by the HW. A similar fix already went in libata. The "real" long term fix will be to move the boundary requirements to struct device so that pci_map_sg() can respect them when producing the sglist. In the meantime, this band-aid works around the problem.
-
Benjamin Herrenschmidt authored
Lots of things renamed, sillicaps killed, stuffs moved around and common code properly extracted from implementation specific code, new allocator, etc... The code is overall a lot simpler, faster, less prone to fail, and a lot more manageable. I didn't use "bk mv", there is no need to keep the old history attached to the new file.
-
Benjamin Herrenschmidt authored
This adds a hack to /dev/mem (along with the other ones already there) to prevent mapping cacheable of the IO hole. Without this, XFree blows up on machines with enough memory to go past the IO hole. It also tries to prevent memory from beeing mapped uncached. Cache paradoxes are evil and can kill the CPU. The necessary page_is_ram() call was added by the previous patch doing the proper IO hole accounting.
-
Benjamin Herrenschmidt authored
On machines with an IO hole (like Apple G5 with more than 2Gb of RAM, but also some pSeries) we failed to properly account for the real amount of physical RAM and inform the zone allocator of our hole size. During the process, I included Anton slaughtering of the guard page we had in the first 256Mb kernel segment, thus allowing this segment to be mapped with large pages as it should be.
-
Benjamin Herrenschmidt authored
This removes the unused common_regs_m6 and add one more register to be cleared, according to latest XFree code from ATI.
-
Benjamin Herrenschmidt authored
Fix a stupid warning in PowerMac SMP build on ppc64
-
- 26 Feb, 2004 31 commits
-
-
Jeff Garzik authored
Fix the build. Pass me a brown paper bag.
-
bk://kernel.bkbits.net/davem/sparc-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
bk://gkernel.bkbits.net/libata-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
Jeff Garzik authored
And also make a note in ata_piix.c so this is not forgotten in the future.
-
Jeff Garzik authored
-
Jeff Garzik authored
Agreeing with Ben H's recommendation, I reduce the max-hw-segments number to 128, to match max-phys-segments number. This shouldn't affect performance because 128*64K is far above the max transfer size for most current IDE devices. Even 128*4K is OK.
-
Andrew Morton authored
From: James Simmons <jsimmons@infradead.org> This patch creates a separate cursor image drawing region and regular drawing region.
-
Andrew Morton authored
Avoid cpp clash with the new MODULE_VERSION
-
Andrew Morton authored
From: Rusty Russell <rusty@au1.ibm.com> The way it works is that the .mod file contains the name of the module (as before), but succeeding lines are the constituent parts (assumed to be .c files, which usually works: if they use MODULE_VERSION in a file for which this isn't true we'll get a warning). As we postprocess modules, we look in the .modinfo section for a "version=", which is placed by the MODULE_VERSION() macro. This will be of form "version=<macroarg>" "\0" [24 chars] "\0". The 24 chars are replaced by the md4 sum of the .c files and any files they #include using '#include "file"' which are found in the current directory. Whitespace is collapsed outside strings, and comments are ignored for purposes of the sum. The result is a .modinfo entry such as version=1.16ac-rustytest B13E9451C4CA3B89577DEFF At the kernel summit, various people asked for a MODULE_VERSION macro to store module strings (for later access through sysfs). A simple md4 is needed to identify changes in modules which, inevitably, do not update the version. It skips whitespace and comments, and includes #includes which are in the same dir. The module versions should be set according to this definition, based on the RPM one, or CVS Revision tags. Violators will be shot. [<epoch>`:']<version>[`-'<extraversion>] <epoch>: A (small) unsigned integer which allows you to start versions anew. If not mentioned, it's zero. eg. "2:1.0" is after "1:2.0". <version>: The <version> may contain only alphanumerics. <extraversion>: Like <version>, but inserted for local customizations, eg "rh3" or "rusty1". Comparison of two versions (assuming same epoch): Split each into all-digit and all-alphabetical parts. Compare each one one at a time: digit parts numerically, alphabetical in ASCII order. So 0.10 comes after 0.9.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> From: Bruce Allan <bwa@us.ibm.com> This requires checking if the entry will fit in the current page and, if it doesn't, encoding it into the next page, and then copying it back to lie across the boundary between two pages.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> make sure sunrpc init routines called before gss init routines.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Don't rely on the assumption that sizeof(stateid_t) == sizeof(stateid_opaque_t) + 4.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Fix out-of-spec error return in attribute decoding.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Save replays for LOCK operations, make sure errors are replayed correctly.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Fix an out-of-spec error in nfsd4_remove.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Fix an out-of-spec readlink error return.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> The spec requires that the access and deny bits requested in open_downgrade represent the union of the bits for some subset of the OPENS for the given open_owner and file. Enforce that requirement.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Corrects an error return for OP_OPEN_CONFIRM.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> owned by the lockowner clientid.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> fix an error return for OP_CREATE
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> add OP_ILLEGAL, and fix processing of compounds with out of bounds op numbers.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Implement the nfsv4 RELEASE_LOCKOWNER operation.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> fh_dup2 duplicates an entire svc_fh structure, so in addition to dget()'ing the dentry, it also needs to bump the reference count on fh_export. Moved it out of the header file into nfsfh.c for the simple reason that I couldn't figure out how to reorganize the headers files right so that the fh_dup2 could use the definition of svc_fh. Since fh_dup2 is never actually used outside of nfs4proc.c, it could just as well be moved there....
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Remove a comment that is no longer accurate
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> add the bookeeping necessary to remove all locks held by an nfsv4 lockowner upon CLOSE, or upon state expiration. calls locks_remove_posix(). replace list_del_init() with list_del on nfsv4 state structures that are being reaped.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> unlike v2/v3, nfsv4 returns nfserr_exist in some situations where the underlying filesystem returns nfserr_isdir, nfserr_notdir. on rename, nfsv4 returns nfserr_notdir instead of nfserr_symlink.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> check lock length, return appropriate error
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> unlike v2/v3, nfsv4 returns nfserr_inval when attempting to read, write, commit or test lock a symlink. nfsv4 does return nfserr_symlink on lookup and open, so a simple fix in fh_verify() will not work.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au>
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> Call decode_fattr on writable attributes to check for xdr errors, incorrect utf8, etc.
-
Andrew Morton authored
From: NeilBrown <neilb@cse.unsw.edu.au> tests if current_fh is the pseudo root for the client and returns nfserr_noent if so. need to call exp_pseudoroot because different clients can have
-